电脑技术学习

UNIX 网络分析

dn001

  可以从这个输出中看到,机器非常忙碌。第三列显示了使用冒号分隔的主机名和端口,分别针对每个打开的连接或侦听连接。如果 TCP 或 UDP 服务号与某个已知的端口号匹配(如 /etc/services 文件中定义的那样),那么服务的名称将被显示在输出中。对于主机,将显示主机名、备用的 IP 地址或 ‘*’ 符号。星号表示服务和端口是打开的并且正在侦听所有 IP 地址。

  例如,可以从输出中看到,机器被配置为支持 NFS,并且具有打开的(已经建立的)连接,如清单 9 所示。

  清单 9. 机器被配置为支持 NFS

$ netstat -a|grep nfs
tcp    0   0 *:nfs        *:*           LISTEN   
tcp    1   0 bear.example.pri:nfs sulaco.example.p:51900 CLOSE_WAIT 
tcp    0   0 bear.example.pri:nfs narcissus.example.p:62968 ESTABLISHED
tcp    1   0 bear.example.pri:nfs sulaco.example.p:59172 CLOSE_WAIT 
tcp    0   0 bear.example.pri:nfs sulaco.example.p:65320 ESTABLISHED
tcp    1   0 bear.example.pri:nfs sulaco.example.p:53877 CLOSE_WAIT 
udp    0   0 *:nfs          *:*                

  也可以使用这个输出查看哪些机器目前正在和这台机器通信。例如,可以提取一个与这台机器建立连接的机器列表,方法是查看第 5 列,进行排序并从列表中移除重复的内容(参见清单 10)。

  清单 10. 提取一个已建立连接的机器列表

$ netstat -a|egrep 'tcp|udp'|grep ESTABLISHED|awk '{ print $5; }'|cut -d: -f1|sort|uniq
localhost
narcissus.mcslp.p
nautilus.wireless
polarbear.wireles
Solaris2.vmbear.mcs
sulaco.mcslp.pri

标签: