Linux配置DNS怎么操作?

HCRM技术_小炮 DNS 2025-09-22 1 0

临时修改(重启后失效)

这种方法通过直接修改/etc/resolv.conf 文件来立即生效,但通常只用于临时测试,因为网络服务或重启后可能会被覆盖。

1、使用编辑器修改(如nanovim):

    sudo nano /etc/resolv.conf

2、修改文件内容

在文件中添加nameserver 行指定 DNS 服务器地址,可以指定多个,系统会按顺序使用。

    nameserver 8.8.8.8       # 首选 DNS (Google)
    nameserver 1.1.1.1       # 备选 DNS (Cloudflare)
    nameserver 114.114.114.114 # 备选 DNS (国内公用)

注意:如果文件开头有# Generated by NetworkManager 之类的注释,说明该文件由网络管理器自动生成,您在这里的修改很可能很快被覆盖。

3、立即生效

修改保存后,配置会立即生效,可以使用以下命令测试:

    nslookup google.com
    或
    dig google.com

方法二:永久修改(推荐)

永久修改的方法因 Linux 发行版和其使用的网络管理工具而异,请根据您的系统选择以下方法。

方案 1:使用systemd-resolved(现代发行版通用方法,如 Ubuntu 18.04+, CentOS 8+)

systemd-resolved 是现代 Linux 发行版默认的网络解析管理服务。

1、修改全局配置文件

编辑/etc/systemd/resolved.conf 文件。

    sudo nano /etc/systemd/resolved.conf

2、取消注释并填写 DNS 地址

找到[Resolve] 部分,修改DNSFallbackDNS 行。

    [Resolve]
    DNS=8.8.8.8 1.1.1.1
    #FallbackDNS=114.114.114.114
    #Domains=~.

DNS 是主用的 DNS 服务器列表,用空格分隔。

FallbackDNS 是备用 DNS 服务器列表。

3、重启服务并应用配置

    sudo systemctl restart systemd-resolved.service

4、检查状态

    systemd-resolve --status
    # 或者更新的命令
    resolvectl status

5、(可选)检查符号链接

确保/etc/resolv.conf 是指向/run/systemd/resolve/stub-resolv.conf 的符号链接,这通常是默认设置,可以保证兼容性。

    ls -l /etc/resolv.conf
    # 应该显示类似:/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

方案 2:通过 NetworkManager 配置(图形界面/命令行)

NetworkManager 是大多数桌面版和服务器版 Linux 的默认网络管理工具。

A. 图形化界面(最适合桌面用户)

1、 点击右上角网络图标 ->有线设置无线设置 -> 点击齿轮图标。

2、 选择IPv4IPv6 选项卡。

3、 将自动(DHCP) 的开关关闭。

4、 在DNS 字段中,手动输入 DNS 服务器地址,用逗号分隔(例如8.8.8.8, 1.1.1.1)。

5、 点击应用,并重新连接网络。

B. 命令行工具nmcli

1、查看当前连接名称

    nmcli connection show

找到正在使用的连接名称(NAME),例如Wired connection 1eth0

2、修改该连接的 DNS

    sudo nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 1.1.1.1"
    sudo nmcli connection modify "Wired connection 1" ipv6.dns "2001:4860:4860::8888 2606:4700:4700::1111"

(请将"Wired connection 1" 替换为您的实际连接名)

3、让配置生效

方法a:重启连接

      sudo nmcli connection down "Wired connection 1"
      sudo nmcli connection up "Wired connection 1"

方法b:直接重新加载所有连接

      sudo nmcli connection reload

方案 3:直接修改网卡配置文件(适用于没有 NetworkManager 的服务器,如 CentOS 7)

配置文件通常位于/etc/sysconfig/network-scripts/ 目录下,文件名类似ifcfg-eth0

1、编辑对应的网卡配置文件

    sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0

2、添加或修改以下行

    DNS1=8.8.8.8
    DNS2=1.1.1.1

3、重启网络服务

    sudo systemctl restart network

验证 DNS 配置是否生效

无论使用哪种方法,最后都请使用以下命令验证:

nslookup google.com
或者
dig google.com

查看输出结果中SERVER: 一行后面显示的 IP 地址,是否已经变成了您新设置的 DNS 服务器地址。

方法 适用场景 优点 缺点
修改/etc/resolv.conf 临时测试 简单快速,立即生效 容易被系统服务覆盖,重启后失效
systemd-resolved 使用 systemd 的现代发行版 系统级统一管理,干净可靠 配置需要重启服务
NetworkManager 带有图形界面的桌面系统 易于管理,特别是多网络环境 需要熟悉nmcli 或使用图形界面
网卡配置文件 传统的服务器系统 配置持久,一目了然 不同发行版路径和语法可能不同

给大多数用户的建议:

桌面用户:直接使用图形化界面(NetworkManager)进行设置,最简单直观。

服务器用户/高级用户:使用systemd-resolvednmcli 命令是更现代、更可靠的选择。

希望这份详细的指南能帮助您成功配置 DNS!

文章摘自:https://idc.huochengrm.cn/dns/16297.html

评论