netstat命令用于显示网络相关信息,例如网络连接信息,路由表信息,端口占用情况等,下面介绍netstat的具体用法。
1.显示所有连接信息
-a 选项用于显示全部连接信息:
# netstat -a | moreActive 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 Pathunix 2 [ ACC ] STREAM LISTENING 7697 private/error
注意这里所说的“连接信息”包括基于tcp/udp的连接,也包括 Unix domain socket 信息,既包含已建立连接信息,也包括监听状态的端口信息。 -at 选项用于仅显示tcp相关连接,-au 选项用于仅显示udp相关连接。
2.显示监听状态的端口
-l 选项用于显示监听(listening)状态的端口:
# netstat -lActive 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 Pathunix 2 [ ACC ] STREAM LISTENING 7697 private/error
同样,增加 t或u 将仅针对 tcp或udp 显示。
3.显示连接相关进程名和pid
我们查看某连接信息或某端口状态时,如果能查看到建立该连接或占用该端口的进程,这将非常有用,-p 选项完成该功能:
# netstat -ptActive 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 sshtcp 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 -rKernel IP routing tableDestination Gateway Genmask Flags MSS Window irtt Ifacebogon * 255.255.255.0 U 0 0 0 wlan0loopback * 255.0.0.0 U 0 0 0 lodefault bogon 0.0.0.0 UG 0 0 0 wlan0
7.显示网口信息
netstat还是用于显示网口信息:
# netstat -iKernel Interface tableIface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flgeth0 1500 0 0 0 0 0 0 0 0 0 BMUlo 16436 0 6 0 0 0 6 0 0 0 LRUwlan0 1500 0 29250 0 0 0 3485 0 0 0 BMRU
netstat -ie 将信息网口的详细信息,与ifconfig命令结果类似。
8.针对网络协议显示统计信息
-s 选项用于显示各网络协议相关统计信息:
# netstat -sIp: 26700 total packets received 3 with invalid addresses 0 forwarded 0 incoming packets discarded 10844 incoming packets delivered 3392 requests sent outTcp: 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 sentUdp: 150 packets received 107 packets to unknown port received. ……
Reference: