一、禁用 NetworkManager
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo systemctl mask NetworkManager
二、修改 Netplan 配置
编辑或新建 /etc/netplan/01-netcfg.yaml:
sudo vim /etc/netplan/01-netcfg.yaml
内容如下(使用 DHCP 自动获取 IP):
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: true
注意:
- 缩进必须为两个空格。
- 不要使用 Tab。
- 不要保留旧的
renderer: NetworkManager。
删除旧的 NetworkManager 配置文件(防止冲突):
sudo rm /etc/netplan/01-network-manager-all.yaml
修正权限:
sudo chmod 600 /etc/netplan/01-netcfg.yaml
sudo chown root:root /etc/netplan/01-netcfg.yaml
三、启用 systemd-networkd 再应用 Netplan
- 启动并启用
systemd-networkd:
sudo systemctl unmask systemd-networkd
sudo systemctl enable systemd-networkd --now
- 启动并启用
systemd-resolved管理 DNS:
sudo systemctl enable systemd-resolved --now
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
- 应用 Netplan 配置:
sudo netplan apply
四、验证网络是否启动成功
查看网络状态:
networkctl status ens33
或:
ip addr show ens33
应看到:
inet 192.168.x.x/24 scope global dynamic ens33
测试连接:
ping -c 3 8.8.8.8
ping -c 3 www.baidu.com
五、配置静态 IP(可选)
如果需要固定 IP,可修改 /etc/netplan/01-netcfg.yaml:
network:
version: 2
renderer: networkd
ethernets:
ens33:
addresses: [192.168.1.100/24]
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses: [223.5.5.5, 8.8.8.8]
然后执行:
sudo netplan apply
六、确认最终网络状态
查看网络设备状态:
networkctl
输出示例:
IDX LINK TYPE OPERATIONAL SETUP
1 lo loopback carrier unmanaged
2 ens33 ether routable configured
七、常见问题
| 问题 | 原因 | 解决方案 |
|---|---|---|
Permissions for /etc/netplan/*.yaml are too open | 配置文件权限太宽 | 执行 sudo chmod 600 /etc/netplan/*.yaml |
Failed to start NetworkManager.service: Unit is masked | NetworkManager 被禁用 | 忽略(预期行为) |
systemd-networkd is not running | 网络服务未启动 | sudo systemctl enable systemd-networkd --now |
| 无法解析域名 | DNS 未启用 | 启动 systemd-resolved 并修复 /etc/resolv.conf |
八、命令速查表
# 1. 禁用 NetworkManager
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
sudo systemctl mask NetworkManager
# 2. 编辑 Netplan 配置
sudo nano /etc/netplan/01-netcfg.yaml
# 3. 启用 systemd-networkd 与 DNS
sudo systemctl unmask systemd-networkd
sudo systemctl enable systemd-networkd --now
sudo systemctl enable systemd-resolved --now
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
# 4. 应用 Netplan
sudo netplan apply
# 5. 检查网络状态
networkctl status ens33
ip addr show ens33

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



