ping或curl无效域重定向到Linux上的本地服务器

时间:2012-11-26 16:14:40

标签: linux curl dns ping

当我尝试ping或检索无效域时,我会在本地服务器上重定向到默认域。 例如: 试图从我的服务器s1.mylocaldomain.com

ping ping www.invaliddomainnameexample.com
~: ping www.invaliddomainnameexample.com
PING www.invaliddomainnameexample.com.mylocaldomain.com (67.877.87.128) 56(84) bytes of data.
64 bytes from mylocaldomain.com (67.877.87.128): icmp_seq=1 ttl=64 time=0.040 ms
64 bytes from mylocaldomain.com (67.877.87.128): icmp_seq=2 ttl=64 time=0.039 ms

或使用curl

~: curl -I www.invaliddomainnameexample.com
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Nov 2012 16:09:57 GMT
Content-Type: text/html
Content-Length: 223
Connection: keep-alive
Keep-Alive: timeout=10
Location: http://mylocaldomain.com/

my resolve.conf

~: cat /etc/resolv.conf 
nameserver 8.8.8.8
nameserver 8.8.4.4

2 个答案:

答案 0 :(得分:3)

你的/etc/resolv.conf是否还包含一个 search mylocaldomain.com 声明并且您的域名有“*”DNS A RR?

因为然后应用了搜索列表,*记录匹配,并且voilà!

尝试使用附加点的ping www.invaliddomainnameexample.com.将域名标记为FQDN,以防止应用搜索列表。

答案 1 :(得分:0)

看起来修复此问题的唯一方法是禁止Http服务器处理未知主机。虽然我只为本地IP做到了

我使用Nginx,所以配置为

#list of server and local IPs
geo $local {
    default 0;
    34.56.23.0/21 1;
    127.0.0.1/32 1;
}
#Deny access to any host other  
server {
   listen 80 default_server;
   server_name  _;

   if ( $local = 1 ){
       return 405;
   }

   rewrite ^(.*) http://mylocaldomain.com$1 permanent;
}