メインコンテンツへスキップ
  1. ノート/
  2. Linux/

Linux DNS ネットワーク管理

·1086 文字·3 分· loading · loading · · ·
ICE345
著者
ICE345
CS Student | System | Linux | OCaml
この記事は中国語版をもとにした日本語版メモです。コマンド、コード、数式、画像リンクは原文の意味を壊さないように保持し、説明文と見出しを日本語向けに整理しています。

是的,你できます在 /etc/resolv.conf ファイル中変更 DNS サーバー。该ファイル用于設定 Linux システム使用的 DNS 解析サーバー。通过编辑该ファイル,你できます手动指定 DNS サーバー(たとえば Google 的 8.8.8.8 或 Cloudflare 的 1.1.1.1 等)。

最好使用的是 dhcpcd 服务,この最容易変更,就在 /etc/dhcpcd.conf 中変更就行

如何変更 /etc/resolv.conf ファイル来更改 DNS サーバー
#

  1. 编辑 /etc/resolv.conf ファイル

    使用文本编辑器(たとえば nanovimgedit)编辑 /etc/resolv.conf ファイル:

    sudo nano /etc/resolv.conf
  2. 変更 DNS サーバー

    在ファイル中,你できます追加或変更 nameserver 行来指定 DNS サーバー。たとえば:

     nameserver 8.8.8.8    # Google Public DNS
     nameserver 8.8.4.4    # Google Public DNS (备用)
     nameserver 2001:4860:4860::8888
     nameserver 2001:4860:4860::8844

    或者,你できます使用其他 DNS 服务提供商的 IP 地址,たとえば:

    nameserver 1.1.1.1    # Cloudflare DNS
    nameserver 1.0.0.1    # Cloudflare DNS (备用)

    保存ファイル并退出编辑器。

  3. 检查 DNS 设置

    编辑完成后,できます使用以下コマンド检查 DNS 設定是否生效:

    cat /etc/resolv.conf

    你应该看到你追加的 DNS サーバー IP 地址。

注意事项
#

  1. ネットワーク管理ツール的干扰
    在某些システム中,/etc/resolv.conf ファイル可能会被ネットワーク管理ツール(如 NetworkManagersystemd-resolveddhclient)覆盖或自动生成。もし你手动変更了该ファイル,但ネットワーク管理ツール恢复了默认的 DNS 设置,変更将会被覆盖。

  2. 禁用自动生成的 /etc/resolv.conf
    もし你希望手动管理 DNS 設定并防止它被覆盖,你できます采取以下方法:

    • 禁用 systemd-resolved(もし在使用 systemd

      もし你的システム使用 systemd-resolved 管理 DNS 設定,できます禁用它,その後手动変更 /etc/resolv.conf

      sudo systemctl disable systemd-resolved.service
      sudo systemctl stop systemd-resolved.service
      sudo rm /etc/resolv.conf
      sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf
    • 変更 NetworkManager 设置

      もし你使用的是 NetworkManager,できます通过変更其設定ファイル来防止它覆盖 /etc/resolv.conf。编辑 /etc/NetworkManager/NetworkManager.conf 并追加以下行:

      [main]
      dns=none

      その後重新启动 NetworkManager 服务:

      sudo systemctl reload NetworkManager

その後要重新编辑 resolv.conf ファイル

その後再继续执行

sudo systemctl reload NetworkManager
  1. 通过 DHCP 自动获取 DNS
    もし你的ネットワーク通过 DHCP 自动获取 IP 設定,DHCP サーバー也可能会向 /etc/resolv.conf 写入 DNS 設定。你できます禁用 DHCP 設定 DNS 设置来防止这种情况,具体方法依赖于你的ネットワーク管理ツール。

使用的是 dhcpcd
#

编辑 /etc/dhcpcd. conf 的, 找到/追加: static domain_name_server=.....

使用的是 systemd-networkd
#

この可能就要在 /etc/systemd/network/ 中编辑ファイル,作成一个ファイル ,以. network 结尾たとえば: 20-wired. network

[Match]
Name=eth0

[Network]
Address=192.168.1.100/24
Gateway=192.168.1.1
DNS=8.8.8.8
DNS=1.1.1.1

まとめ
#

你确实できます手动编辑 /etc/resolv.conf 来设置 DNS サーバー,但要注意一些ネットワーク管理ツール可能会自动覆盖该ファイル。もし你想持久化更改,可能必要禁用某些自动管理 DNS 的服务或ツール。

関連記事