Linux netstat命令示例
命令 | 描述 |
---|---|
# netstat -st | 显示TCP协议特定摘要 |
# netstat -r | 显示路由表 |
# netstat -ie | 等效于默认的ifconfig 命令列出所有活动网络接口 |
# netstat -antc | 连续监控所有TCP连接。对于UDP,使用-u选项。 |
# netstat -ltp | 使用PID和程序显示所有打开的TCP端口。 |
# netstat -atep | grep ssh | 显示所有SSH连接以及用户名,程序和相应的PID。 |
# netstat -atnep | grep 443 | 在端口443上显示所有连接以及用户ID,程序和相应的PID。 |
# netstat -s -w | 显示原始网络统计 |
常用选项
选项 | 描述 |
---|---|
-i | 显示网络接口表 |
-a | 显示聆听和非倾听套接字 |
-e | 显示其他信息 |
-l | 只显示听力套接字。 |
-s | 显示每个协议的摘要统计信息。 |
-t | 仅显示TCP连接 |
-n | 显示数字地址,而不是尝试确定符号主机,端口或者用户名。 |
netstat用法
对于大多数功能,netstat命令需要管理权限:
$su Password: # netstat
不带选项的情况下执行netstat
命令显示所有现有连接,包括其状态,源地址和本地地址。
NetStat的“-i”选项列出系统上所有已配置的网络接口:
# 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 0 0 0 0 0 0 0 0 BMU enp0s25 1500 148 0 0 0 1 0 0 0 BMU lo 65536 4752 0 0 0 4752 0 0 0 LRU wlp3s0 1500 148377 0 1 0 135793 0 0 0 BMRU
-l
和 -t
显示所有当前正在侦听的TCP套接字,也就是说,显示状态为“LISTEN”的所有连接。-u
选项,包括UDP连接
# netstat -lt Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:http 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ftp-data 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN tcp 0 0 localhost:ipp 0.0.0.0:* LISTEN tcp 0 0 localhost:smtp 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:https 0.0.0.0:* LISTEN tcp6 0 0 [::]:ssh [::]:* LISTEN tcp6 0 0 localhost:ipp [::]:* LISTEN tcp6 0 0 localhost:smtp [::]:* LISTEN
在上面输出中,localhost:smtp
是人类可读的主机名和服务名
使用“-n”选项将抑制此信息,改用数字信息显示。
# netstat -ltn Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:20 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
-p
选项可用于显示绑定到任何特定套接字的程序。
# netcat -l -p 20 & [1] 8941 # netstat -tlnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2891/nginx: master tcp 0 0 0.0.0.0:20 0.0.0.0:* LISTEN 8941/netcat tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 518/sshd tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 472/cupsd tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 2891/nginx: master tcp6 0 0 :::22 :::* LISTEN 518/sshd tcp6 0 0 ::1:631 :::* LISTEN 472/cupsd
注意,在socket0.0.0.0:20
的第二行,netstat
命令还显示了一个程序和绑定到此socket的PID,在本例中是netcat
和PID2891
。
使用“-a”选项可以监视整个TCP网络连接握手,特别是在与“-c”选项结合使用以进行连续监听时。
# netstat -ant Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:20 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN tcp 1 0 10.1.1.8:36576 10.1.1.45:443 CLOSE_WAIT tcp 0 0 10.1.1.8:60186 10.1.1.11:443 ESTABLISHED tcp6 0 0 :::22 :::* LISTEN tcp6 0 0 ::1:631 :::* LISTEN tcp6 0 0 ::1:25 :::* LISTEN
-r
选项用于显示当前系统的路由表。
# netstat -r Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface default gateway 0.0.0.0 UG 0 0 0 wlp3s0 10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 wlp3s0 link-local 0.0.0.0 255.255.0.0 U 0 0 0 docker0 172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
-s
选项用于显示详细统计信息:
# netstat -s
netstat命令是一个有用的命令,用于显示系统的网络状态。它允许系统管理员通过查询任何网络连接的状态、来源和目的地来跟踪它们。它还可用于显示路由表、接口统计信息、伪装连接以及多播成员身份。
日期:2020-07-07 20:56:48 来源:oir作者:oir