热门问题
时间线
聊天
视角

netstat

命令行工具 来自维基百科,自由的百科全书

Netstat
Remove ads

netstat是一个基于命令行界面网络实用工具,可显示当前的网络状态,包括传输控制协议层的连线状况、路由表网络接口状态和网络协议的统计消息等[1]netstat命令适用于类Unix系统(如macOSLinuxSolarisBSD)、IBM OS/2Windows NT操作系统家族(如Windows XPWindows VistaWindows 7Windows 8Windows 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_WAITCLOSEDESTABLISHEDFIN_WAIT_1FIN_WAIT_2LAST_ACKLISTENSYN_RECEIVEDSYN_SENDTIME_WAIT[29]

命令范例

Thumb
macOS终端运行netstat

要仅显示TCP或UDP协议的统计消息,请键入以下命令之一[30]

netstat -sp tcp

netstat -sp udp

类Unix系统[1][3][9][31][32]

显示进程ID为“pid”的进程打开的所有端口:

netstat -aop | grep "pid"

持续更新活动中的TCP和UDP连接,但主机地址和端口号以数字形式表示,并显示哪些进程正在使用这些连接:

sudo netstat -nutpacw

Microsoft Windows[14]

显示活动的TCP连接和关联的进程ID,每5秒为一个更新周期(仅适用于基于Windows NT的操作系统或装有修补程序的Windows 2000):

netstat -o 5

显示活动中的TCP连接和关联的进程ID,但主机地址和端口号以数字形式表示(仅适用于基于Windows NT的操作系统或装有修补程序的Windows 2000):

netstat -no

应用(类UNIX系统)

更多信息 命令, 说明[4][9] ...
Remove ads

通配符

netstat命令的输出结果中,星号(*)为通配符,表示“所有”[33][34]

例如:

....Local Address Foreign Address State
... *:smtp          *:*   LISTEN

在输出结果中,*:smtp表示该进程正在本地计算机的所有网络接口上监听所有映射SMTP的端口,此处的星号有时会被0.0.0.0代替,意义不改变。*:*中的第一个星号表示连接可以来自任何IP地址,第二个星号表示连接可以来自远程计算机上的任何端口[25][33][34][35]

参考文献

外部链接

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads