在Linux和Windows操作系统中,修改DNS服务器配置通常需要通过命令行工具完成,不同系统的命令和操作步骤有所差异,以下将详细介绍两种主流系统中通过命令修改DNS的方法及注意事项。

在Linux系统中,修改DNS配置主要涉及网络管理工具或直接编辑配置文件,以常用的NetworkManager为例,对于使用NetworkManager管理的网络接口(如eth0、wlan0),可通过nmcli命令进行动态修改,首先使用nmcli con show
命令查看当前网络连接名称,假设连接名称为"eth0",执行nmcli con mod "eth0" ipv4.dns "8.8.8.8 8.8.4.4"
命令可将DNS服务器设置为Google的公共DNS,其中多个DNS服务器用空格分隔,若需同时修改DNS搜索域,可添加ipv4.dns-search "example.com"
参数,修改后执行nmcli con down "eth0" && nmcli con up "eth0"
重启网络连接使配置生效,对于使用systemd-networkd的系统,可直接编辑/etc/systemd/network/eth0.network
文件,在[Network]
段添加DNS=8.8.8.8 8.8.4.4
,然后执行systemctl restart systemd-networkd
,在Ubuntu等基于Debian的系统中,若使用netplan,需修改/etc/netplan/01-netcfg.yaml
文件,添加nameservers: addresses: [8.8.8.8, 8.8.4.4]
,然后执行netplan apply
。
在Windows系统中,主要通过netsh命令修改DNS配置,首先使用ipconfig /all
查看当前网络接口名称和GUID,假设以太网接口名称为"以太网",执行netsh interface ip set dns "以太网" static 8.8.8.8 primary
将主DNS设置为8.8.8.8,若需添加备用DNS,可执行netsh interface ip add dns "以太网" 8.8.4.4 index=2
,对于无线网络接口,将命令中的"以太网"替换为"WLAN",修改完成后,可使用ipconfig /flushdns
命令刷新DNS解析缓存,在Windows PowerShell中,也可使用Set-DnsClientServerAddress cmdlet,例如Set-DnsClientServerAddress -InterfaceAlias "以太网" -ServerAddresses "8.8.8.8,8.8.4.4"
,效果与netsh命令相同。
需要注意的是,通过命令修改的DNS配置可能是临时性的,重启系统或网络服务后可能失效,若需永久生效,Linux系统应确保修改的是网络配置文件而非仅通过命令动态设置,Windows系统则建议通过图形界面或组策略进行永久配置,修改DNS前应备份原有配置,避免因配置错误导致网络连接问题,对于企业环境,建议使用内部DNS服务器或受信任的公共DNS(如Cloudflare的1.1.1.1、阿里云的223.5.5.5),以提高解析效率和安全性。
相关问答FAQs

-
问:通过命令修改DNS后,如何验证配置是否生效?
答:在Linux系统中,使用cat /etc/resolv.conf
查看DNS配置文件内容,或执行nslookup example.com
测试域名解析,在Windows系统中,可通过ipconfig /all
查看网络接口的DNS服务器地址,或使用nslookup example.com
命令验证解析结果,若解析结果指向新设置的DNS服务器,则配置生效。 -
问:修改DNS配置后无法上网,如何恢复默认设置?
答:在Linux系统中,若使用NetworkManager,可通过nmcli con mod "连接名称" ipv4.dns ""
清除DNS设置,然后重启网络连接;在Windows系统中,执行netsh interface ip set dns "接口名称" dhcp
恢复为自动获取DNS,若仍无法解决,可检查防火墙规则或网络接口状态,必要时恢复系统网络配置备份。