有没有一种方法可以从Windows命令行检查特定端口的状态?我知道我可以使用netstat来检查所有端口,但netstat很慢,而查看特定的端口可能不是。
当前回答
在RHEL 7中,我使用这个命令来过滤LISTEN状态下的几个端口:
sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
其他回答
Windows 8用户:打开命令提示符,输入netstat -an | find "your port number",输入。
如果回复是LISTENING,那么端口正在使用中,否则它是空闲的。
您可以将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上的连接。
当我有问题与WAMP apache,我使用这段代码找到哪个程序正在使用端口80。
netstat -o -n -a | findstr 0.0:80
3068是PID,所以我可以从任务管理器中找到它并停止该进程。
为了改进@EndUzr的回复:
要查找外部端口(IPv4或IPv6),您可以使用:
netstat -an | findstr /r /c:":N [^:]*$"
要查找本地端口(IPv4或IPv6),您可以使用:
netstat -an | findstr /r /c:":N *[^ ]*:[^ ]* "
其中N为您感兴趣的端口号。“/r”开关告诉它将其作为regexp处理。“/c”开关允许findstr在搜索字符串中包含空格,而不是将空格作为搜索字符串分隔符。这种增加的空间可以防止更长的端口被滥用——例如,“:80”vs“:8080”和其他端口修改问题。
列出到本地RDP服务器的远程连接,例如:
netstat -an | findstr /r /c:":3389 *[^ ]*:[^ ]*"
或者查看谁在触摸您的DNS:
netstat -an | findstr /r /c:":53 *[^ ]*:[^ ]*"
如果你想排除本地端口,你可以使用一系列带有“/v”的异常,并使用反斜杠转义字符:
netstat -an | findstr /v "0.0.0.0 127.0.0.1 \[::\] \[::1\] \*\:\*" | findstr /r /c:":80 *[^ ]*:[^ ]*"
在RHEL 7中,我使用这个命令来过滤LISTEN状态下的几个端口:
sudo netstat -tulpn | grep LISTEN | egrep '(8080 |8082 |8083 | etc )'
推荐文章
- 127.0.0.1和localhost之间的区别是什么
- Windows和Linux上的c++编译:ifdef开关
- 如何验证批处理文件中是否存在一个文件?
- 为什么SCTP不常用/不为人所知
- 无法启动IIS Express Web服务器,注册URL失败,访问被拒绝
- XAMPP -端口80被PID 4的“无法打开进程”使用!12
- 为什么git在Windows下记不住我的密码
- Git克隆/拉不断冻结在“存储密钥在缓存?”
- 我可以在/etc/hosts中映射主机名*和端口*吗?
- 如何修改Play执行run命令时使用的默认端口(9000)?
- 有没有替换Windows (Visual C)的unistd.h ?
- 从Windows批处理文件设置系统环境变量?
- 连接网络共享时,如何提供用户名和密码
- 如何找到可用的端口?
- 在Sublime Text 2中使用Ctrl+D进行多个选择时,我如何跳过匹配?