netstat命令使用实例
2013-04-08 20:59 bangerlee 阅读(1073) 评论(1) 编辑 收藏 举报netstat命令用于显示网络相关信息,例如网络连接信息,路由表信息,端口占用情况等,下面介绍netstat的具体用法。
1.显示所有连接信息
-a 选项用于显示全部连接信息:
# netstat -a | more Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN udp 0 0 *:sunrpc *:* Active UNIX domain sockets (servers and established) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 7697 private/error
注意这里所说的“连接信息”包括基于tcp/udp的连接,也包括 Unix domain socket 信息,既包含已建立连接信息,也包括监听状态的端口信息。 -at 选项用于仅显示tcp相关连接,-au 选项用于仅显示udp相关连接。
2.显示监听状态的端口
-l 选项用于显示监听(listening)状态的端口:
# netstat -l Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:sunrpc *:* LISTEN udp 0 0 *:qmqp *:* Active UNIX domain sockets (only servers) Proto RefCnt Flags Type State I-Node Path unix 2 [ ACC ] STREAM LISTENING 7697 private/error
同样,增加 t或u 将仅针对 tcp或udp 显示。
3.显示连接相关进程名和pid
我们查看某连接信息或某端口状态时,如果能查看到建立该连接或占用该端口的进程,这将非常有用,-p 选项完成该功能:
# netstat -pt Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 bogon:ssh bogon:49792 ESTABLISHED 4211/1
4.查看某特定端口被哪个进程占用
查看某端口是否被占用,这是经常遇到的情形,可用以下方法查询:
# netstat -an | grep ':22' tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 192.168.1.101:22 192.168.1.100:49792 ESTABLISHED tcp 0 0 :::22
反过来,我们也可以查询某进程占用了哪些端口:
# netstat -ap | grep ssh tcp 0 0 *:ssh *:* LISTEN 2792/sshd tcp 0 0 bogon:ssh bogon:49792 ESTABLISHED 4211/1 tcp 0 0 *:ssh *:* LISTEN 2792/sshd
5.不作域名和端口名解析
以上我们用到了 -n 选项,其指示信息显示时不作域名和端口名解析。在/etc/hosts等文件中我们可以指定某ip对应某域名(如192.168.1.100对应bangerlee),若不使用 -n 选项,相应的连接条目将显示 'bangerlee',而加了 -n 选项则显示ip地址;对于周知端口,netstat默认显示周知端口对应的服务,如22号端口为ssh,-n 选项指示netstat显示端口号。
6.显示路由表信息
使用 -r 选项显示路由表信息,与route命令显示结果类似:
# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface bogon * 255.255.255.0 U 0 0 0 wlan0 loopback * 255.0.0.0 U 0 0 0 lo default bogon 0.0.0.0 UG 0 0 0 wlan0
7.显示网口信息
netstat还是用于显示网口信息:
# netstat -i Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 0 0 0 0 0 0 0 0 0 BMU lo 16436 0 6 0 0 0 6 0 0 0 LRU wlan0 1500 0 29250 0 0 0 3485 0 0 0 BMRU
netstat -ie 将信息网口的详细信息,与ifconfig命令结果类似。
8.针对网络协议显示统计信息
-s 选项用于显示各网络协议相关统计信息:
# netstat -s Ip: 26700 total packets received 3 with invalid addresses 0 forwarded 0 incoming packets discarded 10844 incoming packets delivered 3392 requests sent out Tcp: 33 active connections openings 1 passive connection openings 3 failed connection attempts 0 connection resets received 1 connections established 3171 segments received 3153 segments send out 7 segments retransmited 0 bad segments received. 3 resets sent Udp: 150 packets received 107 packets to unknown port received.
……
Reference: UNIX/Linux: 10 Netstat Command Examples