如何在Linux中添加DNS地址?

HCRM技术_小炮 DNS 2026-05-23 5 0

在 Linux 系统中添加 DNS 地址有多种方法,具体取决于你的网络管理工具和发行版,以下是几种最常用且有效的方法:

方法一:直接修改/etc/resolv.conf(临时生效)

这是最直接的方法,适用于临时修改或没有使用 NetworkManager 等管理工具的系统。

1、 打开文件:

    sudo nano /etc/resolv.conf

2、 添加或修改nameserver 行(通常可以添加 2-3 个,每个一行):

    nameserver 8.8.8.8
    nameserver 114.114.114.114

8.8.8.8 是 Google 公共 DNS。

114.114.114.114 是国内的公共 DNS(移动、电信、联通通用)。

3、 保存并退出(Ctrl+X,Y,回车)。

注意: 很多现代 Linux 系统(特别是使用 NetworkManager 或 systemd-resolved 的)会自动重写这个文件,重启网络服务或重启系统后,你手动添加的配置可能会丢失,因此这个方法适用于快速测试,不建议作为永久解决方案。

方法二:修改网卡配置文件(永久生效 - 传统 sysconfig 风格)

这个方法适用于RHEL/CentOS 7/8/9、Fedora 以及部分使用ifcfg 配置文件的系统。

1、 找到网卡配置文件,通常在/etc/sysconfig/network-scripts/ 目录下:

    # 假设你的网卡是 eth0 或 ens33
    sudo vi /etc/sysconfig/network-scripts/ifcfg-eth0

2、 在文件中添加或修改以下行(DNS1 是主DNS,DNS2 是备用):

    DNS1=8.8.8.8
    DNS2=114.114.114.114

3、 重启网络服务:

    # CentOS 7 及之前版本
    sudo systemctl restart network
    
    # CentOS 8 及之后版本(或 RHEL 8+)
    sudo nmcli connection reload
    sudo nmcli connection up eth0

方法三:修改 Netplan 配置文件(适用于 Ubuntu 18.04+ 默认系统)

Ubuntu 18.04 及更高版本默认使用 Netplan 管理网络。

1、 找到 Netplan 配置文件:

    ls /etc/netplan/
    # 通常看到 00-installer-config.yaml 或 01-netcfg.yaml 等

2、 编辑该文件(注意缩进,YAML 格式非常严格):

    sudo nano /etc/netplan/00-installer-config.yaml

3、 在ethernets 下的网卡名称(如ens33)中,设置nameservers

    network:
      ethernets:
        ens33:           # 你的网卡名
          dhcp4: true
          nameservers:
            addresses:
              - 8.8.8.8
              - 114.114.114.114
      version: 2

4、 应用配置(注意缩进错误会导致报错):

    sudo netplan apply

方法四:使用nmcli 命令(适用于 NetworkManager)

如果你的系统使用 NetworkManager(大多数桌面环境、Ubuntu Server、Fedora Workstation 等),可以使用命令行工具nmcli

1、查看当前活跃的连接

    nmcli connection show --active

你会看到类似Wired connection 1eth0 的名字。

2、修改指定连接的 DNS(将"Wired connection 1" 替换为你的连接名):

    sudo nmcli con mod "Wired connection 1" ipv4.dns "8.8.8.8 114.114.114.114"

3、忽略 DHCP 自动获取的 DNS(可选,建议加上):

    sudo nmcli con mod "Wired connection 1" ipv4.ignore-auto-dns yes

4、重新激活连接

    sudo nmcli con up "Wired connection 1"

方法五:配置systemd-resolved(适用于 Ubuntu 16.04+、Debian 9+ 等)

如果你的系统使用了systemd-resolved(通常用systemd-resolve --status 可以查看),建议通过配置文件管理。

1、 编辑/etc/systemd/resolved.conf

    sudo nano /etc/systemd/resolved.conf

2、 添加或修改 DNS 行:

    [Resolve]
    DNS=8.8.8.8 114.114.114.114
    FallbackDNS=1.1.1.1

3、 重启服务:

    sudo systemctl restart systemd-resolved

小提示: 配置完成后,可以用resolvectl status(或systemd-resolve --status)查看生效情况。

如何验证 DNS 是否生效?

配置完成后,用以下命令检查:

方法1:查看 resolv.conf 内容(注意可能有 symlink)
cat /etc/resolv.conf
方法2:测试域名解析
nslookup baidu.com
方法3:使用 dig 命令
dig @8.8.8.8 baidu.com +short

如果你不确定系统正在使用哪种网络管理工具,可以先检查/etc/resolv.conf 文件的头部注释(通常第一行会写是“由谁管理”的),或者运行systemctl status NetworkManager 以及systemctl status systemd-resolved 来查看哪些服务正在运行。

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

评论