这里写目录标题
一、整体思路:分层排查(自上而下 or 自下而上)
网络通信链路:
应用 ←→ DNS ←→ 网络连通性 ←→ IP 配置(DHCP) ←→ 物理/虚拟网络
遇到问题,按顺序问自己:
- 设备有没有 IP?(DHCP 是否工作?)
- 能不能 ping 通网关或外网 IP?(网络层是否通?)
- 能不能解析域名?(DNS 是否正常?)
- 能不能访问目标服务端口?(服务是否在线?防火墙?)
- 应用逻辑是否正确?(排除网络后,才是代码问题)
二、常见问题分类与应对
1. 设备无法上网 / 获取不到 IP
现象:
- Windows 显示“无 Internet 访问权限”
- ipconfig 显示 169.254.x.x(APIPA 地址)
- Linux 显示 dhcpcd: no lease
可能原因:
- DHCP 服务器未运行 / 网络隔离 / 租约到期 / VLAN 配置错误
快速验证:
ipconfig /all # Windows
ip a # Linux
—> 查看是否有有效 IP(非 169.254.x.x)
解决方向:
- 重启路由器 / DHCP 服务
- 检查交换机端口是否放行 DHCP 广播
- 手动配置静态 IP 测试(临时绕过 DHCP)
2. 能上网,但打不开网页(域名无法访问)
现象:
- 能 ping 8.8.8.8,但 ping www.baidu.com 失败
- 浏览器提示“找不到服务器 IP 地址”
可能原因:
- DNS 服务器配置错误 / DNS 服务宕机 / 域名不存在 / 本地 hosts 干扰
快速验证:
nslookup www.baidu.com
ping 8.8.8.8 # 先确认网络通
cat /etc/resolv.conf # Linux 查 DNS 配置
ipconfig /all # Windows 查 DNS 服务器
解决方向:
- 更换 DNS(如改用 8.8.8.8 或 114.114.114.114)
- 清除 DNS 缓存:
ipconfig /flushdns # Windows
systemd-resolve --flush-caches # Ubuntu
- 检查是否被劫持(恶意软件修改 DNS)
3. 能解析域名,但连接超时 / 拒绝连接
现象:
- ping www.baidu.com 成功(有 IP)
- 但浏览器打不开,或 telnet www.baidu.com 80 失败
可能原因:
- 目标服务未启动 / 防火墙拦截 / 端口不通 / 代理配置错误
快速验证:
telnet <IP> 80 # 测试端口连通性(Windows 需启用 Telnet 客户端)
nc -vz <IP> 80 # Linux(netcat)
curl -v http://<IP> # 查看详细连接过程
解决方向:
- 联系后端确认服务是否运行
- 检查本地/云防火墙规则(安全组)
- 检查是否配置了错误的 HTTP 代理
4. 内网服务无法访问(如测试环境 API)
现象:
- api.test.local 无法解析
- 或解析到错误 IP
可能原因:
- 内网 DNS 未配置 / hosts 文件缺失 / DHCP 未下发内网 DNS
快速验证:
nslookup api.test.local
ping api.test.local
- 如果失败,尝试直接用 IP 访问(如 http://192.168.10.50/api)
解决方向:
- 在 hosts 文件中手动添加(临时方案):
192.168.10.50 api.test.local
- 联系运维确认内网 DNS 是否包含该记录
- 检查 DHCP 是否分配了正确的内网 DNS 服务器
5. 间歇性网络失败 / 时通时断
可能原因:
- IP 冲突 / DHCP 租约频繁变化 / 无线信号弱 / 路由环路
快速验证:
- 观察 IP 是否频繁变化(对比多次 ipconfig)
- 使用 arp -a 查看是否有重复 MAC 对应同一 IP
- 换有线连接测试(排除 Wi-Fi 干扰)
解决方向:
- 固定测试机 IP(避免 DHCP 波动)
- 检查交换机 ARP 表
- 联系网络管理员排查环路或干扰
三、测试必备命令速查表
| 目的 | Windows | Linux/macOS |
|---|---|---|
| 查看 IP 和 DNS | ipconfig /all | ip a + cat /etc/resolv.conf |
| 刷新 DHCP | ipconfig /release && ipconfig /renew | sudo dhclient -r && sudo dhclient |
| 清 DNS 缓存 | ipconfig /flushdns | sudo dscacheutil -flushcache (mac) / sudo systemd-resolve --flush-caches (Ubuntu) |
| 测试域名解析 | nslookup example.com | nslookup example.com 或 dig example.com |
| 测试端口连通 | telnet ip port | nc -vz ip port 或 telnet ip port |
| 路由跟踪 | tracert example.com | traceroute example.com |
四、总结
先看 IP,再 ping 通;
能 ping IP,不能访域名 → 查 DNS;
能解域名,连不上服务 → 查端口/防火墙;
内网不通 → 查 hosts / 内网 DNS;
一切正常还失败 → 找开发!
643

被折叠的 条评论
为什么被折叠?



