适用范围:由 ifupdown 管理接口的 Debian 客体。桌面系统、cloud-init、systemd-networkd、NetworkManager 及 PVE 管理的 LXC 网络,应按实际管理方式配置。
一、先确认谁管理网卡
ens18 只是常见虚拟网卡名称,先查看实际接口、地址与路由:
ip -br link
ip -br address
ip route
systemctl is-active networking NetworkManager systemd-networkd
服务 active 本身不能证明它正在管理某个接口,还要检查 /etc/network/interfaces、interfaces.d、管理程序连接配置以及云平台/cloud-init 设置。不要让同一个接口同时受多个管理器控制。PVE 的容器 IP 可由宿主机配置生成,修改容器内部文件可能在重启后被覆盖;PVE 宿主机的网桥设置也不能直接照抄普通 VM 示例。
修改前备份现有配置、记录原 IP 和网关,并准备本地或带外控制台。不要在唯一 SSH 会话中直接重启网络。
二、ifupdown 的静态 IPv4 示例
以下示例网络为 192.168.10.0/24,网关和 DNS 为 192.168.10.1,静态 IP 为 192.168.10.50。这些地址应换成实际值,确认地址未占用且不会与 DHCP 地址池冲突。可以在路由器做 DHCP 保留,不一定必须改成静态配置。
在已有接口配置中替换原 DHCP 段,保留 loopback 和其他接口,并避免在多个文件重复定义 ens18:
auto lo
iface lo inet loopback
auto ens18
iface ens18 inet static
address 192.168.10.50/24
gateway 192.168.10.1
dns-nameservers 192.168.10.1
# 只有网络确实提供 IPv6 RA/SLAAC 时才保留此项
iface ens18 inet6 auto
网关字段拼写为 gateway;误写成 getway 无法正确配置网关。CIDR 前缀已给出掩码,不必再手工填写 network/broadcast。只配置需要的默认路由,不额外添加重复的 up ip route add default 来掩盖错误。ifupdown interfaces 手册
dns-nameservers 需要相应解析器集成才能写入实际 DNS 状态,仅添加这一行不保证生效。使用 resolvconf、systemd-resolved 或其他解析器时,按其配置接口设置。
三、在控制台应用并验收
检查接口配置后,从控制台重新启用该接口:
sudo ifdown ens18
sudo ifup ens18
ip -br address show ens18
ip route
网络会短暂断开。失败时恢复备份并重新启用,不通过同时启动 NetworkManager 来补救 ifupdown 配置,也不随意重启所有网络服务。其他网络管理器使用各自的应用命令。
依次验证网关、外网 IP、域名解析和实际业务:
ping -c 3 192.168.10.1
getent ahosts deb.debian.org
ICMP 被禁的网络需要用相应业务连接替代 ping,不能单凭 ping 失败断言没有网络。再次检查是否残留旧 DHCP 地址或重复默认路由。
四、DNS 配置不要互相覆盖
查看 /etc/resolv.conf 是普通文件还是链接:
ls -l /etc/resolv.conf
cat /etc/resolv.conf
如果由 systemd-resolved、resolvconf 或其他管理器生成,直接写入会被覆盖,也可能破坏本地解析服务;应修改对应管理器配置。只有确定它是手工维护的静态文件时,才按实际网络填写 nameserver。不要为了“固定 DNS”将该文件锁定或删除解析服务。
重启后再次核对地址、路由和 DNS,确认配置没有被 cloud-init 或上级平台还原,再把结果记录到自己的运维文档。
评论区