|
|
这里或许是互联网从业者的最后一片净土,随客社区期待您的加入!
您需要 登录 才可以下载或查看,没有账号?立即注册
×
很多运维新手在排查网络时,经常会遇到两个命令:ping 和 tcping(或 TCP Ping)。看起来名字差不多,但它们测的内容完全不一样,本质上是两种协议。这篇文章帮你彻底弄清两者的区别,避免排错方向。
一、先说一句话总结
PING 测网络通不通,TCP PING 测服务通不通。也可以理解为:
ping → 只测到“机器”
tcping → 能测到“端口上的服务”
这就是两者最核心的差别。
二、什么是普通的 PING?
PING 使用的是 ICMP 协议。它的作用是:
测试客户机到目标主机的网络连通性
测时延、丢包、稳定性
PING 的特点:
不依赖端口
只要服务器能返回 ICMP 包,就能 ping 通
很多服务器会禁 ping(禁止 ICMP)
所以 ping 通 ≠ 服务正常;
ping 不通 ≠ 服务一定挂了。
三、什么是 TCP PING?
TCP Ping(如 tcping、telnet、curl 等实现)走的是 TCP 协议,主要用途是:
测试目标主机的 某个端口是否开放
判断 服务是否在监听
看到端口层面的延时
例如:
会去连接目标 IP 的 80 端口,成功说明:
网络通
防火墙放行
Nginx/Apache 等服务正在监听
TCP ping 通 = 服务正常(至少端口是开的)
四、PING 与 TCP PING 的本质区别(表格一目了然)
| 项目 | PING | TCP PING | | 使用协议 | ICMP | TCP | | 是否需要端口 | ❌ 不需要 | ✔ 需要 | | 测试对象 | 主机连通性 | 服务连通性 | | 返回内容 | 时延、丢包 | 端口是否开、连接延迟 | | 常见用途 | 查网络、路由稳定性 | 查端口、服务是否正常 | | 被拦截可能性 | 高(云服务器常禁 ICMP) | 中(看防火墙) | | ping 不通意味着? | 不一定坏,有可能被禁 | 大概率网络不通 | | tcp ping 不通意味着? | 端口未开放 / 服务没启动 | — |
五、为什么 ping 通但访问不了网站?
最典型的例子:
原因通常有:
80/443 端口没开
防火墙未放行对应端口
Web 服务没启动
网站配置错误
因为:
PING 只说明服务器能回包,不代表端口服务正常。用 TCP ping 才能确认:
- tcping 域名 80
- tcping 域名 443
复制代码
六、为什么 ping 不通但网站正常?
很多云厂商默认 禁用 ICMP,也就是禁 ping。这时:
ping 不通 → 正常
但浏览器、API 都能访问
所以不能拿 ping 不通就判断“服务器挂了”。
七、常用命令对比示例
测主机连通性
测 Web 端口
用 curl 测服务状态(也属于 TCP PING)
- curl -I http://example.com
复制代码 用 telnet 测端口
八、什么时候用 PING,什么时候用 TCP PING?
用 PING 的场景:
测线路延时
测网络质量
判断对端是否丢包严重
用 TCP PING 的场景:
网站打不开
端口不通
服务疑似挂掉
防火墙配置检测
常用的排障顺序:
1. ping IP(看看网络通不通)
2. tcping 端口(看看服务是否正常)
3. curl/telnet 进一步确认
九、一句话总结
PING:看得到服务器
TCP PING:看得到服务
网络排障时,两者缺一不可。
|
|