自宅にADSL接続可能なDebianサーバー(パブリックIPを含む)とRaspberry-PIがあります。私は外部からアクセスできる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に接続できません。
次のようにサーバーでカールすると、Cal -Ihttp://10.zero.zero.100/私は肯定的な反応を得た。したがって、サーバーとRP間の接続は正常です。しかし、外でカールをするときは、次のようにします。カール-Ihttp://xx.xx.xx.xx/カールが発生しました:(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)