热门问题
时间线
聊天
视角
netstat
命令行工具 来自维基百科,自由的百科全书
Remove ads
netstat
是一个基于命令行界面的网络实用工具,可显示当前的网络状态,包括传输控制协议层的连线状况、路由表、网络接口状态和网络协议的统计消息等[1]。netstat
命令适用于类Unix系统(如macOS、Linux、Solaris和BSD)、IBM OS/2和Windows NT操作系统家族(如Windows XP、Windows Vista、Windows 7、Windows 8和Windows 10)[2][3]。
netstat
可用于查找网络中的问题,并可通过计算网络流量来度量网络性能[4][5]。尽管该工具仍然被包含在许多Linux发行版中,但基本都被看作过时、应被替代的工具[6][7][8][9]。
在Linux上,推荐使用ss
替代netstat
,使用ip route
替代netstat -r
,使用ip -s link
替代netstat -i
,使用ip maddr
替代netstat -g
[10][11][12][13]。
Remove ads
命令参数
命令netstat
的参数必须以连字符(-)而非斜杠(/)为前缀。并非所有平台都支持某些参数[1]。
Remove ads
统计消息
- Proto:网络协议,包括传输控制协议(TCP)和用户数据报协议(UDP)[26]。
- Local Address:本地计算机的IP地址和正在使用的端口号。除非使用-n参数,否则将显示与IP地址和端口对应的主机名称。如果主机正在侦听所有端口,则主机名显示为星号(*)。如果端口尚未建立,则端口号显示为星号[27]。
- Foreign Address:远程计算机的IP地址和正在使用的端口号。除非指定了-n参数,否则将显示与IP地址和端口对应的主机名称。如果端口尚未建立,则端口号显示为星号(*)[28]。
- State:TCP连接的状态,可能的状态包括CLOSE_WAIT、CLOSED、ESTABLISHED、FIN_WAIT_1、FIN_WAIT_2、LAST_ACK、LISTEN、SYN_RECEIVED、SYN_SEND和TIME_WAIT[29]。
命令范例

要仅显示TCP或UDP协议的统计消息,请键入以下命令之一[30]:
netstat -sp tcp
netstat -sp udp
- 显示进程ID为“pid”的进程打开的所有端口:
netstat -aop | grep "pid"
- 持续更新活动中的TCP和UDP连接,但主机地址和端口号以数字形式表示,并显示哪些进程正在使用这些连接:
sudo netstat -nutpacw
- 显示活动的TCP连接和关联的进程ID,每5秒为一个更新周期(仅适用于基于Windows NT的操作系统或装有修补程序的Windows 2000):
netstat -o 5
- 显示活动中的TCP连接和关联的进程ID,但主机地址和端口号以数字形式表示(仅适用于基于Windows NT的操作系统或装有修补程序的Windows 2000):
netstat -no
应用(类UNIX系统)
Remove ads
在netstat
命令的输出结果中,星号(*)为通配符,表示“所有”[33][34]。
例如:
....Local Address Foreign Address State
... *:smtp *:* LISTEN
在输出结果中,*:smtp
表示该进程正在本地计算机的所有网络接口上监听所有映射为SMTP的端口,此处的星号有时会被0.0.0.0代替,意义不改变。*:*
中的第一个星号表示连接可以来自任何IP地址,第二个星号表示连接可以来自远程计算机上的任何端口[25][33][34][35]。
参考文献
外部链接
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads