设置静态IP地点(Ubuntu22.04可行)

[复制链接]
发表于 2026-10-5 11:24:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×

搭集群、挂 SSH 远程连接,都吃固定 IP。动态 IP 一变,机器之间互相就连不上了。Ubuntu 18.04 之后桌面和服务器默认都走 Netplan,但底层实则由 systemd-networkd 管着,改静态 IP 的正确姿势是写一个 .network 文件,而不是去动 /etc/network/interfaces。

先动手查两件事

第一,你的网卡叫什么名字。Ubuntu 22.04 用一致性命名,通常是 ens33(VMware)、ens160、enp0s3、eth0:

ip link show

第二,现在用的是哪套网络栈。常见有三种:

  • systemd-networkd — 服务器和 Netplan 配置生效后的实际执行者。
  • NetworkManager — 桌面版默认,有图形界面和 nmtui。
  • ifupdown(/etc/network/interfaces)— 老系统写法,22.04 已基本不用。

先确认谁在跑:

systemctl status systemd-networkd
systemctl status NetworkManager

如果两个都在,NetworkManager 优先级更高,会覆盖掉 networkd 的配置。这是最隐蔽的坑。

方法 A:用 systemd-networkd 写静态 IP

1. 新建一个 .network 文件

cd /etc/systemd/network/
vim 10-ethernet-static.network

2. 写入配置

[Match]
Name=ens33

[Network]
Address=192.168.80.151/24
Gateway=192.168.80.2
DNS=119.29.29.29
DNS=114.114.114.114
DNS=8.8.8.8

要点:

  • [Match] 段指定「对哪块网卡生效」,Name= 必须和你 ip link 查到的名字一字不差。
  • IP 一定要带掩码,写成 192.168.80.151/24,只写 192.168.80.151 会报错。
  • 网关写在 [Network] 段,用 Gateway=,不需要单独的 [Route] 段。
  • 多个 DNS 就写多行 DNS=,不是用空格或逗号分隔。
  • 掩码位算不准就用这个公式:255.255.255.0 → /24,255.255.255.128 → /25,255.255.0.0 → /16。

3. 重启 networkd 让配置生效

sudo systemctl restart systemd-networkd

4. 验证

ip addr show ens33
ip route
ping -c 4 baidu.com

ip addr 看 IP 已不是原来的动态地址,ip route 应该能看到 default via 192.168.80.2。最后重启一次机器确认重启后也保持静态(只 restart 服务有时候测不出来)。

5. 关掉会抢配置的 NetworkManager

sudo systemctl stop NetworkManager dhclient
sudo systemctl disable NetworkManager dhclient

只 stop 不 disable,重启后服务又会自己爬起来把 IP 改回动态。

6. 查日志日志排错

journalctl -u systemd-networkd --follow

配置写错(比如 IP 格式不合法、网关不在同一网段)这里会直接报出来。

方法 B:桌面版用 Netplan 或 NetworkManager

如果系统装了 NetworkManager,改 /etc/netplan/ 下的 YAML 更顺手:

sudo nano /etc/netplan/00-installer-config.yaml
network:
  version: 2
  renderer: networkd
  ethernets:
    ens33:
      addresses: [192.168.80.151/24]
      routes:
        - to: default
          via: 192.168.80.2
      nameservers:
        addresses: [119.29.29.29, 114.114.114.114]
sudo netplan apply

写 YAML 记得:缩进必须用空格不能用 Tab,列表项后面的冒号后要空格。

不想碰配置文件,桌面版直接 nmtui 进文字界面改,或者 nmcli con mod 一行搞定。

常见的几个坑

  • 改了配置不生效:八成是 NetworkManager 还开着,先把它的服务停掉再禁掉开机启动。
  • 网关填成广播地址或 DNS 地址:网关必须是和本机同网段的一个「能转发」的地址,一般是路由器地址 192.168.80.1 或 .2。
  • IP 和局域网其他机器冲突:改之前先 ping -c 2 192.168.80.151 探一下。
  • 掩码漏写:Address=192.168.80.151 不带 /24 会直接报解析错误。
  • 改完直接断网:远程 SSH 会话里别直接重启网络,先在本地控制台操作,或者配好⟵IP 再断开连接。

配好静态 IP 之后集群节点之间、SSH 远程连接就都不看 DHCP 脸色了。整套操作只改网络配置,不动系统里任何已装的程序和数据。

qidao123.com企服评测-应用市场 编辑提示

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表