天天看点

rhel7 Couldn't resolve host 'mirrors.163.com'

今天早上使用yum来安装vsftpd的时候,出现Couldn't resolve host 'mirrors.163.com'错误。

rhel7 Couldn't resolve host 'mirrors.163.com'

首先,网易的这个镜像是没有问题的,毕竟我的同事能够正常访问,所以,这个问题就出在我自己的电脑上了。

我一开始以为是网络断了。

于是,我 ping www.baidu.com

rhel7 Couldn't resolve host 'mirrors.163.com'

真的是我网络断了?

接下来我又直接ping 百度的IP地址

rhel7 Couldn't resolve host 'mirrors.163.com'

发现能够ping 通。

那么这个问题就明了了,应该就是DNS配置的问题了。

于是,我查看了DNS的配置

rhel7 Couldn't resolve host 'mirrors.163.com'

并且验证了114.114.114.114这个DNS服务器是可达的。

rhel7 Couldn't resolve host 'mirrors.163.com'

顺便查看了网关的配置

rhel7 Couldn't resolve host 'mirrors.163.com'

这个DNS和网关的配置都没有问题啊,那到底是哪里出问题了呢?

这个时候我想到了一个问题,是不是防火墙的问题?因为最近使用了rhel7的防火墙,用不惯firewall,所以我安装了iptables服务,但是还来不及配置iptables的规则。

嗯,问题可能就出在这里,让我们来一探究竟。

我直接将iptables 服务给关了 ,测试一下看看能不能成功

rhel7 Couldn't resolve host 'mirrors.163.com'

果然是防火墙的问题!!!

于是我又重新将防火墙打开了,由于我防火墙的INPUT默认是DROP,所以我配置了两条DNS源端口的INPUT规则

rhel7 Couldn't resolve host 'mirrors.163.com'

顺便将iptables服务重启了一下,然后测试

rhel7 Couldn't resolve host 'mirrors.163.com'

果然可以了!

接下来就是用yum 安装 vsftpd了

rhel7 Couldn't resolve host 'mirrors.163.com'

哎?这里怎么还是有错误,看来是源端口没有设置对,这个时候就需要了解一下yum的原理了。

YUM的基本工作机制如下:

服务器端:在服务器上面存放了所有的RPM软件包,然后以相关的功能去分析每个RPM文件的依赖性关系,将这些数据记录成文件存放在服务器的某特定目录内。 

客户端:如果需要安装某个软件时,先下载服务器上面记录的依赖性关系文件(可通过WWW或FTP方式),通过对服务器端下载的纪录数据进行分析,然后取得所有相关的软件,一次全部下载下来进行安装。

yum下载文件的协议具体可以查看自己的repo文件。我这里是通过HTTP协议。

rhel7 Couldn't resolve host 'mirrors.163.com'

我配置了80端口后,发现下载就可以了。(HTTPS的端口是我随意配置的,不用理会)

rhel7 Couldn't resolve host 'mirrors.163.com'
rhel7 Couldn't resolve host 'mirrors.163.com'

接下来使用Yum就都可以了。

PS:这里总结一点,防火墙很重要!并且大家需要厘清dport和sport的规则,具体的可以查看博客

dport和sport的区别