если я подключусь к своему серверу по SSH и попытаюсь выполнить эхо-запрос другого сервера, я никогда не увижу ответов. Кажется, это происходит только с URL-адресами. Мне удалось пропинговать пару IP-адресов.
Я впервые заметил эту проблему, когда мои запросы PHP cURL не выполнялись; Я видел эту ошибку: «Истекло время поиска имени».
Кроме того, я не уверен, что это необычно, но мне не удалось найти nslookup или копать на моем сервере. (выполнение какого nslookup и которое копать не дали никаких результатов)
Эта проблема, похоже, совпала с миграцией среза (Slicehost переносил мой срез).
Интересно, что я могу успешно пинговать свой сервер с любого другого компьютера и переходить на веб-страницы, которые он размещает.
Мой сервер: Debian 5.0 (lenny), и я использую Apache, если это имеет значение. Я немного нуб сисадмина, поэтому дайте мне знать, есть ли еще какая-нибудь полезная информация. Любая помощь будет оценена. Спасибо!
Если окажется, что проблема не в локальном брандмауэре, обратитесь к своему хостинг-провайдеру - я слышал о нескольких хостинг-провайдерах, которые блокируют исходящие DNS-запросы и вместо этого заставляют своих пользователей использовать свои локальные кэширующие серверы имен. Обычно это плохая практика, которая случается не так часто, но возможна. Быстрая проверка у вашего хостинг-провайдера должна быть достаточной, чтобы проверить или устранить это.
Ньютанг,
Похоже, у вас проблемы с разрешением DNS. Чтобы подтвердить подключение к сети, вы можете проверить связь с DNS-серверами Google 8.8.8.8 или 8.8.4.4. Если это работает, но проверка связи с google.com возвращает истекло время поиска имени, то это, скорее всего, проблема с DNS.
/etc/resolv.conf должен содержать список преобразователей, которым ваш ящик отправляет DNS-запросы. Список должен включать то, что рекомендует ваш хостинг-провайдер. Я не использую Slicehost, поэтому не могу сказать наверняка, но эта вики может помочь: http://wiki.slicehost.com/doku.php?id=using_slicehost_nameservers_for_dns_lookups
В целях тестирования вы можете добавить серверы имен Google в /etc/resolv.conf (в начале) и посмотреть, решит ли это вашу проблему.
например
сервер имен 8.8.8.8
РЕДАКТИРОВАТЬ:
Если ваш /etc/resolv.conf выглядит хорошо, убедитесь, что ваш брандмауэр не блокирует DNS-пакеты. Если вы используете iptables, вы можете просмотреть свои правила, запустив iptables -L. DNS использует порт 53, поэтому вам нужно будет убедиться, что существует правило, разрешающее отправку запроса, а другое - для возврата ответа.
Пример:
iptables -A OUTPUT -p udp -m udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp -m udp --sport 53 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --sport 53 -j ACCEPT