Linux临时或永久设置DNS服务器
有时候我们运行某些项目或者命令行的时候,会因为服务器DNS
错误导致出问题,这时候就需要修改DNS
。
相关错误
当服务器DNS
错误的时候,我们运行wget
和curl
命令行的时候,分别会输出如下错误信息:
#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+
,AlmaLinux
,Rocky 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
然后重新使用命令重启网络。