netstat命令
netstat(network statistics)命令用于列出系统网络套接字连接情况,包括TCP,UDP以及Unix套接字.
相似命令ss,ss命令速度上更快. 部分Linux版本默认已经不再内置netstate而是内置了ss 命令。
语法
netstat [-vWeenNcCF] [<Af>] -r
或
netstat [-vWnNcaeol] [<Socket> ...]
或
netstat { [-vWeenNac] -I[<Iface>] | [-veenNac] -i | [-cnNe] -M | -s [-6tuw] } [delay]
<Socket>={-t|--tcp} {-u|--udp} {-U|--udplite} {-w|--raw} {-x|--unix}
--ax25 --ipx --netrom
<AF>=Use '-6|-4' or '-A <af>' or '--<af>'; default: inet
选项:
- -a 或--all 列出所有网络连接
- -t 或--tcp 列出TCP协议的连接。
- -u 或--udp 列出UDP协议的连接。
- -x 或--unix 此参数的效果和指定"-A unix"参数相同。
- -l 或--listening 只列出监听状态的连接,同时使用-a时将无效。
- -A<网络类型>或--<网络类型> 列出该网络类型连接中的相关地址。
- -p 或--programs 列出连接对应的进程名和PID。
- -c 或--continuous 持续列出网络状态。
- -C 或--cache 显示路由器配置的快取信息。
- -e 或--extend 显示网络其他相关信息(如与-u -t结合会显示进程用户名,与-i结合显示同ifconfig命令)。
- -F 或--fib 显示路由缓存。
- -g 或--groups 显示多重广播功能群组组员名单。
- -i 或--interfaces 显示网络接口信息,结合上 -e 选项等于ifconfig命令的输出。
- -M 或--masquerade 显示伪装的网络连接。
- -n 或--numeric 禁用域名解析功能,直接使用IP地址. netstat默认会通过反向域名解析技术查找IP地址对应的主机名,这会降低查找速度。
- -N 或--netlink 或--symbolic 显示网络硬件外围设备的符号连接名称。
- -o 或--timers 显示计时器。
- -r 或--route 显示路由信息。
- -s 或--statistics 显示不同网络协议的统计信息。
- -v 或--verbose 显示指令执行过程。
- -V 或--version 显示版本信息。
- -w 或--raw 显示 RAW 传输协议的连接状况。
- --ip 或--inet 此参数的效果和指定"-A inet"参数相同。
- -h 或--help 在线帮助。
netstat命令实例
显示所有的网络连接状况,包括各种不同状态,不同协议的连接
# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22122 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:sunrpc 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:cddbp-alt 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:epmd 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:63796 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 0 localhost:32001 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:25672 0.0.0.0:* LISTEN
tcp 0 0 test95:58704 test95:22122 TIME_WAIT
tcp 0 0 test95:45906 test95:22122 ESTABLISHED
tcp 0 0 localhost:32001 localhost:31001 ESTABLISHED
tcp6 0 0 [::]:mysql [::]:* LISTEN
tcp6 1 0 test95:51896 test95:cslistener CLOSE_WAIT
......
以面命令结果可以看出两个地址列(Local Address,Foreign Address)显示出了主机名
显示tcp协议连接,并禁止反解析主机名,现时列出进程ID和进程名
# netstat -tnp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 10.18.200.95:59538 10.18.200.95:22122 TIME_WAIT -
tcp 0 0 10.18.200.95:45906 10.18.200.95:22122 ESTABLISHED 6070/fdfs_storaged
tcp 0 0 10.18.200.95:59606 10.18.200.95:22122 TIME_WAIT -
tcp 0 0 127.0.0.1:32001 127.0.0.1:31001 ESTABLISHED 6074/wrapper-linux-
tcp 0 0 127.0.0.1:58627 127.0.0.1:4369 ESTABLISHED 1080/beam.smp
tcp 0 0 10.18.200.95:22122 10.18.200.95:45906 ESTABLISHED 5703/fdfs_trackerd
tcp 0 0 10.18.200.95:23000 10.18.200.96:36808 ESTABLISHED 6070/fdfs_storaged
tcp 0 0 10.18.200.95:59574 10.18.200.95:22122 TIME_WAIT -
tcp 0 0 10.18.200.95:22122 10.18.200.96:55756 ESTABLISHED 5703/fdfs_trackerd
tcp 0 0 10.18.200.95:4369 10.18.200.95:33954 TIME_WAIT -
tcp 0 36 10.18.200.95:22 10.16.7.179:54742 ESTABLISHED 7772/sshd: oper [pr
tcp 0 0 127.0.0.1:4369 127.0.0.1:58627 ESTABLISHED 1349/epmd
tcp 0 0 10.18.200.95:59584 10.18.200.95:22122 TIME_WAIT -
tcp6 0 0 127.0.0.1:3306 127.0.0.1:54354 ESTABLISHED 3404/mysqld
......
显示网卡列表
# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0 1500 3599824807 0 0 0 3597030121 0 0 0 BMRU
ens33 1500 4666755599 0 4083268 0 6140501682 0 0 0 BMRU
lo 65536 712476722 0 0 0 712476722 0 0 0 LRU
vethe278 1500 3599824807 0 0 0 3597030129 0 0 0 BMRU
与grep配合使用过滤结果
显示正在监听状态的8080端口的tcp连接
# netstat -tnlp|grep 8080
tcp6 0 0 :::8080 :::* LISTEN 6500/java
显示java程序正在监听状态的tcp连接
netstat -tnlp|grep java
tcp 0 0 127.0.0.1:32001 0.0.0.0:* LISTEN 6076/java
tcp6 0 0 :::9998 :::* LISTEN 20165/java
tcp6 0 0 :::8080 :::* LISTEN 6500/java
tcp6 0 0 :::20880 :::* LISTEN 6076/java
tcp6 0 0 :::8081 :::* LISTEN 26042/java
tcp6 0 0 127.0.0.1:5010 :::* LISTEN 2610/java
......
只显示活跃状态的连接
# netstat -anp|grep ESTABLISHED
tcp 0 0 10.18.200.95:45906 10.18.200.95:22122 ESTABLISHED 6070/fdfs_storaged
tcp 0 305528 10.18.200.95:8880 10.18.200.30:46051 ESTABLISHED 6090/nginx: worker
tcp 0 0 127.0.0.1:32001 127.0.0.1:31001 ESTABLISHED 6074/wrapper-linux-
tcp 0 411232 10.18.200.95:8880 10.18.200.30:46045 ESTABLISHED 6090/nginx: worker
tcp 0 0 127.0.0.1:58627 127.0.0.1:4369 ESTABLISHED 1080/beam.smp
tcp 0 0 10.18.200.95:22122 10.18.200.95:45906 ESTABLISHED 5703/fdfs_trackerd
tcp 0 0 10.18.200.95:23000 10.18.200.96:36808 ESTABLISHED 6070/fdfs_storaged
tcp 0 0 10.18.200.95:22122 10.18.200.96:55756 ESTABLISHED 5703/fdfs_trackerd
......