Ubuntu JS日志中的网络连接问题诊断
一 定位与收集日志
二 从日志到网络根因的映射
| 日志线索关键词 | 系统层检查 | 常用命令 | 处理建议 |
|---|---|---|---|
| ECONNREFUSED / ECONNRESET | 目标端口未监听/进程崩溃/防火墙阻断 | ss -ltnp | 确认服务在目标 IP:端口 监听;检查 ufw/iptables 规则放行;必要时重启服务 |
| ETIMEDOUT / ENETUNREACH | 路由不可达/上游网络异常 | ip route, ping, traceroute | 核查默认路由是否存在;对目标做 ping/traceroute 定位中断点 |
| ENOTFOUND / DNS_PROBE_FINISHED_NXDOMAIN | DNS 配置错误 | cat /etc/resolv.conf | 添加可用 DNS(如 8.8.8.8/1.1.1.1);必要时重启 NetworkManager |
| EACCES (Permission denied) | 应用无权绑定端口/策略限制 | sudo lsof -iTCP:<端口> -sTCP:LISTEN | 非 root 应用改用 >1024 端口;或配置 cap_net_bind_service 能力 |
| EHOSTUNREACH | 网关或下一跳不可达 | ip route, ip neigh | 检查默认网关与 ARP 表;确认物理链路与交换机/路由器状态 |
| SSL handshake failed / self signed certificate | TLS/证书信任链问题 | curl -v https://host | 更新 CA 证书;开发环境可临时关闭校验(不建议生产) |
| Out of memory / Cannot allocate memory | 资源不足影响网络栈 | top/htop, dmesg | 释放内存/扩容;检查是否有连接泄漏导致 fd 耗尽 |
三 最小化复现实战流程
四 常见场景与修复要点
五 日志规范化与长期观测