Netstat 命令用于显示各种网络相关信息,如网络连接,路由表,接口状态等。对于开发来说,很多时候用于查看端口占用情况。
执行netstat命令,其输出结果可以分成两部分:
1)一是“Active Internet connections”,显示的 tcp和udp(默认不显示)的相关网络信息。比如 ftp, http,ssh等tcp连接信息。
2)另一是“Active UNIX domain sockets”,是本地的进程/线程间socket连接信息。这个信息日常需要用的不多。
显示的信息如:
[root@xxx ~]# netstat Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 172.17.42.1:31962 172.17.0.27:mysql ESTABLISHED tcp 0 0 172.17.42.1:31960 172.17.0.27:mysql ESTABLISHED tcp 0 52 10.43.156.15:ssh 10.43.168.33:57834 ESTABLISHED tcp6 0 0 localhost:mysql localhost:48121 ESTABLISHED tcp6 0 0 localhost:mysql localhost:48123 ESTABLISHED tcp6 0 0 localhost:48121 localhost:mysql ESTABLISHED tcp6 1 0 10.43.156.15:33197 10.43.156.19:http CLOSE_WAIT tcp6 0 0 localhost:48123 localhost:mysql ESTABLISHED Active UNIX domain sockets (w/o servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ] DGRAM 9538 /run/systemd/shutdownd unix 8 [ ] DGRAM 1379 /run/systemd/journal/socket unix 23 [ ] DGRAM 1381 /dev/log unix 2 [ ] DGRAM 9477 @/org/freedesktop/systemd1/notify unix 3 [ ] STREAM CONNECTED 20565 @/tmp/dbus-JvIPYly72Y unix 3 [ ] STREAM CONNECTED 20955 unix 3 [ ] STREAM CONNECTED 1832934 /var/run/dbus/system_bus_socket unix 3 [ ] STREAM CONNECTED 13940 /run/systemd/journal/stdout unix 3 [ ] STREAM CONNECTED 21535 @/tmp/dbus-tUe6AaRVPE unix 3 [ ] STREAM CONNECTED 19691 /var/run/dbus/system_bus_socket unix 3 [ ] STREAM CONNECTED 14163 unix 3 [ ] STREAM CONNECTED 18327
netstat命令有很多可选参数,参数的不同会导致显示的结果不同。
-a (all)
显示所有选项,默认不显示udp协议的信息,也不显示state值为LISTEN信息(这个其实是很有意义的,知道哪些端口处于监听状态),
而state值为ESTABLISHED是显示的已连接到该端口的信息。
-t (tcp)仅显示tcp相关选项
-u (udp)仅显示udp相关选项
-n 拒绝显示别名,能显示数字的全部转化成数字。不加-n,一些熟知的服务,如 http,snmp,sftp等,就会显示这些名称,而不是显示端口号。
-l 仅列出有在 Listen (监听) 的服务状态。只有加了 -a 或 -l 参数,才会显示LISTEN和LISTENING的状态。