如何在Linux中删除DNS配置?

HCRM技术_小炮 DNS 2026-05-02 2 0

在 Linux 中,“删除 DNS”通常有两种含义:

1、清除 DNS 缓存(刷新临时解析结果)

2、删除系统配置的 DNS 服务器地址(比如移除/etc/resolv.conf 里的 nameserver 或 NetworkManager 的配置)

下面根据常见场景逐一说明操作方法。

一、删除(清除)DNS 缓存

1. 使用 systemd-resolved(最常见)

刷新所有缓存
sudo systemd-resolve --flush-caches
如果上面命令报错,尝试:
sudo resolvectl flush-caches
查看缓存统计(确认清空)
sudo systemd-resolve --statistics

2. 使用 dnsmasq(本地 DNS 转发服务)

重启服务清空缓存
sudo systemctl restart dnsmasq

3. 使用 nscd(Name Service Cache Daemon)

清空 nscd 的 DNS 缓存
sudo nscd -i hosts
或者重启服务
sudo systemctl restart nscd

手动清除(无守护进程时)

某些发行版(如老版 Ubuntu)没有缓存服务,直接重启网络或注销用户即可。

二、删除系统配置的 DNS 服务器

方法 1:直接修改/etc/resolv.conf(临时生效,重启后可能被覆盖)

编辑文件,删除 nameserver 行
sudo nano /etc/resolv.conf
删除类似下面的一行或多行:
nameserver 8.8.8.8
nameserver 1.1.1.1
保存退出后立即生效,如果想彻底清空(不推荐,会导致无法解析域名),可以只保留一个不存在的 IP。

方法 2:使用 NetworkManager 删除(持久生效)

查看当前所有连接
nmcli connection show
修改指定连接的 DNS 设置(例如连接名为 "Wired connection 1")
清空 IPv4 DNS
sudo nmcli connection modify "Wired connection 1" ipv4.dns ""
清空 IPv6 DNS
sudo nmcli connection modify "Wired connection 1" ipv6.dns ""
重启网络使生效
sudo nmcli connection up "Wired connection 1"

方法 3:使用 systemd-networkd(如果系统用它管理网络)

编辑网络配置文件,/etc/systemd/network/20-wired.network
sudo nano /etc/systemd/network/20-wired.network
删除或注释掉 DNS= 行
[Network]
DNS=8.8.8.8
重启网络服务
sudo systemctl restart systemd-networkd

方法 4:使用 netplan(Ubuntu 18.04+)

编辑配置文件,/etc/netplan/01-netcfg.yaml
sudo nano /etc/netplan/01-netcfg.yaml
在对应网卡中删除 nameservers: 部分,或设为空数组

network:
  ethernets:
    eth0:
      dhcp4: true
        nameservers:
          addresses: []  # 清空
应用配置
sudo netplan apply

三、删除/etc/hosts 中的 DNS 映射(即删除特定域名解析)

如果某些域名指向错误 IP,可以手动编辑/etc/hosts 删除对应行:

sudo nano /etc/hosts
删除类似下面的一行:
127.0.0.1   example.com
保存退出后立即生效(无缓存延迟)

四、完全删除 DNS 解析功能(危险操作,可能导致无法访问外网)

一般情况下不需要也不建议这么做,如果真的需要,可以:

- 移除所有 DNS 服务器配置(见第二部分)

- 停止并禁用 systemd-resolved 或 dnsmasq 等服务

sudo systemctl stop systemd-resolved
sudo systemctl disable systemd-resolved
然后清空 /etc/resolv.conf
echo "" | sudo tee /etc/resolv.conf
你想做什么推荐命令/操作
刷新 DNS 缓存sudo resolvectl flush-caches
删除配置的 DNS 服务器(临时) 编辑/etc/resolv.conf 删除 nameserver 行
删除配置的 DNS 服务器(持久) 使用nmclinetplan 修改网络连接配置
删除 /etc/hosts 中的映射 编辑/etc/hosts 删除对应行

如果你能提供具体的 Linux 发行版和使用的网络管理工具(如 NetworkManager、systemd-networkd、netplan),可以得到更精准的命令。

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

评论