插件窝 干货文章 Ubuntu系统如何修改DNS

Ubuntu系统如何修改DNS

DNS 修改 bash sudo 221    来源:    2025-05-12

在Ubuntu系统中修改DNS有多种方法,以下是不同场景下的详细操作步骤:


方法1:临时修改DNS(重启后失效)

直接修改 /etc/resolv.conf 文件(适用于临时测试):

sudo nano /etc/resolv.conf

将内容替换为:

nameserver 8.8.8.8   # Google DNS
nameserver 1.1.1.1   # Cloudflare DNS

保存后立即生效,但重启或网络服务重启后会被覆盖


方法2:永久修改DNS(推荐)

2.1 使用Netplan(Ubuntu 17.10及以上,默认使用systemd-networkd)

  1. 编辑Netplan配置文件(文件名可能不同): bash sudo nano /etc/netplan/01-netcfg.yaml # 或其他.yaml文件
  2. 在对应网络接口下添加nameservers字段,例如: yaml network: version: 2 ethernets: ens33: # 网卡名(通过`ip a`查看) dhcp4: no # 关闭DHCP(若静态IP) addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 1.1.1.1]
  3. 应用配置: bash sudo netplan apply

2.2 使用NetworkManager(图形界面/命令行)

  • 图形界面

    1. 右键网络图标 → Settings → 选择对应连接 → 齿轮图标 → IPv4/IPv6 → 手动填写DNS。
  • 命令行

    nmcli con mod "连接名" ipv4.dns "8.8.8.8 1.1.1.1"
    nmcli con up "连接名"          # 应用更改
    

2.3 传统ifupdown(旧版Ubuntu)

编辑 /etc/network/interfaces

iface ens33 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1
    dns-nameservers 8.8.8.8 1.1.1.1

重启网络服务:

sudo systemctl restart networking

方法3:禁用systemd-resolved(可选)

如果系统使用systemd-resolved,可能需要禁用: 1. 停止服务: bash sudo systemctl stop systemd-resolved sudo systemctl disable systemd-resolved 2. 删除原resolv.conf链接并新建: bash sudo rm /etc/resolv.conf sudo nano /etc/resolv.conf # 手动写入DNS


验证DNS是否生效

nslookup example.com
# 或
dig example.com

检查输出中的DNS服务器是否为修改后的地址。


注意事项

  1. 如果使用DHCP,需在路由器或DHCP服务器端配置DNS分发。
  2. 修改后若网络异常,检查IP/网关是否冲突。
  3. 推荐备份配置文件(如/etc/netplan/*.yaml)。

根据你的Ubuntu版本和网络管理工具选择对应方法即可。