🗣 Wd提问: linux dns配置
🤖 Ai回答: 在 Linux 系统中配置 DNS(域名解析)主要有以下几种方式,具体取决于你使用的发行版、网络管理工具以及是否使用 systemd-resolved。以下是常见的 DNS 配置方法:
一、临时配置 DNS(重启后失效)
方法:修改 `/etc/resolv.conf`
bash
sudo nano /etc/resolv.conf
添加或修改 nameserver 行,例如:
conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 114.114.114.114
⚠️ 注意:
如果系统使用 NetworkManager、systemd-resolved 或 dhcpcd,该文件可能是自动生成的,手动修改可能被覆盖。
某些系统(如 Ubuntu 20.04+)将 `/etc/resolv.conf` 软链接到 `/run/systemd/resolve/stub-resolv.conf` 或 `/run/resolvconf/resolv.conf`。
二、永久配置 DNS
1、使用 NetworkManager(适用于桌面版或使用 NM 的系统)
查看当前连接名称:
bash
nmcli connection show
设置 DNS(以连接名为 Wired connection 1 为例):
bash
设置静态 DNS(替换为你的连接名)
sudo nmcli con mod Wired connection 1 ipv4.dns 8.8.8.8 114.114.114.114
可选:禁用自动 DNS(防止 DHCP 覆盖)
sudo nmcli con mod Wired connection 1 ipv4.ignore-auto-dns yes
重启连接使生效
sudo nmcli con down Wired connection 1 && sudo nmcli con up Wired connection 1
2、使用 systemd-resolved(Ubuntu 18.04+、Debian 10+ 等默认启用)
编辑 resolved 配置文件:
bash
sudo nano /etc/systemd/resolved.conf
取消注释并修改如下行:
ini
[Resolve]
DNS=8.8.8.8 114.114.114.114
FallbackDNS=
Domains=65.hk
LLMNR=no
MulticastDNS=no
DNSSEC=no
Cache=yes
重启服务:
bash
sudo systemctl restart systemd-resolved
📌 注意:此时 `/etc/resolv.conf` 应指向 systemd-resolved 的 stub:
bash
ls -l /etc/resolv.conf
应显示 /run/systemd/resolve/stub-resolv.conf 或 /run/systemd/resolve/resolv.conf
如需直接使用全局 DNS 而非本地 stub(127.0.0.53),可改为:
bash
sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf
3、使用 netplan(Ubuntu 18.04+ 服务器版)
编辑 netplan 配置文件(通常位于 `/etc/netplan/`):
yaml
/etc/netplan/01-netcfg.yaml
network:
version: 2
ethernets:
eth0:
dhcp4: no
addresses:
192.168.1.100/24
gateway4: 192.168.1.1
nameservers:
addresses: [8.8.8.8, 114.114.114.114]
应用配置:
bash
sudo netplan apply
4、使用传统方式(Debian/Ubuntu 手动配置)
编辑网卡配置文件(如 `/etc/network/interfaces`):
conf
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8 114.114.114.114
然后重启网络:
bash
sudo systemctl restart networking
💡 注意:较新版本的 Debian/Ubuntu 默认使用 NetworkManager 或 systemd-networkd,不再推荐此方式。
三、验证 DNS 配置
bash
查看当前使用的 DNS
systemd-resolve status 较旧版本
resolvectl status 较新版本(systemd 240+)
测试域名解析
nslookup 65.hk
dig 65.hk
ping -c 3 google.com
四、常见问题
Q1:为什么修改 `/etc/resolv.conf` 后又被覆盖?
原因:DHCP 客户端(如 dhclient)、NetworkManager 或 systemd-resolved 自动管理该文件。
解决:通过对应服务(如 NetworkManager 或 netplan)进行永久配置。
Q2:如何禁用 systemd-resolved?
bash
sudo systemctl disable now systemd-resolved
sudo rm /etc/resolv.conf
echo nameserver 8.8.8.8 | sudo tee /etc/resolv.conf
根据你的 Linux 发行版和网络管理工具选择合适的方法即可。如果你提供具体系统(如 Ubuntu 22.04、CentOS 7 等),我可以给出更精确的步骤。
📣 商家广告:





0
IP地址: 8.10.29.114
搜索次数: 13
提问时间: 2025-12-20 21:14:07
本站所有
❓
问答
均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。
本站由
🟢
豌豆Ai
提供技术支持,使用的最新版:
豌豆Ai站群搜索引擎系统 V.25.10.25
搭建本站。