有时候我们运行某些项目或者命令的时候,会因为服务器的dns错误导致出问题,这时候就需要我们修改dns服务器了。
相关错误
当服务器的dns错误的时候,我们运行wget命令的时候,会报错如下:
#wget命令行
wget: unable to resolve host address
#curl命令行
curl: (6) Could not resolve host
有些需要请求网络的项目同样也会因为dns错误导致出问题,我们可以运行如下命令查看dns是否正确:
curl https://www.baidu.com
设置DNS服务器
注意临时和永久设置的区别就是,临时设置重启服务器后就会失效,永久设置重启服务器后依然生效。
建议先用临时设置DNS的方法验证我们的问题是否被解决,然后在永久修改DNS服务器。
临时设置DNS服务器
临时设置DNS服务器的方法很简单,只需要在命令行输入如下命令即可:
#设置Google DNS服务器
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf
运行完即为设置成功。
永久设置DNS服务器
由于dns服务器问题普遍出现在centos系统上,所以我们只讲解centos及其衍生系统,教程适用于centos7+,AlmaLinux,Rocky Linux等系统。
对于linux不太熟悉的新手来说,如果你安装了宝塔面板,可以在宝塔面板安装linux工具箱,设置主dns服务器为8.8.8.8,备用dns服务器为8.8.4.4。
首先使用root权限登录服务器,然后输入如下命令:
#检测并判断是否安装网卡检测工具
if ! command -v ifconfig &> /dev/null; then yum install -y net-tools; fi
#获取网卡信息
ifconfig -a
看到接口信息后,显示inet服务器IP的就是你的网卡信息,该部分左上角的英文就是你的网卡名称,也有可能是其他的。
下面开始设置永久dns,运行以下命令:
cd /etc/sysconfig/network-scripts/
#找到网卡配置文件,一般名称为ifcfg-网卡名称,如ifcfg-eth0
ls
#修改配置文件,运行命令之前,先将下面2个命令的后面改成你的网卡配置文件名称
sed -i '/DNS1=/d' ifcfg-eth0
echo "DNS1=8.8.8.8" >> ifcfg-eth0
#重启网络生效,重启如果有报错,解决方法看下方
service network restart
#检查是否修改完成
cat /etc/resolv.conf
如果出现错误
输出你设置的dns服务器就修改完成了。
注意如果出现Failed to restart network.service: Unit network.service not found.错误,则运行命令:
systemctl restart NetworkManager
然后重新使用命令重启网络就可以了。