很多网络排查里, ping通只能说明你大概能找到那台机器。服务能不能打开,还要看对应端口有没有监听、有没有放行、有没有被防火墙或安全组挡住。
处理网络问题时,经常会听到一句话:
“能 ping 通啊,为什么还是打不开?”
这个问题很典型。
比如:
服务器能 ping 通,但网站打不开
NAS 能 ping 通,但共享目录进不去
Linux 能 ping 通,但 SSH 连不上
Windows 主机能 ping 通,但远程桌面打不开
这类情况里,问题往往不在“这台机器是否存在”,而在“你要访问的那个服务是否可用”。
这里就要讲到端口。
ping 通代表什么
ping 测的是 ICMP。
你可以把它理解成对方机器是否回应你的一声“在不在”。
比如:
ping 192.168.1.10
如果有回复,说明你和这台机器之间的网络链路大概率是通的。
但它只说明一件事:
你能到这台机器
它不代表:
网站服务正常
SSH 服务正常
共享服务正常
数据库服务正常
远程桌面正常
所以 ping 通,只是排查的第一步。

端口是什么
IP 地址像一栋楼的地址。
端口像这栋楼里的房间号。
你知道楼在哪里,不代表你能进到某个房间。
比如一台服务器的 IP 是:
192.168.1.10
它上面可能同时跑着很多服务:
22 SSH
80 HTTP 网站
443 HTTPS 网站
445 Windows 文件共享
3306 MySQL
3389 远程桌面
访问不同服务,就要访问不同端口。
如果 IP 通了,但端口不通,你还是打不开对应服务。

常见端口先记这些
日常排查里,不需要一开始背很多端口。
先记这些就够用:
22:SSH
80:HTTP
443:HTTPS
445:Windows 文件共享 / SMB
3306:MySQL
3389:Windows 远程桌面
6379:Redis
8080:常见 Web 测试端口
比如你要连 Linux 服务器,重点看 22。
你要访问网站,重点看 80 或 443。
你要访问共享文件夹,重点看 445。
你要远程桌面,重点看 3389。
为什么服务打不开
ping 通但服务打不开,常见原因有几类。
第一,服务没启动。
比如 Nginx 没启动,服务器能 ping 通,网站照样打不开。
第二,服务没监听对应端口。
软件启动了,但没有监听 80、443 或你以为的端口。
第三,本机防火墙拦了。
Windows 防火墙、Linux firewalld、iptables 都可能挡住端口。
第四,云服务器安全组没放行。
很多云服务器默认只放行少数端口。你在系统里启动了服务,但云平台安全组没开,外部照样访问不了。
第五,访问地址或端口写错。
服务跑在 8080,你访问 80,肯定打不开。
第六,服务只监听本机地址。
比如服务只监听:
127.0.0.1
这时本机访问没问题,其他电脑访问不了。
怎么测试端口

