如何检查Linux系统联网状态?9种方法快速诊断网络问题
在Linux系统中判断网络是否连通是日常运维的关键技能,我们整理了九种实用方法,涵盖基础检测到深度排查技巧,帮助您精准定位网络问题。
基础连通性测试
- ping命令
ping -c 4 baidu.com
- 收到类似
64 bytes from 39.156.66.10
的响应表示网络通畅 - 出现
Network is unreachable
提示说明存在路由问题 - 注意:部分服务器会禁用ICMP协议导致误判
- HTTP请求测试
curl -I --connect-timeout 5 https://www.baidu.com wget --spider https://example.com
- 返回
HTTP/1.1 200 OK
表示Web访问正常 - 适用场景:检测特定网站可达性
网络接口诊断
- 查看网卡状态
ip link show # 或传统命令 ifconfig -a
state UP
表示接口已启用- 检查是否存在期望的网卡名称(如eth0、ens33)
- IP地址验证
ip addr show | grep "inet " # 或使用新版工具 nmcli device show
- 确认已分配有效IPv4/IPv6地址
- 异常情况:仅有169.254开头的本地链路地址
路由与DNS排查
- 路由表检查
ip route show # 传统命令 route -n
- 确认存在默认路由(目标为
0.0.0
) - 检查网关地址是否正确
- DNS解析测试
nslookup www.baidu.com # 详细诊断工具 dig +short google.com
- 确认能返回正确的IP地址
- 对比不同DNS服务器响应:
dig @8.8.8.8 example.com
深度检测工具
- 网络端口检测
nc -zv www.baidu.com 443 telnet smtp.163.com 25
- 验证特定端口开放状态
- 适用协议:HTTP(80)、HTTPS(443)、SMTP(25)等
- 数据包跟踪
traceroute -T 114.114.114.114 # 改进版工具 mtr --report www.taobao.com
- 显示数据包传输路径
- 识别网络中断节点
系统级检测
- 防火墙状态检查
sudo iptables -L -n -v # Ubuntu系统 sudo ufw status
- 确认没有错误规则阻断连接
- 注意伪装规则(MASQUERADE)是否存在
高级技巧:
- 实时监控:
iftop -i eth0
查看实时流量 - 日志分析:
journalctl -u NetworkManager --since "10 min ago"
- 自动检测脚本:
#!/bin/bash ping -c 1 223.5.5.5 >/dev/null && echo "Internet: Connected" || echo "Internet: Disconnected"
常见问题排查:
- 现象:能ping通IP但无法访问网站
解决方案:cat /etc/resolv.conf
检查DNS配置 - 现象:本地网络正常但服务不可达
建议:ss -tulwn
检查服务监听状态
引用说明:
本文命令验证环境为CentOS 8/RHEL 9,部分工具可能需要安装net-tools
、dnsutils
等基础包,涉及的网络诊断原理参考自《Linux Network Administrator’s Guide》及Linux man手册文档。
原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/6395.html