外出先から自宅サーバ環境に接続できれば、外出先でも自宅と同じ情報にアクセスできます。自宅サーバはDropboxなどのクラウド環境とは異なり、保存できるコンテンツの容量に制限はありません。自分が必要とする容量のサーバを用意すれば良いだけです。
またセキュリティー面でもVPNやSSH接続の認証に公開鍵認証を使用すればクラウド環境にIDパスワードで接続するよりも安全です。ここでは、動的IPアドレス環境の自宅サーバにドメイン(サブドメイン)名で接続する手順を紹介します。
目次
1.接続前提
自宅サーバにサブドメイン名で接続する前提は以下の通りです。
- 自宅(オフィス)環境には光回線やADSLなどのインターネット接続回線があり常時接続している状態であること。
- 常時稼働しているサーバ(PC)が存在すること。
- インターネット接続に光回線ルータ又はADSLルータを使用している(可変のグローバルIPアドレスが割り当てられている)こと。
2.解決方法
結論から言うと、DDNSで名前解決を行い接続できるようにします。DDNSとはダイナミック・ドメイン・ネーム・サービスの略です。
インターネットで使用するドメイン名(グーグルであれば「google.co.jp」yahooなら「yahoo.co.jp」)は固定のIPアドレス(複数個の場合有)に紐づけられています。コンピュータが接続する際に使用するのはこのIPアドレスです(その先にMACアドレスもありますが)。
インターネット上の住所であるIPアドレスとドメイン名の対応を行うのがDNSサービスでありこのサービスを提供するサーバがDNSサーバです。
IPアドレスは、私たちが、光回線やADSLなどを使用してプロバイダ経由でインターネット回線に接続する際にも提供されていますが通常は接続するたびに異なる値となります。
この接続毎に異なるIPアドレスと(サブ)ドメイン名を対応付けしてくれるのがDDNSサービスになります。
3.DDNSサービス提供業者
DDNSサービス提供業者は幾つかありますが、ここでは、無料でDDNSサービスを提供している家サーバを紹介します。家サーバではユーザー登録によりサブドメインを無償で提供してくれます。この提供されたサブドメインと自宅の可変IPアドレスとの紐づけをすることで家サーバはDDNSサービスを提供してくれています。
(1)登録手続き
こちらにアクセスしユーザ―登録を行います。希望するサブドメイン名と電子メール、パスワードを入力し登録します。サブドメインが未使用であれば登録できます。既に他のユーザーが登録済みの場合はエラーになるので別のサブドメイン名を探しましょう。
(2)IPアドレス設定
こちらにアクセスしIPアドレスを登録します。3ケ月アクセスがないとユーザー登録は削除されますので定期的にDDNS設定(サブドメインとIPアドレスの組み合わせ登録)を実施する必要があります。
(3)注意点
もしあなたが信頼性やセキュリティーを重視するのであればドメインレジストラーから.comなどのドメインを有償で取得し、(Value-domain等の)ドメインレジストラが提供するDDNSサービスを使用されることを推奨します。
なぜなら、無償でDDNSサービスを提供している業者はDDNSの対応に不具合があっても即対応してくれるとは限らない為です。自宅回線のグローバルIPアドレスとサブドメインの対応が間違えていると意図したサーバとは異なるサーバに接続しようとしてしまいます。
このリスクが許容できるのであれば無償のDDNS業者を使用しても問題ないでしょう。
4.DDNSIPアドレス自動通知
自宅回線のIPアドレスが変更になるたびに手動でIPアドレスをDDNS登録するのは現実的な運用ではありません。以下の手順で自動化します。
(1)DDNS自動登録スクリプト準備
ダイナミックDNSの登録を自動化するスクリプト準備します。Diceなどの自動化ツールが有名ですが家サーバではそのまま使用できるCGIスクリプトが用意されていますのでこれを流用します。スクリプトではIPアドレスの変更をチェックし変更があれば更新処理を実行してくれます。こちらのスクリプトをダウンロードし拡張子をplにします。
(2)CGIスクリプトの修正
CGIlスクリプトソース内のコメントに従い以下の変数を各自の環境に合わせて変更します。
1 2 3 4 |
$ACCOUNT = " "; # アカウント(サブドメイン)名設定 $DOMAIN = " "; # ドメイン名設定 $PASSWORD = " "; # パスワード設定 $DDNS_UPDATE = "https://ieserver.net/cgi-bin/dip.cgi"; # http→https |
(3)perlのインストール
CGIスクリプトはPerlなのでPerlをインストールする必要があります。以下の通りインストールします(CentOS前提)。
1 |
# yum -y install perl |
(4)CRON登録
①修正したスクリプトを以下に配置します。
/usr/local/ddns/ddns-update.pl
②登録
/etc/cron.d/に設定ファイルを作成します。
10分毎にスクリプトを実行する設定です。
1 2 |
# vi /etc/cron.d/ddns 7,17,27,37,47,57 * * * * root /usr/local/ddns/ddns-update.pl |
5.ホスト名変更
せっかく自宅サーバにサブドメイン名が割り当てられたのでホスト名を変更しておきます。
ここでは、「localhost.localdomain」から「hogehoge.dip.jp」に変更します。
(1)ホスト名確認
1 2 3 4 |
# hostnamectl Static hostname: localhost.localdomain 以下略 ~ |
(2)ホスト名変更
1 |
# hostnamectl set-hostname hogehoge.dip.jp |
6.ルータのポート転送設定
インターネットから自宅サーバに接続するにはルータでポートフォワード設定を実施する必要があります。ポートフォワード設定とはインターネット側に特定のポートを開きLAN内サーバの同一ポートに転送する設定です。設定手順はルータの機種に寄ってことなるので各ルータのマニュアルやヘルプを参考にしてください。
7.接続
外出先からSSH又はVPNで自宅サーバに接続する際に、IPアドレスではなく上記DDNSに登録したサブドメイン名をホスト名として指定します。ここではサブドメインの例として「hogehoge.dip.jp」を指定しています。
Tera TermでSSH接続する場合
OpenVPN for AndroidでVPN接続する場合
関連記事