这种方法通过直接修改/etc/resolv.conf
文件来立即生效,但通常只用于临时测试,因为网络服务或重启后可能会被覆盖。
1、使用编辑器修改(如nano
或vim
):
sudo nano /etc/resolv.conf
2、修改文件内容:
在文件中添加nameserver
行指定 DNS 服务器地址,可以指定多个,系统会按顺序使用。
nameserver 8.8.8.8 # 首选 DNS (Google) nameserver 1.1.1.1 # 备选 DNS (Cloudflare) nameserver 114.114.114.114 # 备选 DNS (国内公用)
注意:如果文件开头有# Generated by NetworkManager
之类的注释,说明该文件由网络管理器自动生成,您在这里的修改很可能很快被覆盖。
3、立即生效:
修改保存后,配置会立即生效,可以使用以下命令测试:
nslookup google.com 或 dig google.com
永久修改的方法因 Linux 发行版和其使用的网络管理工具而异,请根据您的系统选择以下方法。
方案 1:使用systemd-resolved
(现代发行版通用方法,如 Ubuntu 18.04+, CentOS 8+)
systemd-resolved
是现代 Linux 发行版默认的网络解析管理服务。
1、修改全局配置文件:
编辑/etc/systemd/resolved.conf
文件。
sudo nano /etc/systemd/resolved.conf
2、取消注释并填写 DNS 地址:
找到[Resolve]
部分,修改DNS
和FallbackDNS
行。
[Resolve] DNS=8.8.8.8 1.1.1.1 #FallbackDNS=114.114.114.114 #Domains=~.
DNS
是主用的 DNS 服务器列表,用空格分隔。
FallbackDNS
是备用 DNS 服务器列表。
3、重启服务并应用配置:
sudo systemctl restart systemd-resolved.service
4、检查状态:
systemd-resolve --status # 或者更新的命令 resolvectl status
5、(可选)检查符号链接:
确保/etc/resolv.conf
是指向/run/systemd/resolve/stub-resolv.conf
的符号链接,这通常是默认设置,可以保证兼容性。
ls -l /etc/resolv.conf # 应该显示类似:/etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf
方案 2:通过 NetworkManager 配置(图形界面/命令行)
NetworkManager 是大多数桌面版和服务器版 Linux 的默认网络管理工具。
A. 图形化界面(最适合桌面用户)
1、 点击右上角网络图标 ->有线设置
或无线设置
-> 点击齿轮图标。
2、 选择IPv4
或IPv6
选项卡。
3、 将自动(DHCP) 的开关关闭。
4、 在DNS 字段中,手动输入 DNS 服务器地址,用逗号分隔(例如8.8.8.8, 1.1.1.1
)。
5、 点击应用
,并重新连接网络。
B. 命令行工具nmcli
1、查看当前连接名称:
nmcli connection show
找到正在使用的连接名称(NAME),例如Wired connection 1
或eth0
。
2、修改该连接的 DNS:
sudo nmcli connection modify "Wired connection 1" ipv4.dns "8.8.8.8 1.1.1.1" sudo nmcli connection modify "Wired connection 1" ipv6.dns "2001:4860:4860::8888 2606:4700:4700::1111"
(请将"Wired connection 1"
替换为您的实际连接名)
3、让配置生效:
方法a:重启连接
sudo nmcli connection down "Wired connection 1" sudo nmcli connection up "Wired connection 1"
方法b:直接重新加载所有连接
sudo nmcli connection reload
方案 3:直接修改网卡配置文件(适用于没有 NetworkManager 的服务器,如 CentOS 7)
配置文件通常位于/etc/sysconfig/network-scripts/
目录下,文件名类似ifcfg-eth0
。
1、编辑对应的网卡配置文件:
sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0
2、添加或修改以下行:
DNS1=8.8.8.8 DNS2=1.1.1.1
3、重启网络服务:
sudo systemctl restart network
无论使用哪种方法,最后都请使用以下命令验证:
nslookup google.com 或者 dig google.com
查看输出结果中SERVER:
一行后面显示的 IP 地址,是否已经变成了您新设置的 DNS 服务器地址。
方法 | 适用场景 | 优点 | 缺点 |
修改/etc/resolv.conf | 临时测试 | 简单快速,立即生效 | 容易被系统服务覆盖,重启后失效 |
systemd-resolved | 使用 systemd 的现代发行版 | 系统级统一管理,干净可靠 | 配置需要重启服务 |
NetworkManager | 带有图形界面的桌面系统 | 易于管理,特别是多网络环境 | 需要熟悉nmcli 或使用图形界面 |
网卡配置文件 | 传统的服务器系统 | 配置持久,一目了然 | 不同发行版路径和语法可能不同 |
给大多数用户的建议:
桌面用户:直接使用图形化界面(NetworkManager)进行设置,最简单直观。
服务器用户/高级用户:使用systemd-resolved
或nmcli
命令是更现代、更可靠的选择。
希望这份详细的指南能帮助您成功配置 DNS!
文章摘自:https://idc.huochengrm.cn/dns/16297.html
评论