共计 7873 个字符,预计需要花费 20 分钟才能阅读完成。
举荐浏览: 每天学一个 Linux 命令(64):ifconfig
命令简介
netstat(network statistics)是一个命令行工具,它用来显示网络连接(传入和传出),路由表和许多网络接口(网络接口控制器或软件定义的网络接口)和网络协议统计信息。也可用于查找网络中的问题,打印 Linux 中网络系统的状态信息,查看整个 Linux 零碎的网络状况。
netstat 的应用平很广,包含 OS X、Linux、Solaris 和 BSD,以及基于 Windows NT 的操作系统,包含 Windows XP、Windows Vista、Windows 7/8/10。
语法格局
netstat {xxx} [OPTIONS]
选项阐明
- a 或 --all #显示所有的网络连接信息
-A< 网络类型 > #显示该网络类型连线中的相干地址
- c 或 --continuous #继续列出网络状态信息
- C 或 --cache #显示路由器配置的快取信息
- e 或 --extend #显示网络其余相干信息
- g 或 --groups #显示多播性能群组信息
- h 或 --help #打印在线帮忙信息
- i 或 --interfaces #显示网络界面信息表单
- l 或 --listening #显示监控中的服务器的 Socket
- M 或 --masquerade #显示假装的网络连线
- n 或 --numeric #间接应用 ip 地址
- N 或 --netlink #显示网络硬件外围设备的符号连贯名称
- o 或 --timers #显示计时器
- r 或 --route #显示 Routing Table
- s 或 --statistice #显示所有端口的状态统计信息
- t 或 --tcp #显示 TCP 传输协定的连贯状态
- u 或 --udp #显示 UDP 传输协定的连贯状态
- v 或 --verbose #显示指令执行过程信息
- V 或 --version #显示版本信息
- w 或 --raw #显示 RAW 传输协定的连线情况
- x 或 --unix #此参数与 "-A unix" 参数后果雷同
--ip 或 --inet #此参数与 "-A inet" 参数后果 雷同
利用举例
列出端口
## 列出所有端口
[root@CentOS7-1 ~]# 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:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 0 localhost:8125 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:dnp-sec 0.0.0.0:* LISTEN
tcp 0 52 CentOS7-1:ssh 192.168.1.93:58049 ESTABLISHED
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 localhost:8125 [::]:* LISTEN
tcp6 0 0 [::]:dnp-sec [::]:* LISTEN
udp 0 0 localhost:8125 0.0.0.0:*
udp 0 0 localhost:323 0.0.0.0:*
udp6 0 0 localhost:8125 [::]:*
udp6 0 0 localhost:323 [::]:*
raw6 0 0 [::]:ipv6-icmp [::]:* 7
#列出所有 tcp 端口
[root@CentOS7-1 ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN
tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN
tcp 0 0 localhost:8125 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:dnp-sec 0.0.0.0:* LISTEN
tcp 0 52 CentOS7-1:ssh 192.168.1.93:58049 ESTABLISHED
tcp6 0 0 [::]:ssh [::]:* LISTEN
tcp6 0 0 localhost:smtp [::]:* LISTEN
tcp6 0 0 localhost:8125 [::]:* LISTEN
tcp6 0 0 [::]:dnp-sec [::]:* LISTEN
#列出所有 UDP 端口
[root@CentOS7-1 ~]# netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
udp 0 0 localhost:8125 0.0.0.0:*
udp 0 0 localhost:323 0.0.0.0:*
udp6 0 0 localhost:8125 [::]:*
udp6 0 0 localhost:323 [::]:*
#列出所有处于监听状态的 Sockets
netstat -l #只显示监听端口
netstat -lt #只列出所有监听 tcp 端口
netstat -lu #只列出所有监听 udp 端口
netstat -lx #只列出所有监听 UNIX 端口
#显示每个协定的统计信息
netstat -s #显示所有端口的统计信息
netstat -st #显示 TCP 端口的统计信息
netstat -su #显示 UDP 端口的统计信息
显示路由表信息
[root@CentOS7-1 ~]# netstat -r
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
default gateway 0.0.0.0 UG 0 0 0 ens33
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
[root@CentOS7-1 ~]# netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 ens33
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 ens33
显示接口列表
[root@CentOS7-1 ~]# netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
ens33 1500 48619 0 5 0 7246 0 0 0 BMRU
lo 65536 1730 0 0 0 1730 0 0 0 LRU
分组查看各种连贯状态
[root@CentOS7-1 ~]# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
LAST_ACK 5 (正在期待解决的申请数)
SYN_RECV 3
ESTABLISHED 10 (失常数据传输状态)
FIN_WAIT2 5
TIME_WAIT 313 (处理完毕,期待超时完结的申请数)
显示连接数
[root@CentOS7-1 ~]# netstat -an |grep :22
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 52 192.168.1.100:22 192.168.1.93:58049 ESTABLISHED
tcp6 0 0 :::22
[root@CentOS7-1 ~]# netstat -an |grep :22 |wc -l
3
通过端口找过程 ID
[root@CentOS7-1 ~]# netstat -anp | grep 58049
tcp 0 52 192.168.1.100:22 192.168.1.93:58049 ESTABLISHED 1350/sshd: root@pts
[root@CentOS7-1 ~]# netstat -anp | grep 58049 |grep ESTABLISHED
tcp 0 52 192.168.1.100:22 192.168.1.93:58049 ESTABLISHED 1350/sshd: root@pts
[root@CentOS7-1 ~]# netstat -anp | grep 58049 |grep ESTABLISHED |awk '{print $7}'
1350/sshd:
[root@CentOS7-1 ~]# netstat -anp | grep 58049 |grep ESTABLISHED |awk '{print $7}' |cut -d/ -f1
1350
查看连贯某个端口最多的 IP 地址
[root@CentOS7-1 ~]# netstat -ntu | grep :58049 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"t",i}' | sort -nr
1 192.168.1.93
[root@CentOS7-1 ~]# netstat -ntu | grep :22 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"t",i}' | sort -nr
1 192.168.1.93
显示所有端口的状态统计信息
[root@CentOS7-1 ~]# netstat -s
Ip:
15146 total packets received
0 forwarded
0 incoming packets discarded
15146 incoming packets delivered
3885 requests sent out
8 dropped because of missing route
Icmp:
4 ICMP messages received
0 input ICMP message failed.
ICMP input histogram:
destination unreachable: 4
44 ICMP messages sent
0 ICMP messages failed
ICMP output histogram:
destination unreachable: 44
IcmpMsg:
InType3: 4
OutType3: 44
Tcp:
863 active connections openings
1 passive connection openings
858 failed connection attempts
0 connection resets received
1 connections established
5021 segments received
3772 segments send out
0 segments retransmited
0 bad segments received.
858 resets sent
Udp:
200 packets received
44 packets to unknown port received.
0 packet receive errors
246 packets sent
0 receive buffer errors
0 send buffer errors
UdpLite:
TcpExt:
1 TCP sockets finished time wait in fast timer
35 delayed acks sent
1 packets directly queued to recvmsg prequeue.
1362 packet headers predicted
438 acknowledgments not containing data payload received
1160 predicted acknowledgments
TCPRcvCoalesce: 9
TCPOrigDataSent: 1719
IpExt:
InBcastPkts: 10042
InOctets: 4159848
OutOctets: 329931
InBcastOctets: 3778680
InNoECTPkts: 15150
显示多播组信息
[root@CentOS7-1 ~]# netstat -g
IPv6/IPv4 Group Memberships
Interface RefCnt Group
--------------- ------ ---------------------
lo 1 all-systems.mcast.net
ens33 1 all-systems.mcast.net
lo 1 ff02::1
lo 1 ff01::1
ens33 1 ff02::1:ff4e:26b0
ens33 1 ff02::1:ff01:b5bb
ens33 1 ff02::1
ens33 1 ff01::1
每天学一个 Linux 命令(62):ping
每天学一个 Linux 命令(63):route
正文完