为什么我可以通过回送而不是IP从Web服务器获取?

我在我的Ubuntu 10.04服务器框上的一个非标准端口上运行了一个Web服务器( Thin )。 我可以通过回送接口访问Web服务器,但不能访问公共IP。 为什么,以及如何修复configuration,使局域网上的其他机器可以访问它?

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上进行精简的监听(请通过真实的networking服务器进行代理),但您可以在瘦命令行上使用-a 0.0.0.0 (或-o 0.0.0.0如果是做正确的事情和使用rackup )。

如果情况并非如此,那么我将在你的iptables规则的每一个方面采取10个bob; 确切的安装说明超出了提供的信息所能提供的内容,但大概您已经足够了解自己的系统来调整防火墙规则。