Назад | Перейти на главную страницу

Невозможно проверить связь с удаленным сервером; как я могу отладить неправильную конфигурацию локальной сети, если мой IP-адрес заблокирован?

Я управляю KVM VPS по адресу 104.143.14.103, который по какой-то причине не может подключиться http://pecl.php.net.

Когда я ping IP-адрес сервера PECL (104.236.228.160), чтобы убедиться, что это не проблема DNS, и каждый раз, когда я получаю Destination Host Unreachable.

Как я могу отладить, является ли основная причина неправильной конфигурацией моего сервера или же запрос ping отклоняется целевым сервером?

У меня нет проблем pingиспользование PECL с различных других серверов, которыми я управляю, поэтому я знаю, что PECL не блокирует все эхо-запросы.

У меня тоже нет проблем pingНа любых других сайтах, которые я пытаюсь использовать со своего VPS, проблема связана исключительно с сервером PECL.

Я использовал зеркало своего хоста VPS (http://lg.las1.ultravps.net/), и у него нет проблем с пингом PECL. Я также отправил запрос в службу поддержки хосту, и они вошли в гипервизор для этого узла и сказали, что могут успешно проверить связь с PECL.

Я запустил traceroute к серверу PECL с другого сервера, чтобы найти IP-адрес предпоследнего перехода. Я могу успешно пропинговать этот IP-адрес (162.243.188.222) со своего VPS.

Когда я бегу traceroute с VPS я получаю:

[jeffwidman@ultravps ~]$ traceroute pecl.php.net
traceroute to pecl.php.net (104.236.228.160), 30 hops max, 60 byte packets
 1  ultravps.jeffwidman.com (104.143.14.103)  3005.478 ms !H  3005.400 ms !H  3005.270 ms !H
[jeffwidman@ultravps ~]$ traceroute 104.236.228.160
traceroute to 104.236.228.160 (104.236.228.160), 30 hops max, 60 byte packets
 1  ultravps.jeffwidman.com (104.143.14.103)  3005.916 ms !H  3005.877 ms !H  3005.867 ms !H
[jeffwidman@ultravps ~]$

Я проверил несколько сайтов из черного списка, просто чтобы убедиться, что я не унаследовал плохой IP-адрес ... ни один из них не указал мой IP. Я также не регулярно нажимаю на PECL, и эта проблема возникает в течение нескольких дней, поэтому я был бы очень удивлен, если бы столкнулся с ограничением скорости.

Что еще я могу сделать, чтобы определить, блокирует ли PECL мой IP-адрес или что-то неправильно настроено на моем VPS?

Выход ip route:

[jeffwidman@ultravps ~]$ ip route
default via 104.143.14.1 dev eth0  proto static  metric 100
104.0.0.0/8 dev eth0  proto kernel  scope link  src 104.143.14.103  metric 100

Выход ip addr:

[jeffwidman@ultravps ~]$ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:16:3c:d1:49:f6 brd ff:ff:ff:ff:ff:ff
    inet 104.143.14.103/8 brd 104.255.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::216:3cff:fed1:49f6/64 scope link
       valid_lft forever preferred_lft forever
[jeffwidman@ultravps ~]$

Теперь проблема очевидна.

В вашем сетевом интерфейсе установлен неправильный префикс.

Он установлен в / 8 (или в старой нотации маски сети 255.0.0.0), что говорит вашей операционной системе, что каждый адрес в диапазоне от 104.0.0.0 до 104.255.255.255 включительно находится в той же локальной сети, что и ваш VPS.

Очевидно, это не так. Большая часть этого диапазона подразделяется на очень маленькие сети, разбросанные по всей Америке.

Из-за этого ваш компьютер не знает, что он предназначен для маршрутизации пакетов, и пытается связаться с любым адресом, начинающимся с 104. в той же локальной сети, где он не может быть найден.

Чтобы решить эту проблему, вам необходимо перенастроить сеть для правильной сетевой маски или диапазона CIDR. Вы можете получить эту информацию у своего VPS-провайдера.

Поскольку вы тестируете общедоступный веб-сайт, метко названный вниз для всех или только для меня веб-сервис очень полезен. Просто введите адрес рассматриваемого сайта в их веб-форму, и они будут пинговать адрес из нескольких мест. Мне еще не приходилось сталкиваться с ситуацией, когда сервер работал, но они не могли связаться с ним, даже в некоторых плохо настроенных местах в Африке и на Ближнем Востоке.

Вы также можете использовать его из интерфейса командной строки, просто введите вывод для span чтобы было легче читать:

$ curl -s http://www.downforeveryoneorjustme.com/serverfault.com | grep span
  It's just you.  <a href="http:&#x2F;&#x2F;serverfault.com" class="domain">http:&#x2F;&#x2F;serverfault.com</a></span> is up.