如何在Ubuntu中设置DNS?

HCRM技术_小炮 DNS 2026-06-04 14 0

在 Ubuntu 中设置 DNS 有多种方法,具体取决于你的 Ubuntu 版本以及你使用的是桌面版还是服务器版,下面分几种常见情况说明。

ubuntu 怎么设置DNS

桌面版用户:通过图形界面(设置 -> 网络 -> 手动 DNS)。

使用systemd-resolved(Ubuntu 18.04+ 默认):使用resolvectl 命令。

使用netplan(服务器版,特别是云镜像):修改/etc/netplan/*.yaml 文件。

传统方法:修改/etc/resolv.conf(注意可能被覆盖)。

方法一:桌面版(GNOME/KDE)

1、 打开设置

ubuntu 怎么设置DNS

2、 进入网络

3、 点击你当前使用的连接旁边的齿轮图标(有线或Wi-Fi)。

4、 切换到IPv4IPv6 选项卡。

5、 将DNS 改为自动(DHCP获取)或手动

6、 如果选择手动,在DNS服务器 中输入 IP(例如114.114.114.1148.8.8.8,多个用逗号或空格分隔)。

ubuntu 怎么设置DNS

7、 点击应用,通常立即生效。

方法二:使用netplan(常见于 Ubuntu 18.04+ 服务器版)

很多云服务器或服务器安装使用netplan 管理网络。

1、 找到配置文件(通常命名为01-netcfg.yaml50-cloud-init.yaml 等):

    ls /etc/netplan/

2、 用sudo 编辑,

    sudo nano /etc/netplan/01-netcfg.yaml

3、 在dhcp4: yesdhcp4: no 下,添加nameservers 部分,结构如下:

    network:
      version: 2
      renderer: networkd
      ethernets:
        enp0s3:   # 请替换为你的网卡名
          dhcp4: true
          nameservers:
            addresses: [8.8.8.8, 114.114.114.114]

4、 应用配置:

    sudo netplan apply

方法三:使用systemd-resolved(命令行,适用于所有 systemd 版本)

如果系统正在使用systemd-resolved(默认情况),推荐使用resolvectl 命令。

1、查看当前 DNS

    resolvectl status

2、设置全局 DNS(对所有接口生效):

    sudo resolvectl dns eth0 8.8.8.8 114.114.114.114

*(将eth0 替换为你的网卡名,如ens33wlp2s0

3、设置域名后缀(可选)

    sudo resolvectl domain eth0 example.com

4、验证

    resolvectl status

永久生效:上面的命令重启后可能会丢失,如果你希望永久生效,可以修改/etc/systemd/resolved.conf 文件:

sudo nano /etc/systemd/resolved.conf

取消注释并修改:

[Resolve]
DNS=8.8.8.8 114.114.114.114
FallbackDNS=1.1.1.1

保存后重启服务:

sudo systemctl restart systemd-resolved

方法四:修改/etc/resolv.conf(传统,但可能被覆盖)

这是最直接的方法,但新版 Ubuntu 里/etc/resolv.conf 通常是一个符号链接,会被其他服务覆盖。

1、 直接编辑:

    sudo nano /etc/resolv.conf

2、 写入如下内容:

    nameserver 8.8.8.8
    nameserver 114.114.114.114

3、 保存,立即生效。

⚠️ 警告:这个方法在大多数现代 Ubuntu 上重启后或网络重连后会失效,因为systemd-resolvedNetworkManager 会覆盖该文件,通常不推荐直接修改,除非你确保没有其他工具接管。

方法五:使用nmcli(如果使用 NetworkManager)

1、 查看连接名称:

    nmcli con show

2、 修改连接的 IPv4 DNS:

    sudo nmcli con modify "连接名称" ipv4.dns "8.8.8.8 114.114.114.114"
    sudo nmcli con modify "连接名称" ipv4.ignore-auto-dns yes

3、 重启连接:

    sudo nmcli con down "连接名称" && sudo nmcli con up "连接名称"

验证设置是否生效

无论用哪种方法,设置后都可以通过以下命令检查:

查看 resolv.conf 内容
cat /etc/resolv.conf
测试 DNS 解析
nslookup baidu.com
或
dig baidu.com
检查是否使用指定的 DNS 服务器
dig @8.8.8.8 baidu.com

总结建议

- 如果你是桌面版 -> 用图形界面最省心。

- 如果你是服务器版 -> 先用resolvectl 临时设置,再用resolved.conf 永久保存。

- 如果你在用云服务器netplan -> 修改 yaml 文件并apply

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

评论