固定IPなしで公開サーバー

普通インターネット上に公開サーバーを立ち上げるには固定IPを取得しますね。ドメインも必要です。しかし、万人向けのサービスでなくて、リモートで自宅のホストを操作したいとか、その程度の要望というのもあるでしょう。この場合わざわざ固定IPは必要ないですし、ドメインなんてもちろんいりません。

Webサーバーを立ち上げるのにドメインがあればカッコはつきますが、不特定の相手に公開するのでなければ必要ないし、蛇足になりかねません。と、いうのはドメインを使うにはネームサーバーを立てねばなりません。、UNIX互換のOSの場合、bind というデーモンを利用することが多いのですが、この bind はセキュリティホールの宝庫状態でして(それ自体の問題もあるが、設定もややこしい)、これがもとでホストが乗っ取られるということがよく起こります。触らぬ神にタタリなしということですね。

さて、ドメインはいらないとして、IPが固定でないと困ります。出先で自分の家のホストのアドレスがわからないのですね(そりゃそうだ)。つなぎっぱなしならとりあえずそれを覚えとけ、というかもしれませんが、残念でした!ADSLではしょっちゅう繋ぎなおしが起こるので、どんどんアドレスが変わってしまうのです(知ってましたか?)。CATV(私は以前JCOMを使っていた)では繋ぎなおしても同じのが振られることが多かったですが.....(でもJCOMはサーバー禁止(泣))。

で、ここで考えます。違うアドレスが振りなおされたらそれをお知らせするシステムを作ればよいのだ!

まあ、たいしたアイデアではないんですけどね(^^;)。

もっとも普通なのはメールですかね。あと、プロバイダとかのレンタルスペースにホームページを持ってればどっかに書き込んじゃうとか。まあ、いろいろありますね。



◆実現方法

まずはインターネットへのゲートウェイとなるホストでゲートウェイデバイス(ethX, ADSLではppp0, など)の監視をするデーモンを走らせます。私は perl で作りましたが、適当に sleep して ifconfig コマンドとかで調べればいいので、シェルスクリプトでも充分簡単に書けます。こいつは適当な間隔で起きてアドレスを調べて、以前のと違ったらアクションを起こします。アクションは先に書いた「メール」だったり「FTP」だったりします。公開してもよいですが何せたいしたものではありません(^^;)。要望があればね。

とりあえずこれで、どこにいてもじぶんちのネットワークは迷子になりません。遠隔地から SSH なんかで操作すればよいですね。


■WEBサーバーを立ち上げる■

特に意味があるとも思えませんが、たとえばWEBサーバーとかも簡単に公開できます。ゲートウェイとなっているホストで Apache を動かすのが簡単です。

アドレス監視プログラムのアクションで、以下のようなHTMLを作成し、レンタルスペースとかに送る。もちろん XXX.XXX.XXX.XXX はアドレス、hoge は公開したいディレクトリ。。

<HTML>
<HEAD>
<TITLE>
WELCOME!!
</TITLE>
</HEAD>
<BODY>
<BR>
<BR>

<A href="XXX.XXX.XXX.XXX/hoge" target="_top">
Welcome to hogehoge !!
</A>

<BR>
<BR>
</BODY>
</HTML>
このページに飛ぶリンクを作っておけばこのページを中継してゲートウェイへ飛べます。めでたし、めでたし。 META タグで自動で飛ばしてもいいかもしれません。

しかし、私はゲートウェイマシンが非力なので(古いノート)、LAN 内のホストで Apache を走らせるのが理想かと思います。そのためにはパケットを転送せねばなりませんが、あるのですね、すばらしいモノが!!

仙石 浩明氏のページからたどれる TCP & UDP パケットリピータ stone です。すばらしい(感)!!これは他にもいろいろな応用ができそうです。

この stone をゲートウェイマシンで走らせて、あと、どうするか.....。面白そうです。



.....その後

stone を実際に走らせてみました。思い通りのことができました。

ゲートウェイマシン上に stone をインストール(私は実行ファイルを /usr/local/sbin に入れた)、で

/usr/local/sbin/stone hoge:80 10080 &

LAN内でプライベートアドレスを持つホスト hoge 上で 80番ポートを使用して Apache を走らせる。

これでLAN外部からでも、ゲートウェイマシンの10080番ポートにアクセスすることにより、hoge のApacheのお世話になることができました。ああ、そうそう、さっきのアドレス監視で作成するHTMLは以下のように直します

<A href="XXX.XXX.XXX.XXX/hoge" target="_top">

<A href="XXX.XXX.XXX.XXX:10080/hoge" target="_top">

つまり、ポート指定をする、ということですね。通常はデフォルトの80番が使われているのです。



トップページ