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] 。
命令参数
命令netstat
的参数 必须以连字符 (-)而非斜杠 (/)为前缀。并非所有平台都支持某些参数[ 1] 。
统计訊息
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] 。
命令范例
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]
netstat -a
显示所有端口(无论被监听或不被监听)、所有網路协议的连接。
netstat -at
仅显示TCP连接。
netstat -au
仅显示UDP连接。
netstat -ant
显示所有TCP连接,但不进行域名解析 (即显示IP地址而不显示主机名)。
netstat -al
显示所有被监听的端口。
sudo netstat -aep
同时显示每个端口相关的进程和进程ID(需要root权限 以运行此命令)。
netstat -s > wiki.txt
输出当前计算机網路统计訊息到文本文件wiki.txt
。
netstat -r
显示路由表。与route -e
的输出结果相同。
netstat -i
显示所有網路接口 。netstat -i -e
与ipconfig
的输出结果类似。
netstat -ct
显示TCP连接(持续更新)。
netstat -g
显示多播组 訊息。
netstat -lntu
显示所有监听端口的守护进程 和本地计算机上所有空闲的开放端口。
netstat -atnp | grep ESTA
显示所有状态为ESTABLISHED 的TCP连接。
通配符
在netstat
命令的输出结果中,星号 (*)为通配符,表示“所有”[ 33] [ 34] 。
例如:
....Local Address Foreign Address State
... *:smtp *:* LISTEN
在输出结果中,*:smtp
表示该进程正在本地计算机的所有網路接口 上监听所有映射 为SMTP 的端口,此处的星号有时会被0.0.0.0 代替,意义不改变。*:*
中的第一个星号表示连接可以来自任何IP地址 ,第二个星号表示连接可以来自远程计算机上的任何端口[ 25] [ 33] [ 34] [ 35] 。
参考文献
^ 1.0 1.1 1.2 netstat Command Usage on Linux . Geekflare. 2015-02-15 [2019-07-31 ] . (原始内容存档 于2016-04-29).
^ 2.0 2.1 Stanek, William R. Windows Command-Line Administrator's Pocket Consultant, 2nd Edition . Microsoft Press . 2008. ISBN 978-0735622623 .
^ 3.0 3.1 3.2 20 Netstat Commands for Linux Network Management . [2019-07-31 ] . (原始内容存档 于2019-06-22).
^ 4.0 4.1 Show Network Errors with netstat . Unix Tutorial. 2019-01-31 [2019-07-31 ] . (原始内容 存档于2019-10-18).
^ IBM Systems Information Center . ibm.com. [2020-09-26 ] . (原始内容 存档于2019-10-18).
^ There Are Real Reasons For Linux To Replace ifconfig, netstat and Other Classic Tools - Slashdot . linux.slashdot.org. [2019-07-31 ] . (原始内容存档 于2019-06-01).
^ 7.0 7.1 netstat(8) - Linux man page . linux.die.net. [2019-07-31 ] . (原始内容存档 于2019-05-30).
^ 8.0 8.1 Mutai, Josphat. netstat vs ss usage guide on Linux . 2018-01-17 [2019-07-31 ] . (原始内容存档 于2018-10-08).
^ 9.0 9.1 9.2 networking:net-tools [Wiki] . wiki.linuxfoundation.org. [2019-07-31 ] . (原始内容存档 于2018-10-21).
^ net-tools . linuxfoundation.org. [2019-07-31 ] . (原始内容存档 于2016-06-11).
^ Arch Linux . archlinux.org. 2011-06-08 [2019-07-31 ] . (原始内容存档 于2019-07-22).
^ Deprecated Linux networking commands and their replacements . Doug Vitale Tech Blog. [2019-07-31 ] . (原始内容存档 于2019-06-29).
^ netstat man page (notes section) . [2014-08-02 ] . (原始内容存档 于2019-02-17). This program is obsolete. Replacement for netstat is ss. Replacement for netstat -r is ip route. Replacement for netstat -i is ip -s link. Replacement for netstat -g is ip maddr.
^ 14.0 14.1 LLC), Tara Meyer (Aquent. Netstat: TCP/IP . docs.microsoft.com. [2019-07-31 ] . (原始内容存档 于2019-10-18).
^ ReactOS: base/applications/network/netstat/netstat.c Source File . doxygen.reactos.org. [2019-07-31 ] . (原始内容存档 于2019-10-18).
^ Alex; Alex, er Fox; AppleGazette, er Fox is a freelance tech writer who loves translating tech for consumers His work appears in; MakeTechEasier; SpyreStudios. How to Use the Netstat Command on Mac . Lifewire. [2019-07-31 ] . (原始内容 存档于2021-11-26).
^ hb. Mac OS X: List listening ports and programs using netstat . 2013-07-31 [2019-07-31 ] . (原始内容存档 于2017-07-13).
^ netstat - Mac OS X in a Nutshell [Book] . www.oreilly.com. [2019-07-31 ] . (原始内容存档 于2019-10-18).
^ netstat(1) - OpenBSD manual pages . man.openbsd.org. [2019-07-31 ] . (原始内容存档 于2019-05-07).
^ how to gather network information on netbsd . wiki.netbsd.org. [2019-07-31 ] . (原始内容存档 于2018-01-11).
^ netstat(1) - NetBSD Manual Pages . netbsd.gw.com. [失效連結 ]
^ netstat(1) . www.freebsd.org. [2019-07-31 ] . (原始内容存档 于2018-12-22).
^ Synopsis - man pages section 1M: System Administration Commands . docs.oracle.com. [2019-07-31 ] . (原始内容存档 于2014-02-15).
^ Dyson, Peter. Mastering OS/2 Warp . Sybex. 1995. ISBN 978-0782116632 .
^ 25.0 25.1 IBM Knowledge Center . www.ibm.com. [2019-08-04 ] . (原始内容存档 于2019-08-04).
^ Network Administration: The netstat Command . [2019-07-31 ] . (原始内容存档 于2018-06-16).
^ How to check if port is in use on Linux or Unix . 2016-11-10 [2019-07-31 ] . (原始内容存档 于2019-06-20).
^ Determining If You are Actively Being Compromised . TechGenix. 2011-02-09 [2019-07-31 ] . (原始内容存档 于2018-10-05).
^ Postel, J. Transmission Control Protocol . tools.ietf.org. [2019-07-31 ] . (原始内容存档 于2019-01-02).
^ Linux Howtos: Network -> Using netstat . www.linuxhowtos.org. [2019-07-31 ] . (原始内容存档 于2018-10-09).
^ networking - How to know which ports are listened by certain PID? . Unix & Linux Stack Exchange. [2019-07-31 ] . (原始内容存档 于2019-10-18).
^ Rackspace Support Documentation . support.rackspace.com. [2019-08-04 ] . (原始内容存档 于2019-08-04).
^ 33.0 33.1 G.4. netstat . linux-ip.net. [2019-07-31 ] . (原始内容 存档于2018-10-03).
^ 34.0 34.1 Ferguson, Bill. Network+ Fast Pass . John Wiley & Sons. 2006-02-20 –通过Google Books.
^ Viewing statistics of all active TCP connections . library.netapp.com. [2019-07-31 ] . (原始内容 存档于2019-07-31).
外部链接
文件管理导航 文件管理操作 磁盘管理 进程 注册表 用户环境 文件内容 脚本 网络 维护 启动管理 软件开发 杂项