计算机网络 | 网络端口连通性检测与本地端口占用进程排查指南

发布时间:2026/7/17 5:41:02

计算机网络 | 网络端口连通性检测与本地端口占用进程排查指南 目录1. 查看端口占用谁在听门铃2. 实战场景抓到占用端口的“元凶”并干掉它3. 超越 ping如何测试远程服务器的端口通不通4. 科普防火墙与端口的关系为什么你扫不通从网络层ICMP 的ping深入到传输层TCP/UDP 的端口这是网络诊断能力的一次质的飞跃。网络层如 ping无法检测传输层端口状态需专用工具分别解决“远程端口连通性测试”与“本地端口占用进程查询”两类问题‌。‌‌一句话理清概念IP 地址是“楼栋号”找到那台机器端口号是“房间号”找到那个具体的程序。HTTP 网页默认走 80/443 房间SSH 远程走 22 房间MySQL 数据库走 3306 房间。下面我教你怎么在三个 Shell 环境下精准地“查房”和“撵人”。1. 查看端口占用谁在听门铃当你启动一个程序如 Nginx 或游戏服务器提示“端口被占用”时第一步就是查出是哪个进程霸占了它。操作目的CMD (Windows)Bash (Linux/macOS)PowerShell (Windows)查看所有端口netstat -anoss -tulnp或netstat -tulnpGet-NetTCPConnection只看监听端口netstat -ano | findstr LISTENINGss -tulnGet-NetTCPConnection -State Listen查特定端口(如 8080)netstat -ano | findstr :8080ss -tulnp | grep :8080Get-NetTCPConnection -LocalPort 8080☑ 参数拆解以 CMD 和 Linux 为例CMD 的-ano神级组合-a显示所有连接和监听端口。-n以数字形式显示不把 IP 解析成域名速度极快。-o显示进程 IDPID——这是抓出元凶的关键钥匙。Linux 的ss -tulnp现代替代netstat的高性能工具-t只看 TCP。-u只看 UDP。-l只看正在监听Listening的等待连接的。-n不解析域名。-p显示程序名称和 PID需 root 权限即sudo。2. 实战场景抓到占用端口的“元凶”并干掉它场景你在本地启动 TomcatJava 项目报错Address already in use: JVM_Bind:8080。☑ Windows CMD 操作流程❶netstat -ano | findstr :8080结果TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING **12345**❷ 查到 PID 是12345。❸ 查看是哪个程序tasklist | findstr 12345发现是javaw.exe。❹ 强制结束它taskkill /PID 12345 /F/F表示强制终止不加/F有时杀不死。☑ Linux Bash 操作流程❶sudo ss -tulnp | grep :8080结果LISTEN 0 128 *:8080 *:* users:((java,pid12345,fd24))❷ 直接杀掉kill -9 12345-9是强制信号相当于 Windows 的/F。☑ PowerShell 更优雅的面向对象方式Get-NetTCPConnection -LocalPort 8080 | Stop-Process -Force一步到位不用复制 PID直接用管道传给杀死进程的命令非常优雅。3. 超越ping如何测试远程服务器的端口通不通我们使用ping命令测的是 ICMP 协议很多云服务器如阿里云、AWS出于安全考虑默认禁 Ping会超时但网页服务80/443 端口却是通的。此时你需要端口级探测。☑ Windows 老方法CMDtelnet www.baidu.com 80如果不通会提示“无法打开到主机的连接”如果通黑屏光标闪烁按Ctrl]退出。注意Windows 默认不装 Telnet需在“启用或关闭 Windows 功能”里勾选。☑ Windows 新方法PowerShellTest-NetConnection这是神器Test-NetConnection www.baidu.com -Port 80它会直接返回TcpTestSucceeded : True清晰明了无需安装任何组件。☑ Linux 方法Bashnc -zv www.baidu.com 80-z是零 I/O 扫描-v显示详情。或者简单的echo /dev/tcp/www.baidu.com/80如果没报错就是通的这是 Bash 内置的高级特性。4. 科普防火墙与端口的关系为什么你扫不通当你用上面的命令扫不通某个端口时往往不是程序没开而是防火墙挡在了前面。Windows 防火墙入站默认阻拦。如果你写了个 Python HTTP 服务器跑在 8000 端口局域网别的电脑访问不了就是因为防火墙没开规则。Linux 防火墙iptables/nftables云服务器厂商的控制台安全组本质上就是一道外部防火墙。即使你的ss看到端口在 Listen只要云控制台没放行外部永远扫不到。既然聊到了这里下一步就极其关键了如果端口确实是通的但网页还是访问超时或极慢这时候光看端口就不够了得看tracert路由追踪返回的每一跳延迟或者用Wireshark抓包看 TCP 三次握手的细节。如果你想继续深路由追踪tracert/traceroute的实战读图技巧以及Windows 防火墙怎么手动开端口放行可以转看下一篇网络诊断双刃剑Tracert路由追踪实战与Windows防火墙端口配置指南☀相关参考资料cmd 与 bash 基础命令入门 | DOS命令大全及用法一文读懂从入门到实战的终极指南网络诊断双刃剑Tracert路由追踪实战与Windows防火墙端口配置指南

相关新闻