有没有一种方法可以从Windows命令行检查特定端口的状态?我知道我可以使用netstat来检查所有端口,但netstat很慢,而查看特定的端口可能不是。


当前回答

在RHEL 7中,我使用这个命令来过滤LISTEN状态下的几个端口:

sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'

其他回答

精确匹配[windows命令提示符]

netstat -aon | findstr "\<5000\>"

它会给你一个特定IP上所有活动的套接字:

netstat -an | find "172.20.1.166"

使用lsof命令"lsof -i tcp:port #",例如:

$ lsof -i tcp:1555 
COMMAND   PID USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
java    27330 john  121u  IPv4 36028819      0t0  TCP 10.10.10.1:58615->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  201u  IPv4 36018833      0t0  TCP 10.10.10.1:58586->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  264u  IPv4 36020018      0t0  TCP 10.10.10.1:58598->10.10.10.10:livelan (ESTABLISHED)
java    27330 john  312u  IPv4 36058194      0t0  TCP 10.10.10.1:58826->10.10.10.10:livelan (ESTABLISHED)
netstat -a -n | find /c "10.240.199.9:8080"

它会告诉你在特定IP和端口上活动的套接字的数量(服务器端口号)

您可以将netstat与-np标志和指向find或findstr命令的管道结合使用。

基本用法是这样的:

netstat -np <protocol> | find "port #"

例如,在TCP上检查端口80,你可以这样做:netstat -np TCP | find "80" 它最终会给出如下类型的输出:

TCP    192.168.0.105:50466    64.34.119.101:80       ESTABLISHED
TCP    192.168.0.105:50496    64.34.119.101:80       ESTABLISHED

如您所见,这仅显示TCP协议端口80上的连接。