Ubuntu

為什麼我可以通過環回而不是 IP 從 Web 伺服器獲取?

  • August 4, 2011

我在我的 Ubuntu 10.04 伺服器盒上的非標準埠上執行了一個 Web 伺服器 ( Thin )。我可以通過環回介面訪問 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

我敢打賭,這netstat -ltn將表明你的瘦子正在聽127.0.0.1而不是0.0.0.0(或任何你想要的)。雖然您實際上並不想要細聽INADDR_ANY(請通過真正的網路伺服器代理它),但您可以通過-a 0.0.0.0在細命令行上使用來實現這一點(或者-o 0.0.0.0如果您做正確的事情並使用rackup)。

如果不是這樣,我會按照你的iptables規則單程拿 10 個鮑勃;修復的確切說明超出了現有資訊所能提供的範圍,但大概您對自己的系統有足夠的了解以調整防火牆規則。

引用自:https://serverfault.com/questions/297415