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

Почему я могу получать данные с веб-сервера через loopback, но не по IP?

У меня есть веб-сервер (Тонкий), работающего на нестандартном порту на моем сервере Ubuntu 10.04. Я могу получить доступ к веб-серверу через интерфейс обратной связи, но не через общедоступный IP-адрес. Почему и как мне исправить конфигурацию, чтобы другие машины в локальной сети могли получить к ней доступ?

phrogz@planar:~$ curl -s -I http://localhost:9011/login | grep HTTP
HTTP/1.1 200 OK

phrogz@planar:~$ curl -s -I http://192.168.0.84:9011/login | grep HTTP
phrogz@planar:~$ curl -I http://192.168.0.84:9011/login
curl: (7) couldn't connect to host

phrogz@planar:~$ ifconfig eth0 | grep "inet addr"
          inet addr:192.168.0.84  Bcast:192.168.0.255  Mask:255.255.255.0

phrogz@planar:~$ ping 192.168.0.84
PING 192.168.0.84 (192.168.0.84) 56(84) bytes of data.
64 bytes from 192.168.0.84: icmp_seq=1 ttl=64 time=0.020 ms
64 bytes from 192.168.0.84: icmp_seq=2 ttl=64 time=0.013 ms
^C
--- 192.168.0.84 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.013/0.016/0.020/0.005 ms

phrogz@planar:~$ uname -a
Linux planar 2.6.32-33-server #71-Ubuntu SMP Wed Jul 20 17:42:25 UTC 2011 x86_64 GNU/Linux

Готов поспорить, что netstat -ltn покажет, что ваш худой слушает 127.0.0.1 и нет 0.0.0.0 (или как хотите). Хотя вы на самом деле не хотеть тонкое прослушивание INADDR_ANY (прокси через настоящий веб-сервер, пожалуйста), вы можете добиться этого, используя -a 0.0.0.0 в тонкой командной строке (или -o 0.0.0.0 если вы поступаете правильно и используете rackup).

Если это не так, я возьму по 10 шиллингов в каждую сторону на вашем iptables правила мешают; точные инструкции по исправлению, которые выходят за рамки того, что может быть предоставлено с учетом доступной информации, но, вероятно, вы знаете достаточно о своих собственных системах, чтобы настроить правила брандмауэра.