Eternal Rubyist
Eternal Rubyist

Reputation: 3635

Why does 'netstat' Fail to Detect Certain Open Sockets?

When using the 'netstat' Linux command to verify that my Hadoop Namenode machine was functioning correctly, I noticed that the Namenode's primary port, '8020' did not show up as actively listening though all Hadoop processes could properly connect and work properly. Moreover, I was able to run 'telnet mydnshostname 8020' and successfully open a connection, indicating this socket was correctly listening despite its conspicuous absence from netstat's list.

This is the first time I've noticed an open socket not appearing in netstat's list. Is it because Hadoop Namenode communication is based on a proprietary IPC protocol? This protocol seems to be TCP-based, so I don't understand why it's not showing up.

In summary:

  1. Why/how are there open sockets that netstat misses?
  2. Any lower-level Linux commands/functions to show all sockets, including ones that netstat misses for ones reason or another?

Upvotes: 0

Views: 2135

Answers (1)

Eternal Rubyist
Eternal Rubyist

Reputation: 3635

Well this is another one of those *facepalm* moments.

It turns out that TCP port 8020 is also a port commonly used by a protocol called "intu-ec-svcdisc," so netstat was trying to be helpful by identifying all my sockets on port 8020 to this service name.

In more generic/practical terms, if you're having trouble locating a particular open socket and know the port number, make sure pass netstat the '-n' option so it stops trying to identify the protocol based on the port number and displays the whole list numerically!

Upvotes: 2

Related Questions