LANDISKを外部に公開するには、外部からのリクエストがLANDISKへ届くように、 ルータを設定する必要があります。
さらには、世界中からユニークな名前でアクセスできるよう、 DynamicDNSサービス等を使用する必要があります。
本章では、その辺のTipsを記したいと思います。

ルーターの設定 Edit

  • 静的IPマスカレード設定
    インターネットとLANDISKを接続するADSLモデムにパケットの通り道を設けて、
    インターネット上からLANDISKをアクセスできるようにしなければなりません。
    私のADSLモデム(ルーター)では、「静的(スタティック)IPマスカレイド」という
    機能を使用し、それを実現します。
    ルーターによっては「IPフォワーディング」や「アドレス変換」と表記された物もありますので、
    マニュアル等を参考に設定してください。

    さて、具体的な設定ですが、WEBサーバが通信に使うポートは通常80番ポートと決まっています。
    したがって、80番ポートに送信されたパケットは、何であれ、とにかく強制的にLANDISKのローカル
    アドレスへ転送するよう設定を行います。設定が終わったら外部から接続実験を行います。

  • 外部からの接続実験
    • まず/share/www/内にindex.htmlファイルを用意してください。
      (私のページを「名前をつけて保存する」等して適当に準備してください。)

    • 次に自分のグローバルアドレスを調べましょう。
      http://ipdetect.dnspark.com/ ← ここをクリックすると表示されるはずです。

    • 「 http:// グローバルアドレス /www/index.html 」と、ブラウザで自分自身をアクセスしてください。
      大抵の場合エラーが出てうまくいかないと思います。これはルーターが自分自身のアドレスを
      インターネットの外に探しにいったためです。

    • 発想をかえて、外部のコンピュータにLANDISKのアドレスをアクセスさせてみましょう。
      携帯電話のi-modeを使ってアクセスしてみても良いですが、もっと簡単な方法があります。
      exciteのWebページ翻訳を使用して自分のページを英語等に翻訳してみます。
      (翻訳サーバは、翻訳用の原文を取得するためにLANDISKをアクセスするはずです。)

    無事、外部からアクセスできることを確認できたでしょうか?
    もし、アクセス制限をかけているディレクトリ等があるならば、ついでに、アクセスできないことを確認しておくと
    より安心でしょう。

Dynamic DNS の登録 Edit

  • 初めに
    私の環境では、プロバイダから割り当てられるIPアドレスは約3日毎に 変化します。
    Dynamic DNSとは、そのような不定期かつ高頻度に変化するIPアドレスとHOST名の対応付けを
    してくれるサービスです。

  • Dynamic DNS 探し
    google等で"無料 Dynamic DNS"等のキーワードで検索すると、
    サービスを提供している業者さんがたくさん見つかると思います。
    私は次のDynamic DNSサービスを使わせていただくことにしました。

  • DNSの更新
    DNSの更新は、通常、DynamicDNSサービス業者が指定する特定ページをアクセスして行います。
    Dynamic DO!.jp の場合は次の様にWEBブラウザでアクセスします。
    http://free.ddo.jp/dnsupdate.php?dn=ドメイン&pw=パスワード 
    または、ブラウザの代りに wget コマンドを使うこともできます。
    wget -O - 'http://free.ddo.jp/dnsupdate.php?dn=ドメイン&pw=パスワード'
    ここでは後者の wget コマンドを用いた例を紹介します。
    そのまえに、肝心要のwgetコマンドをインストールしましょう。

  • wgetのインストール
    (既に入っているかも!!)
    landisk:~# apt-get install wget
  • 動作確認
    wgetコマンドでDDNSの更新ページをアクセスしてみましょう。(各自の環境に合わせてください。)
    landisk:/# wget -q -O - 'http://free.ddo.jp/dnsupdate.php?dn=ドメイン&pw=パスワード'
    <html><body>
    <a href="http://ddo.jp/">Dynamic DO!.jp</a><br>
    SUCCESS: eggplant.ddo.jp <= [ xxx.xxx.xxx.xxx ]<br>
    IPアドレス更新完了.<br>
    ※IPアドレスに変更がありませんため、パスワードはチェックしておりません。<br>
    2005/12/05 00:57:25<br>
    <input type="button" value="閉じる" onclick="window.close();">
    </body></html>

DDNSの自動更新 (*.ddo.jpの例) Edit

  • ddns-cron … DDNS自動更新スクリプト
    cronでDDNSを定期的に更新するためのスクリプト、ddns-cronを作成します。
    (作成後、実行属性をセットすること。)
    #!/bin/sh
     
    DATE=`date +"%Y/%m/%d %X"`
     
    wget -q -O - 'http://free.ddo.jp/dnsupdate.php?dn=ドメイン&pw=パスワード' | \
    awk '$0 ~ /SUCCESS/ || $0 ~ /FAIL/ { print date, $0;}' date="$DATE" >> /var/log/ddns.log
  • スクリプトのテスト
    /var/log/ddns.logに結果が出力されます。
    landisk:~# ./ddns-cron
    landisk:~# cat /var/log/ddns.log
    2004/07/11 17:37:19 SUCCESS: eggplant.ddo.jp <= [ 218.230.147.84 ]<br>
    
  • cronで定期的に更新
    1時間毎に、DDNSの更新を行うよう、ddns-cronを、/etc/cron.hourly/ディレクトリに移動します。
    landisk:~# mv ddns-cron /etc/cron.hourly/
    

hostsファイル Edit

  • LAN内からアクセスできない
    LANDISKは、eggplant.ddo.jpという名前で、世界中の何処からでもアクセスできるようになりました。
    しかし残念なことにローカルネットワーク(LAN)内のマシンからは、その名前を使ってアクセスすることができません。

    本問題を解決するために、eggplant.ddo.jpのエイリアスをhostsファイルに記述する方法を紹介します。
    次の記述をLAN内のマシンのhostsファイルに追加してください。
     192.168.0.80 landisk
     192.168.0.80 eggplant.ddo.jp
    # (注:192.169.0.80はLANDISKのローカルアドレスを指定してください。)
    # (注:eggplant.ddo.jpはDDNSに登録したLANDISKの名前を指定してください。)
    
    • Windows XPの場合
      C:\WINDOWS\system32\drivers\etc\hosts
    • MacOSX 10.3(Panther)の場合
      /private/etc/hosts
    これでLANDISKへLANの内側からアクセスする時も、外側からアクセスする時も、eggplant.ddo.jpという名前で区別なくアクセスできるようになります。

    Counter: 10937, today: 3, yesterday: 0

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2006-06-13 (火) 20:02:26 (6690d)