Ubuntu 14.04 桌面版 - 网卡静态IP配置排查记录
网卡: eth0 目标配置(示例):
- IP地址:
192.168.100.22 - 子网掩码:
255.255.255.0(/24) - 网关:
192.168.100.1 - DNS:
8.8.8.8,114.114.114.114
背景
该机器最初尝试通过编辑 /etc/network/interfaces 修改 eth0 的IP,但发现该文件里只有 lo 的配置,没有 eth0 相关内容。原因是:
Ubuntu 14.04 桌面版默认使用 NetworkManager 管理网络连接,图形化界面配置的静态IP不会写入
/etc/network/interfaces,而是保存在 NetworkManager 自己的连接配置文件中。因此编辑interfaces文件对该场景无效。
排查与配置步骤
1. 确认当前网卡状态
ip addr show eth0
确认 eth0 存在且处于 UP 状态,记录当前IP(如有)以便对比。
2. 尝试 nmtui(图形化文本界面)
sudo nmtui
该机器上 nmtui 未安装(
command not found),放弃此方法,改用 nmcli / 直接编辑配置文件。
3. 查看已有连接
nmcli con list
该机器 NetworkManager 版本较老(0.9.8),不支持新版 nmcli connection modify 等子命令。查到唯一连接,记下其 UUID 和类型(802-3-ethernet)。
4. 定位并编辑连接配置文件
sudo grep -l "<记录下来的UUID>" /etc/NetworkManager/system-connections/*
sudo vim /etc/NetworkManager/system-connections/<连接名>
5. 修改 [ipv4] 段
配置文件关键内容(示例):
[connection]
id=...
uuid=<连接的UUID>
type=802-3-ethernet
timestamp=...
[ipv6]
method=auto
[ipv4]
method=manual
dns=8.8.8.8;114.114.114.114;
address1=192.168.100.22/24,192.168.100.1
never-default=false
may-fail=false
6. 保存并重启 NetworkManager
sudo chmod 600 /etc/NetworkManager/system-connections/<连接名>
sudo service network-manager restart
7. 验证
ip addr show eth0
ip route show
ping -c 4 8.8.8.8
踩坑记录:内网通、外网不通
现象: IP、掩码、网关、DNS 全部配置正确,能 ping 通内网设备,但无法访问外网。
原因: 配置文件中存在
never-default=true
该参数表示"此连接不允许作为系统默认路由"。虽然网关地址填写正确,但 NetworkManager 不会为其生成 default 路由(0.0.0.0/0),导致:
- 同网段(内网)通信走二层直连,正常
- 跨网段(外网)通信因缺少默认路由而失败
验证方法:
ip route show
# 若无 "default via <网关IP> dev eth0" 这一行,即为此问题
修复方法: 将该参数改为 false(或删除该行,默认值即为 false):
never-default=false
保存后重启 NetworkManager,再次检查路由表出现 default 路由,外网即可正常访问。
关键知识点小结
| 要点 | 说明 |
|---|---|
| 14.04 桌面版网络管理方式 | 默认由 NetworkManager 接管,而非 /etc/network/interfaces |
| 连接配置文件位置 | /etc/NetworkManager/system-connections/ |
| 配置文件权限 | 需为 600,否则 NetworkManager 可能拒绝读取或提示不安全 |
| 老版本 nmcli 限制 | 0.9.8 版本无 connection modify,需直接编辑配置文件 |
never-default 参数 |
true 会导致该连接的网关不被设为系统默认路由,是内网通外网不通的典型原因 |
| 生效方式 | 改完配置文件后执行 sudo service network-manager restart |