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 -nip 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

重启后再次验证,确保配置持久。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