1. 检查物理连接与网络设备状态
首先确认物理连接是否正常:有线连接需检查网线是否松动、损坏,接口是否清洁;无线连接需确认Wi-Fi开关已开启,信号强度是否足够(可通过nmcli device wifi list查看可用网络)。同时,重启路由器或交换机(断电等待10秒后重新通电),排除网络设备故障。
2. 验证网络接口状态与IP配置
使用ip addr show(或旧版ifconfig)命令查看网络接口(如eth0、ens33、wlan0)的状态:
state DOWN,需用sudo ip link set <interface> up启用);169.254.x.x,此地址表示DHCP失败)。sudo dhclient <interface>(如sudo dhclient eth0)。3. 测试网络连通性
通过ping命令逐步定位连通性问题:
ping 127.0.0.1:测试本地TCP/IP协议栈(若失败,可能为内核网络模块问题);ping <网关IP>(通过ip route | grep default查看默认网关):测试局域网通信(若不通,检查网线、Wi-Fi或网关设备);ping 8.8.8.8:测试外网连通性(若不通,可能是网络中断或防火墙拦截);ping <域名>(如ping www.baidu.com):测试DNS解析(若IP能通但域名不通,需检查DNS配置)。4. 检查DNS配置
查看/etc/resolv.conf文件(或systemd-resolved服务的resolvectl status输出),确认nameserver配置正确(如8.8.8.8、114.114.114.114)。若配置错误,可临时修改:
sudo echo "nameserver 8.8.8.8" > /etc/resolv.conf
sudo echo "nameserver 114.114.114.114" >> /etc/resolv.conf
或修改/etc/netplan/*.yaml(Ubuntu 18.04及以上版本)后应用配置:sudo netplan apply。
5. 排查防火墙与安全组设置
iptables,运行sudo iptables -L -n -v查看是否有DROP规则拦截流量(可临时关闭测试:sudo systemctl stop iptables);firewalld(CentOS/RHEL),运行sudo firewall-cmd --list-all查看规则(可临时关闭:sudo systemctl stop firewalld);ufw(Ubuntu),运行sudo ufw status查看状态(可临时禁用:sudo ufw disable)。6. 验证路由配置
使用ip route show(或route -n)查看路由表,确认默认路由(default via <网关IP> dev <接口>)存在。若缺失默认路由,手动添加:
sudo ip route add default via <网关IP> dev <接口>
例如:sudo ip route add default via 192.168.1.1 dev eth0。
7. 检查服务与端口连通性
若无法访问特定服务(如SSH、HTTP),使用telnet或nc测试端口连通性:
telnet <目标IP> <端口> # 如telnet 192.168.1.100 22
nc -zv <目标IP> <端口> # 如nc -zv 192.168.1.100 80
若连接超时,可能是服务未启动或防火墙拦截。在服务端用ss -tulnp | grep :<端口>(或netstat -tulnp)检查服务是否监听正确IP和端口:
ss -tulnp | grep :22 # 查看SSH服务是否监听22端口
8. 查看系统日志定位问题
使用journalctl或dmesg命令查看系统日志,寻找网络相关的错误信息:
journalctl -xe | grep -i network # 查看近期网络错误日志
dmesg | grep -i eth0 # 查看网卡驱动加载日志(替换为实际接口名)
日志中可能包含网卡驱动失败、DHCP请求超时等信息,帮助精准定位问题。
9. 更新系统与网络驱动
确保系统与网络驱动为最新版本:
sudo apt update && sudo apt upgrade # Debian/Ubuntu
sudo yum update # CentOS/RHEL
若怀疑驱动问题,可通过lspci | grep -i net(或lsusb | grep -i net)查看网卡型号,然后去厂商官网下载并安装最新驱动。
10. 虚拟机环境特殊处理
若使用VMware/VirtualBox等虚拟机,需检查: