
自宅に Debian サーバー (パブリック IP 付き) と ADSL 接続の 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 に接続できません。
サーバーからcurlを実行すると、次のようにします: curl -Ihttp://10.zero.zero.100/肯定的な応答が得られました。つまり、サーバーとRP間の接続は機能しています。しかし、次のように外部でcurlフォームを実行すると: 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)