外观
改静态 IP 与失联自救
改 PVE 的管理 IP 是个典型的「坐在自己要锯的树枝上」的操作:你通过网络连着它,而你要改的正是网络。
改网络前必须先有退路
没有以下任意一条退路,就不要远程改网络配置:
- 能接显示器和键盘到这台机器上(本机控制台)。
- 有 IPMI / BMC / iDRAC / iLO 这类带外管理。
- 这台机器就在你手边,改砸了走过去就能弄。
远程改网络失败的结果是:机器还在跑,虚拟机还在跑,但你连不上去,只能物理接触。这在托管机房是要花钱跑一趟的。
开始之前
搞清楚三件事:
这台机器在集群里吗? 执行 pvecm status。如果在集群里,改 IP 要复杂得多——corosync 配置、集群证书都和 IP 绑定。本文只覆盖单机场景。集群节点改 IP 请先读官方文档,那是一个独立的流程。
要改的是什么? 通常是这两项之一或全部:
- 管理 IP(在
/etc/network/interfaces里) - 主机名(在
/etc/hosts和/etc/hostname里)
新地址会冲突吗? 先从别的机器 ping 一下新 IP。有回应说明已被占用。同时确认新 IP 在路由器 DHCP 池之外,否则以后可能被分配给别的设备。
第一步:备份当前配置
sh
cp /etc/network/interfaces /root/interfaces.bak
cp /etc/hosts /root/hosts.bak顺便把当前配置抄在纸上或记在手机里。等你失联的时候,这份记录能让你在本机控制台上快速改回去。
第二步:改网络配置
用 Web UI(推荐)
节点 → System → Network,选中 vmbr0,点 Edit,改 IPv4/CIDR 和 Gateway。
Web UI 的改动不会立刻生效
PVE 把改动写进一个待生效文件 /etc/network/interfaces.new,界面上方会出现提示条。这是个安全设计:你可以改完、检查、再决定什么时候应用。
点 Apply Configuration 才真正生效。生效的瞬间你的浏览器会断开——这是正常的,用新地址重新访问。
用命令行
sh
nano /etc/network/interfaces改这两行:
text
address 192.168.1.20/24
gateway 192.168.1.1地址必须带 CIDR 前缀
写 address 192.168.1.20 而没有 /24,会导致接口起不来。PVE 8 及以后用的是 ifupdown2,它要求 CIDR 格式。
保存后应用:
sh
ifreload -a这条命令由 ifupdown2 提供,能在不重启的情况下应用网络配置。执行后当前 SSH 会话会断开。
第三步:同步主机名解析
/etc/hosts 里有一行把主机名映射到管理 IP。IP 改了这里没改,会导致 Web UI 出现各种奇怪问题(证书告警、节点显示离线、任务卡住)。
sh
nano /etc/hosts找到这一行并改成新 IP:
text
192.168.1.20 pve.home.lan pve这一步最容易被忘掉
「IP 改完了,能 ping 通,但 Web UI 打开后节点显示红叉」——十有八九是 /etc/hosts 没改。PVE 的很多内部通信走主机名解析。
主机名本身要改的话,还要改 /etc/hostname,然后重启。改主机名的连带影响比改 IP 更大(证书、集群配置、存储配置里可能都有),能不改就不改。
第四步:验证
用新地址重新连接:
sh
ssh root@192.168.1.20然后在宿主机上:
sh
# 1. IP 是新的
ip -4 addr show vmbr0
# 2. 路由正确
ip route
# 3. 网关通
ping -c 3 <网关IP>
# 4. 主机名能解析到新 IP
ping -c 1 $(hostname)
# 5. PVE 服务正常
systemctl status pve-cluster pvedaemon pveproxy浏览器访问 https://192.168.1.20:8006,节点图标是正常的绿色,不是红叉或问号。
重启一次再收工
配置文件改对了、ifreload 也生效了,不代表开机时也能正常起来。找个时间重启一次宿主机,确认新配置在冷启动后依然生效。
失联了怎么办
按可行性排序:
退路一:本机控制台
接上显示器和键盘,用 root 登录。然后:
sh
# 看看现在的实际地址
ip -4 addr
# 恢复备份
cp /root/interfaces.bak /etc/network/interfaces
ifreload -a退路二:临时给自己一个能用的地址
如果只是想先连上去再慢慢弄,可以临时加一个 IP(重启后失效,这正是它安全的原因):
sh
ip addr add 192.168.1.99/24 dev vmbr0然后从别的机器连 192.168.1.99 处理。
退路三:直连一根网线
笔记本用网线直连 PVE 的网口,两边都设同网段的静态 IP(比如 PVE 用 10.0.0.1/24,笔记本用 10.0.0.2/24),就能连上。
退路四:救援模式
前面都不行(比如系统根本起不来),用安装 U 盘进救援模式。属于迁移与救援的内容。
常见问题
ifreload -a 报错但没说清楚原因。 先做语法检查:
sh
ifup --no-act vmbr0它会模拟执行并报告配置问题,不会真正改动。
改完之后客户机全部断网。 检查 bridge-ports 那一行有没有被误改。客户机的连通性靠网桥,和宿主机自己的 IP 是两回事。
能 ping 通 IP 但 Web UI 转圈。 查 /etc/hosts(见第三步),然后重启 PVE 的服务:
sh
systemctl restart pve-cluster pvedaemon pveproxy想换网卡(比如换了主板)。 新网卡名字变了,/etc/network/interfaces 里的 bridge-ports 要同步改。用 ip link 看实际的网卡名。