网络故障日志常见报错信息解析

连接超时:Request timed out

在 ping 测试中看到这行字,基本可以断定链路不通。可能是目标主机宕机,也可能是中间路由器丢包。比如你在家远程办公,突然连不上公司服务器,第一反应 ping 一下,结果满屏都是 Request timed out,这时候别急着重启电脑,先检查本地网络是否正常,再确认是不是公司那边出了问题。

Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Request timed out.
Request timed out.

TCP 连接被拒:Connection refused

这个错误通常出现在 telnet 或应用尝试建立 TCP 连接时。意味着目标端口没有服务监听,或者防火墙直接拒绝了请求。举个例子,你部署了一个 Web 服务,默认监听 8080 端口,但启动脚本写错了端口号,别人访问时就会收到 Connection refused。查这个问题,先看服务有没有跑起来,再用 netstat 或 ss 命令看看端口状态。

telnet 10.0.0.5 8080
Connecting to 10.0.0.5... Could not open connection to the host, on port 8080: Connect failed

DNS 解析失败:Name or service not known

当你输入一个域名却无法访问,日志里出现这类提示,大概率是 DNS 配置出了岔子。可能是本地 resolv.conf 写错了 DNS 服务器,也可能是内网 DNS 服务挂了。比如公司内部系统突然打不开,浏览器说找不到服务器,但 IP 直连没问题,那就该查 DNS 设置了。换个公共 DNS 试试,像 8.8.8.8 或者 114.114.114.114,能通就说明原 DNS 有问题。

路由不可达:Network is unreachable

这种报错多见于静态路由配置错误或默认网关缺失。比如你在数据中心配了一台新服务器,忘了设网关,一执行 curl 就弹出 Network is unreachable。这时候检查 route -n 输出,确认是否有默认路由指向正确的网关。局域网内部通信也可能会因为子网掩码算错导致部分地址不可达。

SSL/TLS 握手失败:SSL Handshake Failed

现在大部分服务都走 HTTPS,一旦证书过期、域名不匹配或协议版本不兼容,就会卡在握手阶段。用户访问网页白屏,后台日志却写着 SSL handshake failed。前几天就有个案例,测试环境用了自签名证书,没导入到客户端信任库,结果接口调不通。用 openssl s_client 命令可以快速验证服务端证书状态。

openssl s_client -connect api.example.com:443

ARP 请求无响应:No ARP response

同一局域网内设备通信依赖 ARP 查表。如果一台机器一直发 ARP request 却收不到 reply,那它就没法封装数据帧。常见于交换机端口隔离、VLAN 划分错误,或是目标设备关机。抓个包看看 arp 请求有没有回包,能快速定位是不是二层问题。

Too many open files

别被名字骗了,这不只是文件操作的问题。在网络服务中,每个连接都会占用一个文件描述符。当并发连接数超过系统限制,新连接就会失败,日志里可能出现这个错误。比如 Nginx 或 Java 应用扛不住流量高峰,开始拒绝服务。ulimit -n 调整下最大打开数,代码层面也要注意及时释放资源。