设置linux静态IP
方法一
Ubuntu 18.04采用netplan来管理网络配置计划,在/etc/netplan/目录下有一个以yaml结尾的文件,例如00-installer-config.yaml,不同版本的系统这个文件名可能会有些差异,但是不影响,以实际为准。
步骤1:
先ifconfig查看电脑的网卡信息:
找到物理网卡的名称,我这里是ens33,其他几个是虚拟网卡和本地回环,不用管。
步骤2:
输入route -n命令,打印路由表,这里主要是为了查看网关地址,后续会用到
我这里网关地址是192.168.255.0
步骤3:
输入
sudo nano /etc/netplan/00-installer-config.yaml
,编辑yaml文件,注意这里需要sudo权限。
network:version: 2renderer: networkdethernets:ens33:dhcp4: falseaddresses: [192.168.255.139/24]routes:- to: 0.0.0.0/0via: 192.168.255.2nameservers:addresses: [8.8.8.8, 8.8.4.4]
Ctrl + O → 按 Enter 保存
Ctrl + X → 退出
根据实际需要依次设置ens33网卡的静态IP地址、网关、DNS,dhcp4设置为false,最后一行添加:renderer: networkd。注意缩进对齐,并且每个冒号后面要跟一个空格,否则会有问题。设置好后保存退出。
步骤4:
输入命令
sudo netplan apply
使改动生效,然后reboot重启系统,就配置好了。
测试
结果用
ip -4 a show ens33
验证发现:输出的里面含dynamice
说明动态IP仍然存在
NetworkManager 正在运行
dhclient 进程由 NetworkManager 启动(参数中包含 nm-dhcp-helper)
这正是导致你的静态 IP 被覆盖为 dynamic 的原因
解决方案(逐步操作)
1. 立即停止 NetworkManager 和 dhclient
sudo systemctl stop NetworkManager
sudo pkill dhclient
2. 永久禁用 NetworkManager
sudo systemctl disable NetworkManager
sudo apt purge network-manager # 可选:彻底移除(适合服务器)
3. 清除所有 DHCP 租约文件
sudo rm /var/lib/NetworkManager/dhclient-*.lease
sudo rm /var/lib/dhcp/dhclient.*
4. 强制应用静态配置
sudo ip addr flush dev ens33
sudo ip addr add 192.168.255.139/24 dev ens33
sudo ip route add default via 192.168.255.2
5. 验证 NetworkManager 完全停止
ps aux | grep -E 'NetworkManager|dhclient'
预期输出:应只有 grep
进程自身
6. 检查 IP 状态
ip -4 a show ens33
配置成功!!!!
持久化配置
1. 确认 Netplan 配置
sudo cat /etc/netplan/00-installer-config.yaml
确保内容为:
network:version: 2renderer: networkd # 关键:使用networkd而非NetworkManagerethernets:ens33:dhcp4: falsedhcp6: falseaddresses: [192.168.255.139/24]routes:- to: 0.0.0.0/0via: 192.168.255.2nameservers:addresses: [8.8.8.8, 8.8.4.4]
2. 应用配置
sudo netplan --debug apply
途中如果遇到问题可复制黏贴给deepseek
3. 设置开机自启脚本(可选)
sudo nano /etc/rc.local
在 exit 0
前添加:
ip addr add 192.168.255.139/24 dev ens33 || true
然后:
sudo chmod +x /etc/rc.local
故障排查表
现象 | 检查命令 | 解决方案 |
---|---|---|
IP仍是dynamic | ip -4 a show ens33 | 杀死所有 dhclient 进程 |
NetworkManager残留 | ps aux | grep NetworkManager | sudo apt purge network-manager |
路由丢失 | ip route show | 手动添加 ip route add default via 192.168.255.2 |
最终验证
- 重启测试:
sudo reboot
- 重启后检查:
ip -4 a show ens33 systemctl status NetworkManager # 应显示"inactive"
如果严格按照以上步骤操作,你的静态 IP 将永久生效。如果仍有问题,可能是系统镜像或硬件驱动层面的问题,建议提供:
lsb_release -a
系统版本信息dmesg | grep ens33
驱动日志