Windows 上可以用 PowerShell:
Test-NetConnection 192.168.1.10 -Port 445
如果结果里是:
TcpTestSucceeded : True
说明端口能连上。
如果是:
TcpTestSucceeded : False
就说明这个端口不通。
Linux 或 macOS 上可以用:
nc -vz 192.168.1.10 22
也可以用:
telnet 192.168.1.10 80
有些系统默认没有 telnet,nc 更常用。
如果是网站,可以直接用浏览器访问:
http://192.168.1.10
https://192.168.1.10
http://192.168.1.10:8080
注意端口写法。
如果不是默认端口,URL 后面要带上端口。
在服务器上看端口有没有监听
远程测试端口不通,还要回服务器本机看服务有没有监听。
Linux 上常用:
ss -lntp
看指定端口:
ss -lntp | grep ':80'
ss -lntp | grep ':22'
如果你要看 Nginx:
systemctl status nginx
Windows 上可以用:
netstat -ano | findstr :445
netstat -ano | findstr :3389
如果本机都没有监听这个端口,外面肯定连不上。
先把服务启动起来,再谈防火墙。
本机能访问,别人访问不了
这个现象也常见。
比如你在服务器上访问:
http://127.0.0.1:8080
能打开。
但其他电脑访问:
http://服务器IP:8080
打不开。
这时要看服务监听地址。
如果服务只监听:
127.0.0.1:8080
就只允许本机访问。
如果希望局域网或外部访问,一般要监听:
0.0.0.0:8080
或者监听服务器的实际网卡 IP。
很多开发工具、管理面板、测试服务默认只监听 127.0.0.1。
这不是网络坏了,是服务绑定地址限制了访问范围。
防火墙和安全组要分清
如果服务已经监听,端口还是不通,就看防火墙。
本地防火墙在服务器系统里。
比如 Linux:
firewall-cmd --list-all
开放端口可以类似:
firewall-cmd --add-port=8080/tcp --permanent
firewall-cmd --reload
Windows 则要看 Windows Defender 防火墙入站规则。
如果是云服务器,还要看云平台安全组。
很多人只改了系统防火墙,却忘了安全组。
结果就是:
服务器本机端口开了
系统防火墙也放了
公网还是访问不了
这时候去看云平台安全组,往往能找到原因。
共享文件夹为什么 ping 通也打不开
前面写共享服务器的时候,就遇到过这个问题。
共享文件夹主要看 445 端口。
你可以 ping 通共享服务器:
ping 192.168.1.34
但共享目录打不开:
\\192.168.1.34\share
这时就要测:
Test-NetConnection 192.168.1.34 -Port 445
如果 445 不通,先查:
文件和打印机共享是否开启
Windows 防火墙是否放行
Server 服务是否正常
安全软件是否拦截
网络类型是否是专用网络
不要只盯着共享权限。
权限是进门以后的事。端口不通,门都没开。
网站打不开怎么查
如果一个网站打不开,可以按这个顺序看:
1. ping 域名或服务器 IP
2. 测 80 / 443 端口
3. 看 Nginx / Apache 是否启动
4. 看服务是否监听 0.0.0.0 或正确 IP
5. 看本机防火墙
6. 看云安全组
7. 看域名解析是否指向正确 IP
如果 IP 能通,443 不通,HTTPS 肯定打不开。
如果 443 通,但浏览器报证书错误,那就不是端口问题,要看证书。
如果域名打不开,IP 可以打开,就去查 DNS 和站点配置。
排查时要一层一层拆。
我的排查顺序

遇到“ping 通但服务打不开”,我一般这样查:
1. 确认访问的 IP 是否正确
2. 确认访问的端口是否正确
3. 从客户端测试端口是否通
4. 在服务器本机看端口是否监听
5. 看服务进程是否正常
6. 看服务监听地址是 127.0.0.1 还是 0.0.0.0
7. 看系统防火墙
8. 看云安全组或上级网络策略
9. 最后再看账号、权限、应用配置
很多问题卡在第 2 步和第 4 步。
端口写错,服务没监听,再怎么改权限都没用。
小结
ping 通,只能说明你能找到那台机器。
端口通,才说明你能碰到那项服务。
服务正常,还要看权限、账号、配置、证书、路径这些后面的东西。
所以以后遇到:
ping 通但网页打不开
ping 通但 SSH 连不上
ping 通但共享进不去
ping 通但远程桌面失败
别急着说网络没问题,先检测检测端口。
很多时候,答案就在那个端口上。故障排查可以参考试下:https://tool.ticifer.com[1]
欢迎留言说说网络上、电脑侧遇到的问题,互相交流;下一篇文章可能就是以您的问题来分享给大家,求一波关注;多谢。
发送:VM 可获取虚机、镜像下载地址 发送:工具 可获取工具平台访问地址
下篇预告《网线、网口、千兆、万兆到底怎么看?别让一根线拖慢全家网络》,还请多多关注;感谢!
这里是「宇上希光」,一枚10+年运维网络工程师
分享家庭网络、网站运维、Nginx、开源工具与工作复盘
记录日常,也记录解决问题的过程。
如果你也在生活里慢慢往前走,愿我们都能看见属于自己的那道光。
[1] https://tool.ticifer.com:https://tool.ticifer.com




