自宅サーバをインターネットに公開する

日曜日。晴。
音楽を聴く。■モーツァルト:ピアノ・ソナタ第九番 K.311(ピリス、参照)。■リスト:巡礼の年〜第二年補遺「ヴェネツィアナポリ」 (ラザール・ベルマン、参照)。■マーラー交響曲第七番 (バーンスタイン NYPO 1965)。うーん、しんどかった。長大。
午後、カルコス。日曜日は客が多いな。

自宅サーバについてのお勉強。いわゆる「ポート開放」と「静的IPマスカレード」っていうのはだいたい同じ意味みたい。「静的アドレス変換」という語も同じように使われているみたいだ。ふつうは WAN(インターネット)側から LAN(家庭内のネットワーク)内に直接アクセスすることはルーター(WAN と LAN の間にあって両者を繋いでいる)が許可しないのだが、自宅サーバなどを立てるには直接アクセスが必要なので、それで「ポート開放」をするのである(参照)。また、LAN 内には家族がそれぞれ使う PC などがあるので、それらにはそれぞれプライベートIPアドレスが割り当てられているが、それらはふつう固定されておらずに変化する。なので自宅サーバに使う PC のプライベートIPアドレスは固定しておき(いわゆる「IPアドレスの固定」)、グローバルIPアドレスを、固定した(つまり「静的」)プライベートIPアドレスに変換してやる。それが「静的アドレス変換」。でいいでしょうか。
 ウチのルーターバッファローの WHR-HP-G。ここを見ると、ちゃんと静的IPマスカレードができるようです。
 で、http://192.168.11.1 から管理画面に入ったのだが、なぜかステータス等が表示されない。??? となってぐぐったりしたのだが、よくわからない。ちなみに OS は Linux Mint 17.2 なのだが、それは関係ない筈だしなあと悩んで、ふとブラウザを Chrome から標準の Firefox に替えたら、問題なく表示された。何なんだ、いったい。
 ポート開放はここを参考にできそうだ。
 いわゆる「ポート番号」だが、LAN 内のそれぞれの PC、というか個々の「ソケット」に割り当ててあるものらしい。$ netstat -an でわかるようである。IPアドレスにくっつけて使う。HTTP なら80番とか、決っているものもある。WAN 側からアクセスするときは、例えば10000番なら http://1.1.1.1:10000 のように、グローバルIPアドレスにくっつけて使う。

とりあえず、前に書いた(参照)ダイナミック DNS サービスである NO-IP に登録してみる。やり方はここなどを参照。
 気をつけるべきは これで、Linux 用の DUC を使うのだが、これは電源を切ったらリスタートさせなければならないかも知れない。要確認。確認くん
 ポート開放も、ここなどを参考にして、意外と簡単にできたよう。ポート開放は、別にそれぞれの PC には関係ないようだ。
 あとは、(プライベート)IPアドレスの固定。ここGUI でのやり方が書いてありますね。もちろん、CUI でやってもいい。これも完了。

さて、これですべて終了。以上の設定が正しければ、自宅サーバをインターネットに向けて公開できるということになる。
 では、確認しよう。まずサーバだが、僕はたまたま Ruby を使っているので、標準添付ライブラリのサーバである WEBrick を使ってみる(もちろん Apache ならさらにいいだろう)。WEBrick はものすごく簡単に動かせるので、試験にはちょうどいい。WEBrick は以前に試験的に動かしてみたことがあるので、それをそのまま流用しよう(参照)。WEBrick を立ち上げる Ruby プログラムを実行して、まずはローカルに接続。これは以前もやったので問題はない。では、本当に公開されているかインターネット側から見てみたいが、これは自分ではできないので、ここのページを利用させてもらう(とても便利です。ありがとうございます)。そして、結果は、大成功! うまく外から見えたようだ。これで最小限度の自宅サーバが実現できた。
 一応 URL を書いておこう。もう電源を切って寝るつもりなので、これを見ている人がアクセスできる可能性は殆どないでしょうけれども。
  http://obelisk68.ddns.net:19680/
であります。(AM1:52)