为什么我可以通过环回从 Web 服务器获取数据,但不能通过 IP 获取数据?

为什么我可以通过环回从 Web 服务器获取数据,但不能通过 IP 获取数据?

我有一个网络服务器(薄的) 在我的 Ubuntu 10.04 Server 机器上的非标准端口上运行。我可以通过环回接口访问 Web 服务器,但不能通过公共 IP 访问。为什么?我该如何修复配置,以便 LAN 上的其他机器可以访问它?

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

答案1

我敢打赌,这netstat -ltn将表明你的设备正在监听127.0.0.1,而不是监听0.0.0.0(或任何你想要的)。虽然你实际上没有一个瘦身监听(请通过一个真正的网络服务器代理它),您可以通过在瘦身命令行上INADDR_ANY使用来实现这一点(或者如果您做了正确的事情并使用)。-a 0.0.0.0-o 0.0.0.0rackup

如果不是这样,我会收取 10 先令的费用,以iptables弥补您规则的缺陷;根据现有信息,无法提供准确的修复说明,但想必您对自己的系统有足够的了解,可以调整防火墙规则。

相关内容