Что заставило бы Сервер Ubuntu 14.04 машин LTS терять способность использовать 'localhost' в конфигурациях веб-сервера? Если я заменяю 'localhost' статическим, внутренним IP-адресом (192.168.0.70) машины, то другие машины в сети могут получить доступ к сайту. Если я пытаюсь использовать 'localhost', тот же запрос недостижим (скажем, я использую http://192.168.0.70:8000 для обоих сценариев). Я копировал это с 2 различными технологиями веб-сервера, таким образом, это не проблема с веб-сервером. '/etc/hosts' 'файл имеет запись для' 127.0.0.1 localhost ', и я могу проверить с помощью ping-запросов' localhost 'на рассматриваемой машине. У меня есть ufw брандмауэр рабочий и позволяющий трафик TCP на порте 8000. Так как я могу получить доступ к сайту от других машин при использовании конфигурации IP, затем я знаю, что это не проблема брандмауэра.
localhost поддерживает только loopback. Он является внутренним в машине, частным и не связан с localhost на любой другой машине. Если вы хотите использовать проводной интерфейс, он должен прослушивать этот интерфейс. Таким образом, вы либо слушаете его, либо * (все), либо список, который включает localhost, если он вам нужен, плюс проводной интерфейс. (в config иногда ставишь ip, а иногда ставишь интерфейс)
Вы также можете увидеть это в 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