Ubuntu如何解决网络故障
小樊
38
2025-12-29 17:05:48
Ubuntu网络故障排查与修复指南
一 快速定位问题
- 先看物理与开关:确认网线插牢、路由器/光猫通电、Wi‑Fi 开关已开启(笔记本功能键或系统菜单)。
- 查看网卡与地址:运行 ip a,确认接口(如 eth0、wlan0)处于 UP 状态并获取到 IPv4/IPv6 地址;若没有地址,多半是接口未启用或未获取到 DHCP 租约。
- 检查网络管理服务:运行 systemctl status NetworkManager,若未运行,执行 sudo systemctl start NetworkManager;也可用 sudo nmcli networking off && sudo nmcli networking on 快速重启网络栈。
- 连通性三步:
- 先 ping 默认网关(如路由器 192.168.1.1)验证局域网;
- 再 ping 1.1.1.1 验证外网连通;
- 用 nslookup example.com 或 dig example.com 验证 DNS 解析。
- 查看路由与日志:用 ip route 确认是否存在默认路由(default via …);用 journalctl -xe、dmesg | grep -i net 查看报错线索。
二 常见修复操作
- 启用网卡:例如 sudo ip link set eth0 up。
- 重启网络服务:
- 使用 NetworkManager:sudo systemctl restart NetworkManager;
- 或使用传统服务:sudo systemctl restart networking(若系统仍保留该服务)。
- 配置 IP 与 DNS(nmcli 示例):
- 修改连接(将“eth0”替换为你的连接名/接口名):
- sudo nmcli con mod eth0 ipv4.addresses 192.168.1.100/24
- sudo nmcli con mod eth0 ipv4.gateway 192.168.1.1
- sudo nmcli con mod eth0 ipv4.dns “8.8.8.8 1.1.1.1”
- sudo nmcli con up eth0
- 修复 DNS:查看 /etc/resolv.conf 是否有 nameserver 8.8.8.8 等有效服务器;若被覆盖,可在 Netplan 或 NetworkManager 中固定 DNS。
- 添加默认路由:若无 default 路由,临时添加 sudo ip route add default via <网关IP>。
- 防火墙放行:查看 sudo ufw status;必要时临时放行或关闭测试(如 sudo ufw disable),确认后再细化规则。
- 虚拟机场景:在虚拟化平台将网络适配器设为 NAT 或 桥接 并核对虚拟机内网络设置。
三 按版本与场景处理
- 使用 Netplan 的系统(如 Ubuntu 18.04/20.04/22.04/24.04 服务器版常见):
- 编辑 /etc/netplan/*.yaml(如 01-netcfg.yaml 或 50-cloud-init.yaml),确保 renderer 与配置项正确;
- 应用:sudo netplan generate && sudo netplan apply;如配置异常,可先备份后使用最小化示例重新生成。
- 使用 ifupdown 的系统(较少见):
- 检查 /etc/network/interfaces,确保 auto eth0 / iface eth0 inet dhcp(或静态配置)正确;
- 重启:sudo systemctl restart networking。
- 使用 NetworkManager 的桌面/服务器:
- 优先用 nmcli 或图形界面配置连接与 DNS;
- 必要时检查 /etc/NetworkManager/NetworkManager.conf 的 managed 等关键项。
四 仍无法恢复时的进阶检查
- 驱动与硬件:运行 lspci | grep -i net、lsusb 确认网卡被识别;用 ubuntu-drivers devices 查看/安装推荐驱动;必要时更换网线、切换插槽或测试其他网络环境。
- 系统更新:执行 sudo apt update && sudo apt upgrade,修复可能的网络组件或驱动问题。
- 日志深挖:持续查看 journalctl -xe、dmesg | grep -i net,定位驱动加载、链路协商、DHCP 交互等阶段的报错。
五 一键参考命令清单
- 查看状态:ip a、ip route、systemctl status NetworkManager、nmcli device status、nmcli connection show
- 快速恢复:sudo nmcli networking off && sudo nmcli networking on、sudo systemctl restart NetworkManager
- 连通性测试:ping 1.1.1.1、ping 8.8.8.8、nslookup example.com
- 临时配置:sudo ip link set up、sudo ip route add default via
- 持久化配置:
- nmcli:sudo nmcli con mod ipv4.addresses … ipv4.gateway … ipv4.dns “…” && sudo nmcli con up
- Netplan:sudo netplan generate && sudo netplan apply
- 防火墙:sudo ufw status、sudo ufw disable(测试后请恢复并细化规则)