社内や自宅サーバーのグローバルIPアドレスが変わってもアクセスできるようにする

今やレンタルサーバーが年間でもおこづかい程度で借りられるのに、わざわざ自宅でサーバーを立てる必要も無いように思えますが、 数十TBのデータを置きたい場合や、会社内のパソコンのデータ置き場にアクセスしたい人もいると思うので書いておきます。
このページでは変わってしまうIPアドレスをどうするか、のみを解説します。 下記の方法を実際にやったわけではないので、内容は概要のみです。

自宅サーバーを建てる時にどうしても困るのが自前のサーバーのIPアドレスが変わることです。
専用線や固定IP契約をしていない限り、プロバイダーとの契約ではグローバルIPアドレスが接続の度に変わります。
そのアドレスが分からない以上、外部から接続するのは不可能で、 仮にサーバーの電源を入れっぱなしにしたとしても、 停電やブレーカーが落ちたり、何かのはずみでサーバーが再起動してしまった、一時的にでもプロバイダーから接続が切られた、などになった場合、IPアドレスは変わります。

そういったことがあっても自宅サーバーへの接続を可能にするサービスもあるので、自分自身でやる必要がなかったり、面倒な場合はそういったサービスを使うのも手です。
しかしこの場合、それらのサービスの終了と共に次の手を考える必要があるので、永久に使えるものではありません。

ここでは一般的なプロバイダー契約でも自分自身で出来る方法の概要を説明します。

通常、プロバイダー契約した場合、ユーザー用のサイトスペースが用意されます。
これを利用し、サーバーのIPアドレスを返すようにするわけです。

 CGIやPHPが使える場合
サイトスペースには
・ サーバーからアクセスする場合のページ
・ 外部からアクセスする場合のページ
それぞれを用意します。

サーバーからアクセスするページでは、アクセス元のIPアドレスを取得、保存するプログラムを置きます。 (認証やクッキーなどを利用し、そのPCからのみ可能とするとなお良いですね)
外部からアクセスするページでは、保存されたIPアドレスを返すプログラムを置き、そのアドレスにリダイレクトするなりの処理を行います。 (こちらも認証ページを設けるなどする方が良いですね)
こうすることで、常に現在のIPアドレスを持つサーバーへのアクセスが可能となります。
外部からアクセスする場合のアドレスは、当然ながらサイトスペースのアドレス、
例えばhttp://www.プロバイダー.ne.jp/~ユーザー/アドレス.phpなどになります。

 CGIやPHPが使えない場合
この場合、サーバーPCでグローバルアドレスを取得し、htmlファイルに現在のアドレスとリダイレクト設定を書き込み、FTPでサイトに送る方法が考えられます。
ブラウザを利用してできなくもなさそうですが、ソフトを作る方が早そうです。


サーバーにはWindowsを使っている場合、スタートアップフォルダに該当URLのショートカットや作ったソフトのショートカットを入れておくなどすると、 再起動をした場合でも起動後に自動でアドレスを送ることができます。
プロバイダーから切断されたなどの場合、一定間隔で該当URLにアクセスする、 一定間隔でサーバー自身のIPアドレス(もしくはルーターのグローバルアドレス)を取得し、比較して変わっている場合は再度該当URLにアクセスするプログラムを作る、 などの方法が考えられます。
停電などの電源断は、UPS(無停電電源装置)を置いたり、通電した時にスイッチを入れ、自動で起動するハードウェアを組み込むなどで運用できます。

こうすることでアドレスが変わっても常にサーバーにアクセスすることができます。
これはウェブサーバーだけでなく、社内のファイルサーバーも同様です。
今は個人店、企業を問わずウェブサイトを持っていることも多いので、 その場合、そこのサイトスペース(多くの場合PHP・CGIが使える)を利用できるので、やりやすくなります。
データを溜め込んでいる会社のパソコンに、出先からアクセスすることもできるので、活用できます。
データが少ない場合はGoogle DriveやDropBoxなどを利用する人も多いのですが、 普段使っている社内の共有フォルダに出先からアクセスできる方がよほど便利です。

問題は、プロバイダーやレンタルサーバーのサイトスペースでそういう挙動を許してくれるかどうかということもあります。
高負荷でなければ問題ないとは思いますが、責任は持てません。

また、全ての事においてセキュリティーはしっかり考えておきたいところです。



サンプル

著作権について
ファイルからデータの読み込み
ファイルへのデータの書き込み
フォルダ内のファイル名取得
アクセスカウンターの作り方
アンケートの作り方
フォームからのデータの取得
フォーム以外のページからのデータの取得
ファイル内、文章内の文字列の検索
パスワード認証の方法と作り方

0から始めるPHP

PHPのすすめ(これ飛ばしてもいい)
必要な環境とPHPへのアクセス
開発に使うもの
初めての方への注意点
PHPの基本(何らかの言語経験者向け)
PHPの基本(初めての人向け)
書き方
ファイルの読み込み

プログラミング講座
文字などの出力
PHPにおける変数
ifによる条件比較
forによる繰り返し処理
PHPにおける配列
これまでとこれからの学び方

PHPの使える
おすすめレンタルサーバー

スタードメイン

レンタルサーバーの選び方


その他

プログラミングのコツ
プログラマーと年齢
誰でも簡単にできるサーバー負荷対策
社内や自宅サーバーのグローバルIPアドレスが変わってもアクセスできるようにする

日記

2014年
日本語形態素データとキーワード出現回数
Androidベースのゲーム機に期待
4月末に判明したIEの脆弱性について
フラッシュプレーヤーの製作
ホームページとウェブサイトの違い
WIFIなどの用語は正しく使いたい
国産ゲーム会社のサイトについて
検索エンジンの開発について
プレインストールWindowsからの脱却
Android・iPhoneとアプリ開発
Windows8、スタートボタンはもういらない?
サイトの作成とやるやらないは別
あの人は詳しいと言う人と言われる人
index.htmlと/の正規化について
AndroidOSとLinuxOS
モバイル端末で必ず見るもの
ユーザー参加型市民アプリ

2013年2月
2013年1月
2012年12月
2012年11月
2012年10月
2012年9月