Debian 12 强制修改DNS 教程

本教程的目标是禁用 systemd-resolved 的管理,并直接编辑 /etc/resolv.conf 文件,然后“锁定”它以防止被其他服务覆盖。

准备工作:

在进行任何修改之前,建议您通过 SSH 连接到服务器,并拥有 sudo 权限。

步骤一:检测 /etc/resolv.conf 是否使用了软链接,如果是则删除

systemd-resolved 在运行时会将 /etc/resolv.conf 设置为指向 /run/systemd/resolve/stub-resolv.conf 的软链接。我们需要删除这个软链接才能手动创建和编辑文件。

  1. 检测 /etc/resolv.conf 是否是软链接: ls -l /etc/resolv.conf 预期输出:
    如果它是软链接,输出会是类似这样,开头有 l 并且有 -> 指向目标文件:
    lrwxrwxrwx 1 root root 39 Apr 1 10:00 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
    如果它不是软链接(即一个普通文件),输出会是这样,开头是 -
    -rw-r--r-- 1 root root 128 Apr 1 10:00 /etc/resolv.conf
  2. 如果是软链接,则删除它:
    bash sudo rm /etc/resolv.conf
    注意: 此时,您的 DNS 解析可能暂时失效,直到您完成后续步骤并重新配置。

步骤二:检测 /etc/resolv.conf 是否锁定,如果锁定应该先解锁

“锁定”通常指的是文件系统属性的 immutable (不可变) 标记,它阻止任何用户(包括 root)对文件进行修改、删除或重命名。这个标记是通过 chattr 命令设置的。

  1. 检测文件是否被锁定 (immutable): lsattr /etc/resolv.conf 预期输出:
    如果文件被锁定,输出会显示 i 属性: ----i--------e-- /etc/resolv.conf
    如果文件没有被锁定,输出中不会有 i 属性: -------------e-- /etc/resolv.conf
  2. 如果文件被锁定 (有 i 属性),则解锁它:
    bash sudo chattr -i /etc/resolv.conf
    注意: 如果在步骤一中 /etc/resolv.conf 是软链接且您已将其删除,那么这一步就无需执行,因为软链接本身无法被 chattr +i 锁定。只有普通文件才能被锁定。

步骤三:禁用 systemd-resolved 服务并修改 /etc/resolv.conf 中的 DNS 地址

为了确保您的手动修改不会被 systemd-resolved 覆盖,我们需要完全停止并禁用它。

  1. 停止并禁用 systemd-resolved 服务: sudo systemctl stop systemd-resolved sudo systemctl disable systemd-resolved 这会阻止 systemd-resolved 在系统启动时自动运行,并停止它当前的实例。
  2. 创建或编辑 /etc/resolv.conf 文件并添加 DNS 服务器:
    现在 /etc/resolv.conf 应该已经不存在(如果之前是软链接)或是一个普通文件。使用您喜欢的文本编辑器(如 nanovim)来编辑它。
    sudo nano /etc/resolv.conf
    在文件中添加您想要使用的 DNS 服务器地址。每一行 nameserver 后跟一个 IP 地址。 您可以添加多个,它们将按顺序尝试。通常也建议添加 search 域。 示例内容:
    nameserver 8.8.8.8
    nameserver 8.8.4.4
    保存文件并退出。 (在 nano 中,按 Ctrl+O 保存,Ctrl+X 退出)

步骤四:修改完毕后重新锁定 /etc/resolv.conf

为了防止未来其他程序(即使 systemd-resolved 被禁用,也可能有其他脚本或旧的网络服务尝试修改它)意外地覆盖您的 /etc/resolv.conf,您可以重新锁定它。

  1. 锁定 /etc/resolv.conf 文件 (设置 immutable 属性): sudo chattr +i /etc/resolv.conf 这将使 /etc/resolv.conf 文件变为不可变。即使是 root 用户,在不先解除锁定的情况下,也无法修改或删除它。
  2. 验证文件是否已锁定:
    bash lsattr /etc/resolv.conf
    确保输出中显示了 i 属性:
    ----i--------e-- /etc/resolv.conf

