有没有一种方法可以从Windows命令行检查特定端口的状态?我知道我可以使用netstat来检查所有端口,但netstat很慢,而查看特定的端口可能不是。
当前回答
我使用:
netstat –aon | find "<port number>"
其中o表示进程ID。 现在你可以对进程ID做任何事情。 要终止进程,例如,使用:
taskkill /F /pid <process ID>
其他回答
当我有问题与WAMP apache,我使用这段代码找到哪个程序正在使用端口80。
netstat -o -n -a | findstr 0.0:80
3068是PID,所以我可以从任务管理器中找到它并停止该进程。
该命令将显示所有端口及其目的地址:
netstat -f
为了改进@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 )'
对于80端口,命令是:netstat -an | find "80" 对于端口n,命令如下:netstat -an | find "n"
这里,netstat是计算机的指令
-a:显示所有连接和监听端口 -n:以数字格式显示所有地址和指令(这是必需的,因为-a的输出可能包含机器名)
然后,一个find命令来“模式匹配”前一个命令的输出。
推荐文章
- 在没有事件源注册的情况下写入Windows应用程序事件日志
- 有效地测试Linux上的端口是否打开?
- 访问HTTP响应作为字符串在Go
- 无法在Windows上从/usr/local/ssl/openssl.cnf加载配置信息
- GIT克隆在windows中跨本地文件系统回购
- 如何运行一个PowerShell脚本而不显示窗口?
- PowerShell:仅为单个命令设置环境变量
- 在SSH会话中查找客户端的IP地址
- 为什么这个Windows批处理文件只执行第一行,而在命令shell中执行所有三行?
- 环境变量存储在Windows注册表的哪里?
- 有一个好的Valgrind Windows的替代品吗?
- 模拟慢速互联网连接
- 127.0.0.1和localhost之间的区别是什么
- Windows和Linux上的c++编译:ifdef开关
- 如何验证批处理文件中是否存在一个文件?