外出先から自宅サーバーに接続するにはグローバルIPが必要
IPアドレスには大きく分けてプライベートIPとグローバルIPの二種類あります。
- プライベートIP → 家庭内や学校内など限定された場所の中でのみ利用するIPアドレス
- グローバルIP → 世界に公開されたIPアドレス
プライベートIPは自宅内や社内ネットワークの機器に割り振るIPアドレスです。
グローバルIPはインターネット上で使われる世界中で重複しないIPアドレスです。プライベートIPはネットワークが異なれば重複しても問題ないですが、グローバルIPは重複しません。
IPアドレスはインターネット上における住所のようなものです。インターネットに接続している機器はそれぞれ異なるグローバルIPを持っているということになります(実際はグローバルIPの枯渇もあるためルーターを介して1つのグローバルIPをプライベートIPに変換するNAT/NAPT)。
さて、自宅に構築したサーバーなども家の中では接続することができても外出先からIPアドレスを指定しても接続することができません。設定したプライベートIPではインターネット上から場所を特定できないからです(プライベートIPは重複するから)。外部から機器を特定するにはグローバルIPを設定しなければなりません。
- グローバルIPの特定
- グローバルIPと接続するプライベートIPとを紐づける
自宅でも固定グローバルIPは使える?
自宅でもインターネットに接続できているならばグローバルIPがあるはずです。このグローバルIPを何らかの方法で特定すればOKです。
しかし、グローバルIPが固定されていない場合があります。今日のグローバルIPと明日のグローバルIPが変化してしまうとその都度再設定が必要で面倒です。
プロバイダによってグローバルIPが変動するか固定かかわります。固定IPを利用するにはオプションを利用しなければいけない場合もあります。
- フレッツ光
- ドコモ光
- インターリンク
- GMOとくとくBB
などがあります。また、auひかりのように変動型グローバルIPでありながら、実際はほとんど変動しないので固定IPのように使えるプロバイダもあります。そのあたりは自身が契約しているプロバイダを調べてみてください。
グローバルIPの調べ方
ローカルIPはコマンドプロンプトでipconfigコマンドで調べることができます。グローバルIPは調べられる下記のサイトなどにアクセスしてみてみます。
https://www.ugtop.com/spill.shtml
グローバルIPを特定したら次にルーターに接続したい機器のIPアドレスを紐づけます。
ルーターのNAPT設定
外部のネットワークにつながったルーターにはNAPTという機能があります。ポートと呼ばれるネットワークの入り口があります。外部インターネットからグローバルIP 203.0.113.1にアクセスしてきた際にポート別にプライベートIPを割り振ります。ポート22の場合プライベートIP192.168.1.2に割り振る、ポート80の場合はプライベートIP192.168.1.3に割り振るという設定をすれば一つのグローバルIPで複数のプライベートIPにアクセスすることができます。
NAPT設定をするにはルーターにアクセスして設定画面を開いて変更します。ポートマッピング設定やNAPT設定、IPマスカレードなどという名前で設定があるはずです。設定項目はプライベートIP、ポート番号が分かればOKです。
192.168.1.2 ポート22と設定するとグローバルIP203.0.113.1 : 22への接続は192.168.1.2:22にアクセスしてきたのと同じになります。ポート22はSSHで利用するポートです。
これで外出先からでも自宅のPCに接続できるようになります。接続できない場合はファイアウォールが設定されている可能性があるのでファイアウォールで指定したポートは接続できるように許可設定します。とりあえずファイアウォールを無効化して接続できるかテストしてみましょう。