файл / etc / hosts содержит строку: 127.0.0.1 localhost, поэтому localhost должен быть допустимым именем хоста, но любая попытка подключиться к порту на localhost не удалась, включая ping.
Попытки подключения к этому серверу извне, с использованием тех же клиентов, работают.
Попытки подключения с этого сервера на другие серверы с использованием этих клиентов также работают.
При дальнейшем исследовании также не удается пропинговать петлевой ip 127.0.0.1, когда ping вызывается непосредственно на этом ip. Помимо проверки связи, я протестировал с помощью «socat TCP4 ..».
Может ли плохой iptables предотвратить локальное соединение?
Да, iptables может защищать локальный хост от себя. Если вы играете с этим, это будет отличное место, чтобы посмотреть первым.
Попробуйте запустить iptables -L -n
. Если вы не уверены, как читать вывод, опубликуйте его.
Классическая ошибка - установить политику на DENY и не добавлять исключение для localhost.
Есть ли интерфейс, настроенный с lo0
или любой другой интерфейс с 127.0.0.1? Проверьте количество пакетов Rx / Tx. Также проверьте, настроен ли lo0 в /etc/network/interfaces.
output of 'ifconfig'
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:24 errors:0 dropped:0 overruns:0 frame:0
TX packets:24 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:1440 (1.4 KB) TX bytes:1440 (1.4 KB)
Вы можете заглянуть в /etc/resolv.conf, но я не знаю, какая запись остановит работу localhost.
Показывает ли 'ip lie show', что интерфейс обратной связи работает?
Да, можно настроить iptables таким образом, чтобы отбрасывать все пакеты, полученные на lo. Я не уверен, как это могло произойти случайно, но это стоит проверить.