linux服务器不能访问外网的问题
最近碰到了一个非常奇怪的问题,那就是Linux服务器不能访问外部网站,比如访问zihou.me是不行的,但如果是访问网站的IP,比如zihou.me的IP是63.234.12.43,那么却又是可以的,用ping命令也是一样,如果是ping zihou.me,那么是不行的,但如果ping 63.234.12.43却是没有问题的,不知何故?
而且刚启动服务器时是没有问题的,但服务器运行一段时间后,就会出现上面所说的问题。
后来经过网上求助,才解决了这个问题,下面就记录一下。
当初在安装Linux服务器的时候,我并没有配置固定的DNS服务器,这就是问题的主因,但为什么没有配置刚开始又能访问外部网站,很可能的原因是我服务器的上位router里指定的DNS在为我解析,但这个并不是稳定的,所以服务器运行一段时间后就会访问不了外部网站,具体的解决如下:
echo “nameserver 221.8.44.86″ > /etc/resolv.conf
其中,221.8.44.86是DNS服务器对应的IP地址,假如有多个DNS服务器地址,则可以按行写入到resolv.conf中,按次序调用。
resolv.conf这个文件的功能就是用来设置DNS服务器地址的,设置后,那么每次服务器对外网的访问都会先通过resolv.conf里设置的DNS服务器,通常如果你的服务器是托管的话,ISP都会告诉你一个DNS服务器的IP,这个IP应当是值得你信赖的,应该写入到resolv.conf中。
resolv.conf中还可以有一种格式,那就是如:
search zihou.me,表示当提供了一个不包括完全域名的主机名时,在该主机名后添加zihou.me的后缀