固定静态IP地址(基于Ubuntu22.04)
·
Ubuntu 22.04 静态 IP 配置指南
本指南适用于 Ubuntu 22.04 系统,旨在解决因动态 IP 导致 SSH 远程连接和集群通信中断的问题。同时,针对云镜像或虚拟机模板中 Cloud‑init 自动重置网络配置的情况,提供完整的解决方案。
通用前置步骤(两种方法均需执行)
目的:禁用 Cloud‑init 的网络接管功能,防止系统重启后覆盖用户配置。
echo 'network: {config: disabled}' | sudo tee /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
该命令创建一个优先级较高的配置文件,告知 Cloud‑init 不再管理网络。无论你选择下文中的哪种配置方式,此步骤都必须执行。
方法一:使用 systemd-networkd(底层操作)
1. 创建网络配置文件
在 /etc/systemd/network/ 目录下新建一个 .network 文件,例如 10-ethernet-static.network:
sudo mkdir -p /etc/systemd/network
sudo vim /etc/systemd/network/10-ethernet-static.network
2. 填入静态 IP 配置
请先使用 ip link show 确认网卡名称(本例为 ens33),然后写入以下内容(根据实际环境修改 IP 地址、网关和 DNS):
[Match]
Name=ens33
[Network]
Address=192.168.80.142/24
Gateway=192.168.80.2
DNS=119.29.29.29
DNS=114.114.114.114
DNS=8.8.8.8
注意:
Gateway必须是该网段内实际存在的路由设备 IP(通常为*.1或*.254),请通过route -n查看当前网关。
3. 重启网络服务并验证
sudo systemctl restart systemd-networkd
检查 IP 是否生效:
ip addr show ens33
ping -c 4 baidu.com
重启系统测试持久性:
sudo reboot
# 重启后再次执行 ip addr show ens33 确认
4. 禁用其他可能冲突的服务(可选)
如果系统中存在 NetworkManager,建议停止并禁用,避免干扰:
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
5. 查看日志排查问题
journalctl -u systemd-networkd --follow
方法二:使用 Netplan(Ubuntu 推荐)
1. 编辑 Netplan 配置文件
Netplan 配置文件位于 /etc/netplan/,通常以 .yaml 结尾。创建或编辑 01-netcfg.yaml:
sudo nano /etc/netplan/01-netcfg.yaml
2. 添加静态 IP 配置
根据实际网络信息填写,以下为示例(网卡 ens33,IP 192.168.80.142/24,网关 192.168.80.2):
network:
version: 2
renderer: networkd
ethernets:
ens33:
dhcp4: no
addresses:
- 192.168.80.142/24
routes:
- to: default
via: 192.168.80.2
nameservers:
addresses: [119.29.29.29, 114.114.114.114, 8.8.8.8]
关键校验:
via后面的网关地址必须与你实际网络环境一致(通过route -n或ip route确认)。
3. 验证语法并应用
sudo netplan try # 测试配置,确认无误后自动保存
sudo netplan apply # 立即生效
4. 禁用其他网络服务(可选)
同方法一,若 NetworkManager 在运行,可停止并禁用:
sudo systemctl stop NetworkManager
sudo systemctl disable NetworkManager
5. 检查状态
ip addr show ens33
ping -c 4 8.8.8.8
重启后再次验证,确保配置持久。
更多推荐

所有评论(0)