
我家裡有一台 Debian 伺服器(有公用 IP)和 Raspberry-PI,有 ADSL 連線。我正在 RP 上運行一個 Web 伺服器,我希望可以從外部存取該伺服器。
我已經設定了 PPTP 並且我的 RP 連接到我的伺服器。 RP的IP為10.0.0.100;網關IP為10.0.0.1。
我已經在伺服器上使用 IP 表設定了連接埠轉發,如下所示:(xx.xx.xx.xx 是我的公共 IP)。
iptables -t nat -A PREROUTING -d xx.xx.xx.xx -p tcp --dport 80 -j DNAT --to-dest 10.0.0.100:80
iptables -t nat -A POSTROUTING -d 10.0.0.100 -p tcp --dport 80 -j SNAT --to-source 10.0.0.1
我還設定了 net.ipv4.ip_forward = 1
連接埠 80 在伺服器和 RP 上均開放。
但由於一個奇怪的原因我無法連接到 RP。
當我像這樣從伺服器捲曲時:curl -Ihttp://10.zero.zero.100/我得到了正面的回應。因此伺服器和 RP 之間的連線正常。但是當我像這樣在外面做捲曲形式時:curl -Ihttp://xx.xx.xx.xx/我得到了curl:(7)無法連接到xx.xx.xx.xx連接埠80:連接被拒絕
我做錯了什麼?
RP上的路由表是這樣的:
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
RP 的 ifconfig 顯示了這一點:
ppp0 Link encap:Point-to-Point Protocol
inet addr:10.0.0.100 P-t-P:10.0.0.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1496 Metric:1
RX packets:16 errors:0 dropped:0 overruns:0 frame:0
TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:678 (678.0 B) TX bytes:7058 (6.8 KiB)