马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
搭集群、挂 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企服评测-应用市场 编辑提示 |