DNS解析以及报错:wget: unable to resolve host address
wget: unable to resolve host address ‘ftp.gnu.org’(CentOS 7的网络配置)
问题概述:
Mac 下
最近准备在linux环境下做开发,综合参考选了CentOS7 。然后在使用wget命令下载 tar.gz 包时出现了小问题。如下所示:
[root@centos-linux-7 ~]# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
--2018-05-03 20:05:00-- http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
Resolving ftp.gnu.org (ftp.gnu.org)... failed: Name or service not known.
wget: unable to resolve host address ‘ftp.gnu.org’
解决办法:
分析得知虚拟机在桥接下,wget 不能识别外网地址。检查是虚拟机的DNS没有配置好。
1. mac下
1. 修改vim /etc/sysconfig/network-scripts/ifcfg-eth0,在文件的最后加上
DNS1=192.168.0.1
DNS2=192.168.0.101
DOMAIN=www.tendawifi.com #这个必须要
查找两个dns 的地址 :
- window 下可以通过ipconfig -all 得到。
- Mac 下可以通过cat /etc/resolv.conf 得到DNS1。如图所示:(注:DNS2 在此处没啥用)。
DEVICE=eth0
IPV6INIT=yes
BOOTPROTO=dhcp
UUID=cb6d31b7-264f-4f65-a017-6205eb00a6a6
ONBOOT=yes
TYPE=Ethernet
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME="System eth0"
DNS1=192.168.0.1
DNS2=192.168.0.101
DOMAIN=www.tendawifi.com #这个必须要
2. 这个配置好之后我们可以通过cat /etc/resolv.conf查看到resolv.conf自动增加了这三行配置
nameserver 192.168.0.1
nameserver 192.168.0.101
search www.tendawifi.com
3. 以root身份重启network 服务
service network restart
4. 再执行wget下载 一切顺畅:
其他相关命令:
systemctl status network
查看网络状态systemctl stop NetworkManager
关闭网络systemctl start network
启动网络
2. Window 下
1. 查询DNS
在命令行中根据ipconfig -all
查询主机的DNS,以及虚拟机的IPv4地址。
2. 配置DNS
-
转到
cd /etc/sysconfig/network-scripts
下, -
通过
ls
找到你的网络配置文件,例如ifcfg-eno16777736
-
修改如下配置:
ONBOOT=yes #开启自动启用网络连接 IPADDR0=192.168.21.128 #设置IP地址 PREFIXO0=24 #设置子网掩码 GATEWAY0=192.168.21.2 #设置网关 DNS1=202.101.172.46 #设置主DNS
-
修改完成之后输入:wq!保存退出
-
重启网络
service network restart
-
测试网络是否正常
ping www.linuxidc.com
-
查看ip地址
ip addr
-
设置主机名为
www
编辑配置文件vi /etc/hostname
#
www
#修改localhost.localdomain
为www
:wq!
保存退出即可设置hostname www
#设置主机名为www
编辑配置文件vi /etc/hosts
127.0.0.1 localhost www
#修改localhost.localdomain
为www
保存退出 :wq!
wget: unable to resolve host address解决方法
问题:
利用wget下载东西时,比如输入指令wget www.baidu.com
提示报错
“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域名服务器
wget: unable to resolve host address亲测有效办法(虚拟机ping不通宿主机与外网)
问题:
centos7虚拟机使用wget命令时,解析出现问题;
wget: unable to resolve host address以及ping不通外网
现象:
我的虚拟机使用连接方式的是nat,
宿主机能ping通Vmnet8,虚拟机ip,
但是虚拟机(centos7)只能ping通VMnet8自己的网关,宿主机与外网ping不通。
百度csdn等等找了很多;
什么在 vi /etc/reslov.conf
里面修改dns=8.8.8.8
为谷歌的,
在网络配置里面设置静态ip等等,没有一个能够使用的;
桥接模式也试过总是会出现问题;
解决方法:虚拟机选择编辑---------虚拟网络编辑--------选择NAT模式,
选中还原默认设置
之后重新刷新网络解决不能wget与ping不通外网的问题!
亲测没问题!
网上的有时候只会复制粘贴,自己都没试过直接发布,复制别人的,结果都不能使用。
刚接触linux,有问题请多多探讨!
服务器配置填坑 wget: unable to resolve host address解决方法,最终成功
项目上线,手续要配置服务器,甲方机房在单位内,无法使用公司云服务器。于是配置坑来了
配环境下载包,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 结果如图,配置是失败的,但是,不影响,可以上网了
DNS域名解析
一、DNS是什么
DNS(Domain Name Server)域名解析系统
功能:负责将域名转换成网络可以识别的IP地址,比如将www.Baidu.com.cn转换成
119.75.217.109,域名和IP地址之间一一对应。
互联网中连接了无数的服务器、个人主机,也有不计其数的网站、邮件等服务器,他们都使用了域名形式的地址,例如www.baidu.com,www.aliyun.com 等等。很明显,这些网站都是有自己的IP地址的,但相较于数字形式的地址以及IP地址的变动性的可能,很明显,上面的字母组成的形式的IP结构更能让人直观的记住,这就是DNS的作用:通过输入的域名将其转换成对应的IP地址来使用以找到正确的资源位置。
二、DNS系统
事实上,全球分布着13台DNS根服务器
13个根服务器的分布地点及IP地址:
A,INTERNIC.NET(美国弗吉尼亚州),IP地址:198.41.0.4
B,美国信息科学研究所(美国加利弗尼亚州),IP地址:128.9.0.107
C,PSINet公司(美国弗吉尼亚州),IP地址:192.33.4.12
D,马里兰大学(美国马里兰州) IP地址:128.8.10.90
E,美国航空航天管理局(美国加利弗尼亚州),IP地址:192.203.230.10
F,因特网软件联盟(美国加利弗尼亚州),IP地址:192.5.5.241
G,美国国防部网络信息中心(美国弗吉尼亚州),IP地址:192.112.36.4
H,美国陆军研究所(美国马里兰州),IP地址:128.63.2.53
I,Autonomica公司(瑞典斯德哥尔摩),IP地址:192.36.148.17
J,VeriSign公司(美国弗吉尼亚州),IP地址:192.58.128.30
K,RIPE NCC(英国伦敦),IP地址:193.0.14.129
L,IANA(美国弗吉尼亚州),IP地址:198.32.64.12
M,WIDE Project(日本东京),IP地址:202.12.27.33
根服务器主要用来管理互联网的主目录,全世界只有13台(这13台根域名服务器名字分别为“A”至“M”),1个为主根
服务器在美国。其余12个均为辅根服务器,其中9个在美国,欧洲2个,位于英国和瑞典,亚洲1个位于日本。
正向解析: 根据域名查找对应的IP地址,查询hosts文件(主机A记录)
反向解析: 根据IP地址查找对应的域名(主机P记录)
DNS系统的结构可以理解为:根>顶级域名>二级域名>三级域名>四级域名
因为这样的结构,所以在网络角度域名的解读其实是反着来的www.baidu.com.cn.
即:www .baidu .com .cn .
主机名 。。 子域 。。 一级域 顶级域 根域
顶级域名有:cn,uk,jp,us,de…(国家地区)edu,org,gov,com…(机构组织)
具体的含义和更详细的分类,这里就不做解释了。
三、DNS查询类型
(1)递归查询
递归查询是一种DNS服务器的查询模式在该模式下DNS服务器接收客户机请求,必须使用一个准确的查询结果回复客户机。如果DNS服务器本地没有存储查询 DNS信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。也就是客户机发送请求后自己只用等待结果即可,中间具体过程交给服务器实现。
(2)迭代查询
DNS查询时S服务器查询结果,而告诉客户机另一台DN服务器地址,客户机再向这台NS服务器提求,依环直到回查询的结果为止。也就是说,客户机的请求需要自己挨个去查询才能得到结果,服务器没有结果时候只会给你提供其它服务器的地址,而不会帮你去请求查询。
本地DNS查找的顺序:
-
缓存
-
/etc/hosts (存放本地域名与IP的映射关系)
[root@ljp /]# cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
-
/etc/resolv.conf (DNS的配置文件)
[root@ljp /]# cat /etc/resolv.conf
# Generated by NetworkManager nameserver 114.114.114.114
-
/etc/sysconfig/network-scripts/ifcfg-ens33 (配置单个网卡的DNS)
DNS提供
*114.114.114.114是国内移动、电信和联通通用的DNS,手机和电脑端都可以使用。
8.8.8.8是GOOGLE公司提供的DNS,该地址全球通用,相对来说,更适合国外以及访问国外网站的用户使用
223.5.5.5 和223.6.66:阿里云DNS
IPV6 2400:3200:1 和2400:3200baba::1
江苏省南京市(中国电信)
首选DNS为:218.2.135.1 备用DNS为:61.147.37.1
四、DNS服务器类型
主域名服务器:负责维护一个区域的所有域名信息,是特定的所有信息的权威信息源,数据可以修改。构建主域名服务器时,需要自行建立所负责区域的地址数据文件。
从域名服务器:当主域名服务器出现故障、关闭或负载过重时,从域名服务器作为备份服务提供域名解析服务。从域名服务器提供的解析结果不是由自己决定的,而是来自于主域名服务器。构建从域名服务器时,需要指定主域名服务器的位置,以便服务器能自动同步区域的地址数据库。
缓存域名服务器:只提供域名解析结果的缓存功能,目的在于提高查询速度和效率,但没有域名数据库。它从某个远程服务器取得每次域名服务器查询的结果,并将它放在高速缓存中,以后查询相同的信息时用它予以响应。缓存域名服务器不是权威性服务器,因为提供的所有信息都是间接信息。构建缓存域名服务器时,必须设置根域或指定其他DNS服务器作为解析来源。
转发域名服务器:负责所有非本地域名的本地查询。转发域名服务器接到查询请求后,在其缓存中查找,如找不到就将请求依次转发到指定的域名服务器,直到查找到结果为止,否则返回无法映射的结果。
五、正向解析实验
1、检查工具是否存在
在centos7中检查是否有Bind工具,如果没有,使用yum下载。
rpm -q Bind
bind-9.11.4-26.P2.el7_9.9.x86_64
2、查看配置文件
rpm -qc bind 查看配置文件位置
[root@ljp /]# rpm -qc bind
/etc/logrotate.d/named
/etc/named.conf #主配置文件
/etc/named.iscdlv.key
/etc/named.rfc1912.zones #区域配置文件
/etc/named.root.key
/etc/rndc.conf
/etc/rndc.key
/etc/sysconfig/named
/var/named/named.ca
/var/named/named.empty
/var/named/named.localhost #区域数据文件
/var/named/named.loopback
3、修改区域配置文件,添加正向区域配置
vim /etc/named.conf
options {
listen-on port 53 { 192.168.116.23; }; #监听端口53,ip192.168.116.23
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
allow-query { 192.168.116.0/24; }; #允许通过192.168.116.0网段
vim /etc/named.rfc1912.zones
其中:
zone “1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa” IN
相当于分界线,往上是正向解析,往下是反向解析
复制“分界线”上面的样例进行配置:
zone "ljp.com" IN {
type master;
file "ljp.com.zone";
allow-update { none; };
};
4、配置正向区域数据文件
touch /var/named/ljp.com.zone #创建ljp.com.zone正向数据文件
cp -p named.localhost ./ljp.com.zone #将named.localhost保留权限的复制到ljp.com.zone
vim /var/named/ljp.com.zone
$TTL 1D
@ IN SOA ljp.com. admin.ljp.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS ljp.com.
A 192.168.116.23
AAAA ::1
IN MX 10 mail.ljp.com.
WWW IN A 192.168.116.23
mail IN A 192.168.116.223
ftp IN CNAME www
* IN A 192.168.116.200
启动服务
systemctl start named
关闭防火墙
systemctl stop firewalld
查看服务状态
systemctl status named
5、更改dns(三种方法)
/etc/hosts
(修改立即生效)
/etc/resolv.conf
(修改立即生效,须删除其他DNS)
/etc/sysconfig/network-scripts/ifcfg-ens33
(设置完成后须重启网卡设备)
6、查看测试结果
(测试前要在/etc/hosts 和 /etc/resolv.conf 文件中删除其他的DNS服务器)
nslookup www.ljp.com
nslookup ljp.com
nslookup mail.ljp.com
[root@ljp network-scripts]# nslookup ljp.com
Server: 192.168.116.23
Address: 192.168.116.23#53
Name: ljp.com
Address: 192.168.116.23
Name: ljp.com
Address: ::1
[root@ljp network-scripts]# nslookup mail.ljp.com
Server: 192.168.116.23
Address: 192.168.116.23#53
Name: mail.ljp.com
Address: 192.168.116.24
[root@ljp network-scripts]# nslookup ftp.ljp.com
Server: 192.168.116.23
Address: 192.168.116.23#53
ftp.ljp.com canonical name = www.ljp.com.
Name: WWW.ljp.com
Address: 192.168.116.23
wget: unable to resolve host address ‘ftp.gnu.org’(CentOS 7的网络配置)
wget: unable to resolve host address解决方法
wget: unable to resolve host address亲测有效办法(虚拟机ping不通宿主机与外网)