默认 DNS 忘记了怎么办?试试找回 DHCP 分配的 DNS

DD 重装系统后 resolv.conf 被改乱?教你从 DHCP 租约记录中找回原始 DNS 配置

周二 1月 21 2025
577 字 · 3 分钟

DD(重装自定义镜像)过的系统,经常会遇到 /etc/netplan 不存在、VPS 控制面板显示信息不准确的情况。这是因为控制面板无法读取你当前系统的配置。

但是,机房的网络架构并没有变。 无论你怎么 DD 系统,机房通过 DHCP 广播给你的 DNS 服务器地址是固定不变的

要找回默认 DNS,最准确的方法是查看系统连接网络时生成的 DHCP 租约记录 (Lease File)

方法一:查看 DHCP 租约文件(最推荐)

系统启动并联网时,DHCP 客户端会从机房接收一个数据包,里面包含 IP、网关和 DNS。这个信息会保存在本地。

Debian/Ubuntu/CentOS 系

Terminal window
grep "domain-name-servers" /var/lib/dhcp/dhclient.leases

如果文件不存在,尝试通配符:

Terminal window
grep "domain-name-servers" /var/lib/dhcp/dhclient*.leases

正常输出示例:

option domain-name-servers 46.38.225.230, 46.38.252.230;

这就是机房分配给你的默认 DNS。

方法二:询问 systemd-resolved

如果你的系统比较新(Debian 10+、Ubuntu 20+),通常使用 systemd-resolved

Terminal window
resolvectl status

旧版本使用:

Terminal window
systemd-resolve --status

在输出中找到你的网卡(通常是 eth0ens3),DNS Servers 一栏就是默认 DNS。

输出示例:

Link 2 (eth0)
Current Scopes: DNS
LLMNR setting: yes
MulticastDNS setting: no
DNSSEC setting: no
DNSSEC supported: no
DNS Servers: 46.38.225.230
46.38.252.230

方法三:查询机房官方文档

如果系统太精简(比如 Alpine)找不到日志,可以查阅机房的官方文档。

Netcup 为例,其 DNS 是全机房通用的,不针对个人分配:

  • DNS 1: 46.38.225.230
  • DNS 2: 46.38.252.230

这是 Netcup 的内网 DNS 缓存服务器。只要 VPS 在 Netcup 机房,这两个 IP 就是物理距离最近、解析最快的默认 DNS。

恢复默认 DNS 配置

找到 DNS 后,直接编辑 /etc/resolv.conf

Terminal window
sudo nano /etc/resolv.conf

填入以下内容:

nameserver 46.38.225.230
nameserver 46.38.252.230

保存退出即可。

⚠️ 注意:某些系统(如使用 systemd-resolvedNetworkManager)会自动覆盖 /etc/resolv.conf。如需持久化,请配置对应的网络管理工具。

总结

方法适用场景
DHCP 租约文件最通用,适合传统 DHCP 客户端
resolvectl现代 systemd 系统
机房官方文档精简系统或终极确认

DNS 配置被改乱不可怕,只要机房的 DHCP 服务还在运行,你随时可以从租约记录中找回原始配置。


Thanks for reading!

默认 DNS 忘记了怎么办?试试找回 DHCP 分配的 DNS

周二 1月 21 2025
577 字 · 3 分钟