ping или curl неверные домены перенаправляет на локальный сервер в Linux
Когда я пытаюсь проверить связь или получить неверный домен, я получаю перенаправление на домен по умолчанию на моем локальном сервере. пример: попытка пропинговать www.invaliddomainnameexample.com с моего сервера s1.mylocaldomain.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/
моя решимость
~: cat /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
2 ответа
Похоже, единственный способ исправить это - запретить неизвестным хостам обрабатываться сервером 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;
}
Может ли быть так, что ваш /etc/resolv.conf также содержитsearch mylocaldomain.com
заявление и есть "*" DNS RR для вашего домена?
Потому что тогда применяется список поиска, запись * совпадает, и вуаля!
Пытаться ping www.invaliddomainnameexample.com.
с точкой, добавленной, чтобы пометить доменное имя как полное доменное имя, которое запрещает применение списка поиска.