侧边栏壁纸
博主头像
いちごみるく

行动起来,活在当下

  • 累计撰写 70 篇文章
  • 累计创建 48 个标签
  • 累计收到 55 条评论

目 录CONTENT

文章目录

Debian 静态 IP:ifupdown 配置、网关与 DNS 验证

适用范围:由 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 或上级平台还原,再把结果记录到自己的运维文档。

0

评论区