一、网卡DNS设置
在Linux系统中,可以通过编辑网卡配置文件来永久设置DNS服务器地址,这种方法类似于Windows系统中的本地连接DNS设置。
编辑网卡配置文件
步骤:使用文本编辑器(如vi)打开网卡配置文件,对于CentOS系统,网卡配置文件通常位于/etc/sysconfig/networkscripts/
目录下,文件名格式为ifcfgeth0
(其中eth0
是网络接口的名称)。
命令:sudo vi /etc/sysconfig/networkscripts/ifcfgeth0
:在文件中添加或修改以下行,以设置首选DNS和次要DNS服务器地址:
DNS1=8.8.8.8 DNS2=8.8.4.4
重启网络服务:保存修改后,重启网络服务以应用新的配置。
sudo systemctl restart network
注意事项
持久性:通过网卡配置文件设置的DNS信息是永久的,开机重启后依然存在。
生效顺序:在Linux系统中,DNS解析的生效顺序依次为hosts文件、网卡配置文件中的DNS服务地址、/etc/resolv.conf
文件。
二、系统默认DNS服务器地址设置
Linux系统还提供了一个默认的DNS服务器地址配置文件,即/etc/resolv.conf
,通过编辑该文件,可以即时更改DNS服务器地址。
1. 编辑/etc/resolv.conf
文件
步骤:使用文本编辑器打开/etc/resolv.conf
文件。
命令:sudo vi /etc/resolv.conf
:在文件中添加或修改nameserver
行,指定DNS服务器的IP地址。
nameserver 8.8.8.8 nameserver 114.114.114.114
保存并关闭文件:编辑完成后,保存并关闭文件,新的DNS设置将即时生效。
防止自动更新
锁定文件:为了防止网络配置工具或服务自动修改/etc/resolv.conf
文件,可以使用chattr
命令将其设置为不可变。
sudo chattr +i /etc/resolv.conf
解锁文件:如果需要再次修改该文件,可以使用以下命令解锁:
sudo chattr i /etc/resolv.conf
重启网络服务
命令:在某些情况下,可能需要重启网络服务以使更改生效。
sudo systemctl restart NetworkManager
三、Hosts文件配置
Linux系统也有一个主机表文件(/etc/hosts
),可以用来指定特定主机的解析优先级。
编辑`/etc/hosts`文件
步骤:使用文本编辑器打开/etc/hosts
文件。
命令:sudo vi /etc/hosts
添加记录:在文件中添加一行,指定主机名和对应的IP地址。
192.168.1.10 mycustomhost
保存并关闭文件:编辑完成后,保存并关闭文件,新的主机名解析将立即生效。
优先级说明
优先级:/etc/hosts
文件中的记录具有最高的解析优先级,可以用来屏蔽一些不想访问的网址或进行特定的域名解析。
四、使用NetworkManager配置DNS
如果Linux系统使用NetworkManager或其他网络管理工具,可以通过图形界面或特定的命令来配置DNS。
通过图形界面配置
步骤:打开NetworkManager的图形界面,选择要修改的网络连接,然后单击“编辑”按钮。
修改DNS设置:在弹出的窗口中,找到IPv4或IPv6设置部分,添加DNS服务器地址。
保存并应用:点击“保存”按钮,然后重新启动网络连接以应用新的DNS设置。
通过命令行配置
编辑连接配置文件:NetworkManager的连接配置文件通常位于/etc/NetworkManager/systemconnections/
目录下。
命令:sudo vi /etc/NetworkManager/systemconnections/yourconnectionname
(将yourconnectionname
替换为实际的连接名称)
添加DNS设置:在[ipv4]或[ipv6]段中加入dns
指令,指定DNS服务器的IP地址。
[ipv4] dns=8.8.8.8;8.8.4.4;
重启NetworkManager:保存修改后,重启NetworkManager服务以应用新的配置。
sudo systemctl restart NetworkManager
五、验证配置
配置完成后,需要验证DNS服务是否正常工作,可以使用nslookup
或dig
命令测试DNS解析是否正常工作。
使用`nslookup`命令
命令:nslookup google.com
示例输出:如果DNS解析正常,将显示类似如下的输出:
Server: 8.8.8.8 Address: 8.8.8.8#53 Nonauthoritative answer: Name: google.com Address: 172.217.16.206
使用`dig`命令
命令:dig google.com
示例输出:如果DNS解析正常,将显示类似如下的输出:
; <<>> DiGost <<>> google.com (28 bytes) ;; global options: +cmd ;; Got answer: ;; >> more output ... google.com. 172800 IN A 172.217.16.206
六、常见问题与解答
1. 如何更改Linux系统中的DNS服务器地址?
答:在Linux系统中更改DNS服务器地址的方法有多种,包括编辑网卡配置文件(如/etc/sysconfig/networkscripts/ifcfgeth0
)、修改系统默认的DNS服务器地址配置文件(/etc/resolv.conf
)、以及使用NetworkManager等网络管理工具进行配置,具体方法取决于您的Linux发行版和个人偏好。
2. 如果直接编辑/etc/resolv.conf
文件后DNS设置不生效怎么办?
答:如果直接编辑/etc/resolv.conf
文件后DNS设置不生效,可能是因为该文件被网络管理工具(如NetworkManager)控制,直接编辑可能不会持久化,在这种情况下,您可以尝试通过NetworkManager的图形界面或命令行界面来设置DNS,或者在/etc/systemd/resolved.conf
中设置全局DNS,还可以检查是否启用了其他DNS解析服务(如systemdresolved)并相应地进行配置。
来源互联网整合,作者:小编,如若转载,请注明出处:https://www.aiboce.com/ask/63455.html