项目上线,手续要配置服务器,甲方机房在单位内,无法使用公司云服务器。于是配置坑来了
配环境下载包,ubutun 16显示如下错误:
wget: unable to resolve host address
wget:无法解析主机地址。这就能看出是DNS解析的问题
解决办法一【失败】:
修改/etc/resolv.conf文件,添加nameserver即可,下面给出两个通用的谷歌域名服务器,如果有自己解析服务器也可以换成自己的
vim /etc/resolv.conf
nameserver 8.8.8.8 #google域名服务器
nameserver 8.8.4.4 #google域名服务器
解决办法二【失败】:
网上百度说resolv.conf 现在归systemd管,果然找到了/etc/systemd/resolved.conf 文件:
# This file is part of systemd.
#
# systemd is free software; you can redistribute it and/or modify it
# under the terms of the GNU Lesser General Public License as published by
# the Free Software Foundation; either version 2.1 of the License, or
# (at your option) any later version.
#
# Entries in this file show the compile time defaults.
# You can change settings by editing this file.
# Defaults can be restored by simply deleting this file.
#
# See resolved.conf(5) for details
[Resolve]
#DNS=
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes
而里面也有我想找的DNS
解决方法
sudo vim /etc/systemd/resolved.conf
然后修改DNS,例如:
[Resolve]
DNS=114.114.114.114
DNS=8.8.8.8
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
#DNSStubListener=yes
然后
systemctl restart systemd-resolved.service
查看结果:
$ systemd-resolve --status
Global
DNS Servers: 114.114.114.114
8.8.8.8
DNSSEC NTA: 10.in-addr.arpa
16.172.in-addr.arpa
168.192.in-addr.arpa
17.172.in-addr.arpa
18.172.in-addr.arpa
19.172.in-addr.arpa
解决办法三【成功】:
前面提到固定IP的上网方式主要是修改/etc/network/interfaces
这个文件,配置IP、网关什么的,其实这里面还有个参数可以配置,那就是DNS了,对应的参数名为dns-nameservers
,这里设置的优先级比resolv.conf高,也就是网络会从这里读取DNS配置,如果没配置才去看resolv.conf里面的设置,因此在这里面配置DNS更简单。
# interfaces(5) file used by ifup(8) and ifdown(8) auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.151 netmask 255.255.255.0 gateway 192.168.1.2 dns-nameservers 10.250.0.1 #单位机房DNS
== 重启虚拟机网络 ==
配置完成后,重启网络即可,也有好几种方法:
sudo service networking restart 或者 sudo /etc/init.d/networking restart
也可以重启网卡:
sudo ifconfig eth0 down sudo ifconfig eth0 up
重启网卡对别的网卡无影响,更推荐一些。
赶紧ping下www.baidu.com,显示可以上网了。
附:几个检查DNS的命令:
似乎在较新的Linux系统上,您无法通过执行cat /etc/resolv.conf来检查DNS.它现在由systemd-resolve –status完成.
按照最后成功的方法 输入 systemd-resolve –status 结果如图,配置是失败的,但是,不影响,可以上网了