Linux临时或永久设置DNS服务器

有时候我们运行某些项目或者命令行的时候,会因为服务器DNS错误导致出问题,这时候就需要修改DNS

相关错误

当服务器DNS错误的时候,我们运行wgetcurl命令行的时候,分别会输出如下错误信息:

#wget命令行
wget: unable to resolve host address

#curl命令行
curl: (6) Could not resolve host

有些需要请求网络的项目同样也会因为DNS错误导致出问题,我们可以运行curl https://www.baidu.com命令行进行确认。

设置DNS服务器

注意临时和永久设置的区别就是,临时设置后重启服务器就失效了,永久是不管是否重启一直生效。

建议先用临时设置DNS的方法验证我们的问题是否被解决,然后再永久修改DNS服务器。

临时设置DNS服务器

首先,使用ssh客户端登录到你的服务器,再执行以下命令:

#设置Google DNS服务器
echo "nameserver 8.8.8.8" > /etc/resolv.conf
echo "nameserver 8.8.4.4" >> /etc/resolv.conf

运行完即为设置成功!

永久设置DNS服务器

由于DNS问题普遍出现在CentOS系统中,所以这里只讲解CentOS及其衍生系统,教程适用于CentOS 7+AlmaLinuxRocky Linux系统

对于Linux不太熟悉的新手来说,如果你有安装宝塔面板,可以在宝塔安装Linux工具箱,设置主DNS服务器为8.8.8.8,备用为8.8.4.4即可。

首先,使用ssh客户端登录到你的服务器,再执行以下命令:

#检测并判断是否安装网卡检测工具
if ! command -v ifconfig &> /dev/null; then yum install -y net-tools; fi

#获取网卡信息
ifconfig -a

看到接口信息后,显示inet 服务器ip的就是你的网卡信息,该部分左上角的英文就是你的网卡名称,常见的为eth0,也有可能是其它的。

开始永久设置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

然后重新使用命令重启网络。