外部から自宅サーバー(web)にアクセスできるようにする手順

手順を追えば簡単だったのにかれこれ3週間もハマってしまったので、メモ。

設定内容

  1. サーバー側の設定
    • ファイアウォールの設定を変更し、80番ポートを許可する
    • CentOSの場合、セットアップ時にファイアウォール設定を有効にでき、iptablesを直接操作せずに開放ポートの管理ができます。(さっき気がつきました)
      GUIをいれていれば、設定メニューから操作可能。
      ※今回は根本のここの設定を忘れていてずっと弾かれていました・・・

    • apacheの設定を変更しServerNameにドメイン名を割り当てる
    • CentOSの場合
      # vi /etc/httpd/conf/httpd.conf
      でapache設定を変更できます。250行目付近にある設定
      #ServerName www.example.com:80
      のコメントを外し、
      ServerName [自分のドメイン]:80
      とします。

      今後、サービスを公開するまでには、httpd.confをもうちょっとカスタマイズしないといけない。

  2. ルーターの設定
    • 外部からの80番ポートのアクセスを許可する
    • [パケットフィルタの設定]を変更し、「TCP」「ポート80番」「双方向」のパケットの通過を許可します。

    • 80番ポートにアクセスされたときの行き先をサーバーのIPアドレスにする
    • 自宅にあるマシンは1台ではないので、外から80番ポートにアクセスが来た場合、どのマシンに割り振るかを設定する必要があります。
      前提として、自宅サーバーのLAN内IPアドレスは固定にしておきます。(192.168.X.X)
      自宅のルーターの場合[静的IPマスカレード設定]で「TCP」の「80番ポート」へのアクセスは「192.168.X.X」の「80ポート」に送るように設定。

確認方法

予め、httpd.confのデフォルト設定のDocumentRoot [“/var/www/html”] に
適当なindex.htmlファイルを作っておいておきます。

  1. 自宅から
  2. [サーバーのIPアドレス]/index.html

  3. 出先から
  4. [サーバーのドメイン]/index.html

どちらもアクセス出来ればOKです。

これを表示させるまでに…3週間…

自宅内からもドメイン名でアクセスする方法

自宅マシンも、サーバーも、ルータから見たときはLAN(内部)にあるマシンです。
基本、一旦LANから外に出た後、同じLAN内にパケットを戻すことはできないので
外へアクセスする方法(ドメイン)でLAN内にアクセスする事はできません。
ドメイン名でアクセスするためには、アクセスする側のマシンのhostsを書き換える必要があります。

  • Windows XPの場合
  • C:\WINDOWS\system32\drivers\etc\hosts

  • Linuxの場合
  • /etc/hosts

に設定ファイル(hosts)があるので、以下の設定を追加します。
192.168.X.X [ドメイン名]
これで、自分のマシンが外へアクセスしに行く前にLAN内へ問い合せてくれます。

やっと、第一関門のネットワーク設定が出来上がりました。
いよいよ中身に入れます。

歩みはとろいですが、少しずつ、少しずつ。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください