host与ping命令的关系

6 阅读1分钟

问题:ping otsep.juejin.com.cn 是连接不到主机,但是使用postman对otsep.juejin.com.cn 发送请求,显示报错中的IP:11.24.236.139却是可以ping通的?

核心原因是:ping 命令不支持直接跟「带协议的域名 / URL」(如https://otsep.xiamenair.com.cn),只能跟「纯域名 / IP」,你输入的带https://的地址会被ping识别为无效主机名,自然提示连接不到主机;而直接ping 11.24.236.139是纯 IP,所以能通。

一、先搞懂:ping 命令的使用规则(核心坑点)

ping网络层 ICMP 协议的测试工具,它的作用是检测「纯主机名 / IP 地址」的可达性,不识别任何应用层协议(http/https)和端口,语法规则是:

# 正确用法:ping + 纯IP / 纯域名 ping 11.24.236.139 ping otsep.juejin.com.cn # 错误用法:ping + 带协议的URL / 带端口的地址(会被判定为无效主机名) ping https://otsep.juejin.com.cn # ❌ 包含https://,识别失败 ping otsep.juejin.com.cn:443 # ❌ 包含端口:443,识别失败

之前ping https://otsep.juejin.com.cn时,系统会把https://otsep.juejin.com.cn当作完整的主机名去 DNS 解析,而 DNS 服务器中根本没有这个带协议的主机名,所以直接返回「找不到主机 / 连接不到主机」。