Что может привести к тому, что машина Ubuntu Server 14.04 LTS потеряет возможность использовать localhost в конфигурациях веб-сервера? Если я заменю localhost статическим внутренним IP-адресом машины (192.168.0.70), тогда другие машины в сети смогут получить доступ к сайту. Если я попытаюсь использовать localhost, тот же запрос станет недоступен (скажем, я использую http://192.168.0.70:8000 для обоих сценариев). Я продублировал это с помощью двух разных технологий веб-сервера, так что это не проблема веб-сервера. В файле '/ etc / hosts' есть запись для '127.0.0.1 localhost', и я могу проверить связь с 'localhost' на рассматриваемой машине. У меня запущен брандмауэр ufw и разрешает трафик TCP на порт 8000. Поскольку я могу получить доступ к сайту с других машин при использовании конфигурации IP, я знаю, что это не проблема брандмауэра.
localhost - только loopback. Он является внутренним в машине, частным и не связан с localhost на любой другой машине. Если вы хотите использовать проводной интерфейс, он должен прослушивать этот интерфейс. Таким образом, вы либо слушаете его, либо * (все), либо список, который включает localhost, если он вам нужен, плюс проводной интерфейс. (в конфиге иногда ставишь айпи, а иногда ставишь интерфейс)
Вы также можете увидеть это в lsof. Вот веб-сервер, который всех слушает:
root@webthingy # lsof -Pni | grep "TCP.*:80.*LISTEN"
apache2 26080 root 3u IPv4 450401823 0t0 TCP *:80 (LISTEN)
apache2 26485 www-data 3u IPv4 450401823 0t0 TCP *:80 (LISTEN)
Вот DNS-сервер, который прослушивает список, а не все (UDP не отображается как LISTEN, но это то, что это такое):
root@dnsthingy:~ # lsof -Pni | grep named.*:53
named 13132 bind 20u IPv4 13389831 0t0 TCP 127.0.0.1:53 (LISTEN)
named 13132 bind 21u IPv4 13389833 0t0 TCP 10.2.0.2:53 (LISTEN)
named 13132 bind 512u IPv4 13389830 0t0 UDP 127.0.0.1:53
named 13132 bind 513u IPv4 13389832 0t0 UDP 10.2.0.2:53