2014-02-24 08:49:11 +0000 2014-02-24 08:49:11 +0000
20
20

"Соединение отказано" против "Нет пути к хозяину".

У меня на сервере работает сервер Apache:

[root@te-srv2 ~]# ps -ecf|grep httpd
root 698 32047 TS 19 10:45 pts/24 00:00:00 grep httpd
root 32081 1 TS 19 10:16 ? 00:00:00 /usr/sbin/httpd
apache 32083 32081 TS 19 10:16 ? 00:00:00 /usr/sbin/httpd
apache 32084 32081 TS 19 10:16 ? 00:00:00 /usr/sbin/httpd
....

Однако, когда я пытаюсь подключиться к локальному хосту, я получаю “Соединение отказано”:

То же самое происходит, когда я пытаюсь подключиться к локальному IP адресу:

[root@te-srv2 ~]# wget http://127.0.0.1
--2014-02-24 10:46:16-- http://127.0.0.1/
Connecting to 127.0.0.1:80... failed: Connection refused.

С другой стороны, когда я пытаюсь подключиться к локальному хосту с другого компьютера в той же сети, я получаю другую ошибку “Нет маршрута к хосту”:

[root@te-srv2 ~]# wget http://132.70.6.157
--2014-02-24 10:46:40-- http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: Connection refused.

Почему я получаю эти ошибки? И что мне делать, чтобы иметь возможность подключиться к http-серверу как с одного компьютера, так и с других компьютеров в сети?

UPDATES: Основываясь на комментариях и ответах, вот дополнительная информация:

[erelsgl@erel-biu ~]$ wget http://132.70.6.157
--2014-02-24 10:49:11-- http://132.70.6.157/
Connecting to 132.70.6.157:80... failed: No route to host.

Ответы (4)

26
26
26
2014-02-24 09:11:38 +0000

“Соединение отказано” означает, что целевая машина активно отказала в соединении. С портом 80 в качестве контекста, вероятно, одна из следующих причин:

  • Ничто не прослушивает 127.0.0.1:80 и 132.70.6.157:80
  • Ничто не прослушивает *:80
  • Брандмауэр блокирует соединение с REJECT

Так что проверьте свой конфигурационный файл Apache и iptables.

“Нет маршрута к хосту” относится к проблеме сети. Это not ответ от целевой машины.

13
13
13
2014-02-24 09:09:12 +0000

Покажите результат netstat -lnp, чтобы мы могли видеть, какие процессы на самом деле прослушивают какие порты на сервере, и к каким IP-адресам они привязаны.

Что касается второго компьютера, его сетевое подключение выглядит нарушенным. netstat -rn дает некоторое представление о проблеме.

Для того, чтобы дать более точный совет, необходимы более подробные сведения об общей конфигурации сети и IP-конфигурации на обоих компьютерах.

Правка:

Вы должны изменить конфигурацию Apache таким образом, чтобы он был HTTP-сервером, а не SSL-сервером. Конфигурационные файлы в большинстве случаев находятся под /etc/apache2.

Информация об IP-конфигурации и настройке сети все еще необходима для анализа другой проблемы. Информация трассировки ничего не выявила.

3
3
3
2018-06-14 09:23:31 +0000

Я нашел эту заметку, описывающую проблему, с которой я столкнулся при попытке настроить простую http страницу с помощью nodejs на узле вычислений Public Cloud.

Эта команда сделала для меня трюк:

iptables -F

Эта команда смывает, т.е. очищает правила брандмауэра, которые устанавливаются внутри системы Linux.

Слово предосторожности: Так как я использую распределенный брандмауэр, который является частью Public Cloud VCN, я на самом деле не использовал брандмауэр моей операционной системы. В случае, если у вас нет внешнего брандмауэра, обязательно добавьте правило брандмауэра в iptables.

1
1
1
2017-08-01 08:16:53 +0000

Ссылаясь на ответ Рона Мопена из https://networkengineering.stackexchange.com/questions/33397/debugging-no-route-to-host-over-ethernet :

Сообщение ICMP “нет маршрута к хосту” означает, что ARP не может найти адрес второго уровня для хоста-получателя. Обычно это означает, что хост с таким IP-адресом не находится в сети и не отвечает.

Похожие вопросы

3
11
13
5
18