虽然不同Linux发行版和网络管理工具可能有所差异,但使用命令行配置DNS依然是一个普遍且有效的方法
本文将详细介绍如何使用命令行在Linux中配置DNS,并提供多种方法和步骤,确保你能够成功完成配置
一、打开终端 首先,你需要打开终端应用程序以访问命令行
在大多数Linux系统中,你可以使用快捷键Ctrl + Alt + T来快速打开终端,或者在应用程序菜单中搜索“终端”并打开它
二、编辑resolv.conf文件 resolv.conf文件是Linux系统中用于配置DNS的主要文件,通常位于/etc目录下
你可以使用任何文本编辑器来打开和编辑这个文件,例如vi、nano等
1.使用vi编辑器: 在终端中输入以下命令来打开resolv.conf文件: bash sudo vi /etc/resolv.conf 按回车键后,系统会提示你输入root用户的密码
输入正确密码后,vi编辑器将打开resolv.conf文件
2.使用nano编辑器: 如果你更喜欢nano编辑器,可以使用以下命令: bash sudo nano /etc/resolv.conf 同样,输入root密码后,nano编辑器将打开resolv.conf文件
三、添加DNS服务器地址 在打开的resolv.conf文件中,你会看到类似以下内容的行: Generated by NetworkManager 这些行是注释行,不会影响DNS配置
你需要在文件底部添加你想要设置的DNS服务器地址
例如: nameserver 8.8.8.8 nameserver 8.8.4.4 这里的8.8.8.8和8.8.4.4是Google提供的公共DNS服务器地址
你可以根据需要添加其他DNS服务器地址,每个地址占一行
四、保存并关闭文件 在vi编辑器中,按下Esc键退出插入模式,然后输入`:wq`并按回车键保存并退出文件
在nano编辑器中,你可以直接按Ctrl + X,然后按Y确认保存并退出文件
五、检查DNS配置 配置完成后,你可以使用cat命令来检查resolv.conf文件中的DNS设置: cat /etc/resolv.conf 该命令将显示你刚刚添加的DNS服务器地址
六、重启网络服务 为了使新的DNS设置生效,你需要重启网络服务
不同的Linux发行版可能使用不同的命令来重启网络服务
以下是一些常见的命令: 1.使用systemctl命令: bash sudo systemctl restart network 或者 bash sudo systemctl restart NetworkManager 2.使用service命令: bash sudo service network restart 3.对于使用systemd-resolved的系统: 如果你使用的是systemd-resolved服务来管理DNS解析,你需要重启该服务: bash sudo systemctl restart systemd-resolved 七、验证DNS设置 配置完成后,你可以使用ping命令或nslookup命令来验证DNS设置是否生效
例如: ping www.example.com 或者 nslookup www.example.com 如果DNS设置正确,你应该能够成功解析域名并获得目标主机的IP地址
八、使用NetworkManager配置DNS 对于使用NetworkManager作为网络管理工具的系统,你可以通过nmcli命令行工具来配置DNS
1.查看当前DNS配置: bash nmcli dev show | grep IP4.DNS 2.设置DNS服务器地址: 假设你要为名为eth0的网络接口设置DNS服务器地址,可以使用以下命令: bash nmcli con mod eth0 ipv4.dns 8.8.8.8 8.8.4.4 然后保存并重新加载网络连接: bash nmcli con up eth0 3.添加DNS搜索域: 你还可以为网络接口添加DNS搜索域: bash nmcli con mod eth0 ipv4.dns-search example.com 九、使用systemd-resolved配置DNS 对于使用systemd-resolved服务的系统,你可以通过编辑systemd-resolved的配置文件来设置DNS
1.编辑配置文件: bash sudo nano /etc/systemd/resolved.conf 2.修改DNS设置: 在文件中找到`DNS=`这行,并将其修改为你要使用的DNS服务器地址
例如: plaintext DNS=8.8.8.8 8.8.4.4 3.重启systemd-resolved服务: bash sudo systemctl restart systemd-resolved 十、临时修改DNS配置 如果你只需要临时更改DNS配置,可以使用echo命令来直接修改resolv.conf文件
例如: sudo echo nameserver 8.8.8.8 > /etc/resolv.conf 这个命令将8.8.8.8设置为DNS服务器地址,但修改后只在当前会话中生效,重启后会恢复为原来的配置
十一、注意事项 1.持久化设置: 直接编辑resolv.conf文件在某些Linux发行版中可能不是持久化的,因为许多现代发行版会在网络连接时自动重写该文件
为了确保DNS设置持久生效,你应该根据你使用的网络管理工具(如NetworkManager或systemd-resolved)进行相应的配置
2.不同发行版的差异: 不同的Linux发行版可能有不同的网络配置工具和配置文件路径
例如,Ubuntu通常使用NetworkManager和/etc/network/interfaces文件(在某些版本中已弃用),而CentOS可能使用network-scripts目录中的配置文件
因此,在设置DNS时,你需要根据你使用的Linux发行版和版本来选择适合的方法
3.备份配置文件: 在修改任何配置文件之前,最好先备份原始文件
这样,如果配置出现问题,你可以轻松地恢复到原始设置
4.测试DNS解析: 配置完成后,务必使用ping、nslookup或dig等命令来测试DNS解析是否成