質問: raspberrypiにSSHでWAN側からアクセスしたいのですができません。 LAN側からのSSH接続には成功しました。 raspberrypi のOSはrasbianではなくOpenWrtといものを入れています。 SSHクライアントはteratermを使用しています。 rasberrypi側のプラベートIPアドレスはスタティックで固定しました。 ルータはBuffalo WHR-300を使用していて、`buffalo airstation settings` でポート変換登録情報をInternet側IPアドレス=エアーステーションのInternet側IPアドレス、LAN側IPアドレス=openwrtのプライベートIPアドレス、プロトコル・LAN側ポートをそれぞれSSH(22)に設定し登録しました。 また、raspberrypi側のopenwrtでは /etc/config/networkというファイルに ``` config rule option name ' SSH' option src 'wan' option proto ' tcp' option dest_port '22' option target 'ACCEPT' ``` という記述も追加しました。 以上の設定を行ったうえで、外部から接続するためにスマートフォンでデザリングしたPCからteratermを使って 外部PC(デザリング)→ルータ(Internet側IPアドレス)→raspberrypi で接続を試みるのですが、timeoutとなってしまいます。 それから試しに外部からではなく、 LAN内のPC→ルータ(Internet側IPアドレス)→rasberrypi で接続を試みるとconnection refusedとなります。 外部から接続できない原因が分からないので教えてほしいです。 ルータのbuffalo airstation settingsのページで確認できるInternet側のIPアドレスと のサイトで確認できるグローバルIPアドレスが異なってしまっているのですがこれも関係あるのでしょうか?(どちらのIPアドレスも接続は失敗しました
回答: Buffalo WHR-300を含む多くの無線LANルーターは、NATという機能を持っています。これは無線LAN側の複数のマシンのIPアドレスから送信されるパケットをあたかも無線LANルーターのWAN側IPアドレスから発したように変換し、WAN側に入ってくるパケットは変換の際に作ったテーブルに従って無線LANのIPアドレス宛のように変換するというような働きをします。(NATはNetwork Address Translationの略です。直訳すると”ネットワーク アドレス 翻訳”、無線LAN側のアドレスとWAN側のアドレスを相互に変換(翻訳)する機能です) NATは無線LAN側から通信を始めた場合にのみ機能して、WAN側から通信を始めた場合にはファイアウオールのように働きます。そのため、WAN側から無線LANからパケットを送ることが出来ません。 これが、質問者の方が接続できない理由(原因)です。 無線LANで接続されているマシンのIPアドレスは、ルーターのWAN側からは見えませんので、現状のネットワーク構成では問題を解決する方法はありません。 但し、無線LAN側に接続されるマシンが1台だけで、そのIPアドレスが固定されているなら、ポート開放(ポートフォワーディング)をすることで無線LAN側のマシンにアクセスすることが出来るようになります。