Ubuntu
為什麼我可以通過環回而不是 IP 從 Web 伺服器獲取?
我在我的 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 個鮑勃;修復的確切說明超出了現有資訊所能提供的範圍,但大概您對自己的系統有足夠的了解以調整防火牆規則。