善后工作(可选,但推荐):

  1. 重启网络服务 (如果需要)
    在某些情况下,即使您修改了 /etc/resolv.conf,某些应用程序或缓存可能仍在使用旧的 DNS 信息。重启网络服务可以确保所有组件都读取新的配置。 sudo systemctl restart networking # 重启传统的网络服务 或者,重启整个系统以确保所有服务都以新配置启动: sudo reboot
  2. 确认最终 DNS 配置:
    重启后,再次检查 /etc/resolv.conf
    bash cat /etc/resolv.conf
    然后进行 DNS 查询:
    bash nslookup google.com
    确保 DNS 查询成功,并且 Server: 行显示的是您配置的 DNS 服务器。

解除锁定的方法:

如果您将来需要再次修改 /etc/resolv.conf,请记住先解除锁定:

sudo chattr -i /etc/resolv.conf

然后才能进行编辑。编辑完成后,如果您希望再次锁定,请重复步骤四。

风险和注意事项:

  • 禁用 systemd-resolved 这将禁用 DNS 缓存,可能导致 DNS 解析稍慢,并失去 DNSSEC 和 DNS over TLS 的安全性。对于大多数现代服务器,使用 systemd-resolvednetplan 提供的 DNS 管理功能更为推荐。
  • chattr +i 的风险: 锁定文件会阻止任何程序修改它。如果系统升级或其他管理工具尝试更新此文件,可能会导致错误或警告。在进行系统升级或安装新网络管理软件之前,请考虑暂时解锁 /etc/resolv.conf
  • DHCP: 如果您的服务器通过 DHCP 获取 IP 地址,并且 DHCP 服务器提供了 DNS 信息,那么即使您锁定了 /etc/resolv.conf,DHCP 客户端也可能仍然尝试更新 DNS 信息(虽然因为文件被锁定而无法写入)。这通常不会导致问题,因为锁定了文件,但了解这种潜在行为很重要。如果您使用静态 IP 配置,则无需担心此问题。

好的,以下是 Google Public DNS、Cloudflare DNS 和 Quad9 的公共 DNS 服务器地址,包括 IPv4 和 IPv6。

这些都是知名的、可靠的公共 DNS 服务,提供更快的解析速度和隐私保护(具体隐私政策请查阅各服务官网)。

1. Google Public DNS

Google 的公共 DNS 服务,全球范围内广泛使用。

  • IPv4 地址:
    • 主:8.8.8.8
    • 备:8.8.4.4
  • IPv6 地址:
    • 主:2001:4860:4860::8888
    • 备:2001:4860:4860::8844
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 2001:4860:4860::8888
nameserver 2001:4860:4860::8844

2. Cloudflare DNS (1.1.1.1)

Cloudflare 提供的高性能和隐私保护 DNS 服务,以其速度和不记录用户 IP 地址而闻名。

  • IPv4 地址:
    • 主:1.1.1.1
    • 备:1.0.0.1
  • IPv6 地址:
    • 主:2606:4700:4700::1111
    • 备:2606:4700:4700::1001
nameserver 1.1.1.1
nameserver 1.0.0.1
nameserver 2606:4700:4700::1111
nameserver 2606:4700:4700::1001

3. Quad9

Quad9 是一个专注于安全和隐私的公共 DNS 服务,它会过滤恶意域名(如钓鱼网站、恶意软件分发等)。

  • IPv4 地址:
    • 主 (带安全过滤):9.9.9.9
    • 备 (带安全过滤):149.112.112.112
    • 不带过滤 (仅DNS):9.9.9.10
    • 不带过滤 (并EDNS Client Subnet支持):149.112.112.10
  • IPv6 地址:
    • 主 (带安全过滤):2620:fe::fe
    • 备 (带安全过滤):2620:fe::9
    • 不带过滤 (仅DNS):2620:fe::10
    • 不带过滤 (并EDNS Client Subnet支持):2620:fe::fe:10

如何选择:

  • 速度优先: Cloudflare (1.1.1.1) 通常以其极快的解析速度而著称。
  • 兼顾速度和稳定性: Google Public DNS 是非常成熟和稳定的选择。
  • 安全优先: Quad9 提供了内置的恶意域名过滤功能,有助于提高上网安全性。

您可以根据自己的需求选择一个或多个进行配置。通常建议配置至少两个,一个作为主 DNS,另一个作为备用,以提高可靠性。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