我家里有一台 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)