作成開始 : 平成22年05月05日(水) 最終更新 : 平成22年09月12日(日)

(私的) 自宅サーバー公開方法


各ページにアンケート・フォームを設置してご感想やご意見などをいただくようになってから、たまに「自宅サーバーの公開方法について教え て・・・」というような内容の投稿をいただくことがあります。
そういえば、当サイトの記事に「自宅でサーバーを公開」するのに解説した記事がないことに気づきました。
また、この頃ではページの内容にも丁寧さが欠けてきているなぁーと感じてきていました。

そこで、初心にかえり自宅でサーバーを公開する方法をとりまとめてみることにしました。(あくまでも "私的" です)
この記事で、ネットワークやサーバーに感心を持っていただけたら幸いです。

なるべく分かりやすい内容になるよう努めますが、そうでない部分はご容赦願います。
なお、細かい設定方法やセキュリティの確保については自己責任でお願いいたします。

本記事は動的IPv4アドレス(PPPoE接続)で自宅サーバーを公開する方法で書かれています。
IPoE接続のみでは実現できません。(令和6年[2024年]03月20日[水] 追記


1.自宅サーバーのメリットとデメリット

(1) メリット
a.低スペックのPCでも動作するので使い古しのを再利用できる。
b.機能的に制限が無い。(容量、転送量、CGI、その他プログラムでも無制限に使える)
c.ネットワークやサーバー構築を通じてスキルアップができる。
d.ほぼ無料でかなり楽しめるし感動を味わうことができる。
e.自宅サーバーつながりでコミュニケーションが図れる。
(2) デメリット
a.サーバーの運用管理が必要。
b.常に外部から狙われる危険性があるので、セキュリティー面に気を使う必要がある。
c.24時間連続稼動しているので、電気代がそれなりにかかる。(エコに反している ?)
d.静音タイプでないPCだとファンやHDDの音が気になり静音対策が要る。夏場は熱対策も・・・

2.公開するために必要なもの

(1) インターネット接続契約
回線接続業者さんとの回線利用契約とプロバイダさんとのインターネット利用契約ですね。

プロバイダさんとのインターネット利用契約では、一般的には動的IPアドレスという接続動作のたびに割り振られるIPアドレスを使いま す。
その他に固定IPアドレスサービス(IP1とかIP8、IP16など)を提供しているプロバイダもあります。
DNSサーバーやメールサーバーを設置して公開する場合は固定IPアドレスが適していますが、少々お高いです。
本資料では、動的IPアドレスを利用しての公開方法として記載します。

回線はADSLとかFTTH(光接続)でしょうか。FTTHには戸建向け、マンションなどの集合住宅向けなどがあります。
ケーブルテレビとかのネット接続環境ではサーバー公開できない場合があります。事前に調べておく必要があるでしょう。
(2) インターネット利用環境
まずは、パソコンですね。これだけでも公開できるかも知れませんがルータがあるといいです。いわゆるブロードバン ド・ルータですね。複数のLANポートがあればなおいいです。
パソコンもできればサーバー機用に普段使われるのと別にあるといいです。
テスト段階で自宅内でのテストの時に便利ですし、公開してから自分が使っているパソコンにアクセスされるのもどうかと・・・・
あと、LANケーブルですね。
(3) おすすめ構成 ・・・・ (戸建向けで書いています。)
サーバーPCをDMZに置いたり、ファイアウォールを使ったりと色々な構成がありますが、ここでは最も簡単と思われ る方法で記載しました。
おすすめ環境
・ADSLならモデム内蔵ルータ、FTTHならONU内蔵ルータが場所とらなくていいです。
・サーバーPCは常時稼動するのでノートPCなんかいいと思います。停電してもバッテリがあるのでいきなり落ちることもないし。
・LANケーブル配線では室内の美観が損なわれる場合、無線LAN利用でもよいでしょう。
(4) 根気と努力 (?_?)
ある程度苦労しながら出来た時の感動は格別です。

3.公開する前の準備

(1) ネットワーク(LAN)の設計
LAN内にある機器のIPアドレス、サブネットマスク、ネットワーク名、コンピュータ名を決めておきましょう。
特にサーバーPCはネットワーク情報の自動取得(DHCP)ではなく、固定IPとして設定しましょう。
例)
ネットワークアドレス : 192.168.1.0  サブネットマスク : 255.255.255.0  ネットワーク名 : takaq.jp
ディフォルトゲートウェイ : 192.168.1.1 優先DNS : 192.168.1.1
自動取得範囲 : 192.168.1.20 から 20個
機器名 コンピュータ名 IPアドレス
ルータ Router 192.168.1.1
サーバーPC Server 192.168.1.2
クライアントPC Client 自動取得
TCP-IP ネットワークとかもう少し学習したい方は こちら へどうぞ。
(2) サーバー機用OSの選択
Windows, Mac, Linux, FreeBSD 等があります。
LinuxやFreeBSDでCUIモードだと古いPCでもかなり軽快に動作します(GUIモードではそれなりに重い)。ただ、コマンド やエディタの使い方など学習すべきことが結構あり敷居が高いと感じる場合は使い慣れた Windows からスタートしてもよいでしょう。
(3) サーバー機用ソフトウェアの選択
Webサーバーでは、Windows だとエディションによって IIS とかが標準で付属しています。また、Windows上で動作するフリーのサーバー・ソフトウェアが多数あります。
Windows 向けの Apache もあります。
Linux, FreeBSD 等のUnix系では Apache が定番でしょう。

Webサーバーの他にはメールサーバー、FTPサーバーが次ぎに試したくなるソフトウェアでしょう。
(4) OSやソフトウェアのインストール、設定
「鷹の巣」の自宅サーバーさんを基点に自 分に適したものを見つけるとよいでしょう。
自宅サーバーWebRing(ウェブリン グ)にはおそらく全てのOSに関するドキュメントがあると思います。

本資料では、詳細は省略いたします。
(5) Webサーバーのテスト (Webサーバーを公開するものとして記載します)
Webサーバーのインストール、設定が済みテスト用のページを保存したらWebブラウザでアクセスしページが表示さ れるかテストします。
クライアントPCから 「 http://サーバーPCのIPアドレス 」を入力してみます。
うまく表示できない時は、サーバーPCの設定を見直したりしてみます。
(OSやセキュリティソフトのファイアウォールで外部からのアクセス許可を忘れないように・・・)

IPアドレス指定ではなんとなく面白くない場合、クライアントPCの hosts ファイルに IPアドレスとホスト名を書いてもよいでしょう。
この段階では、LAN内にDNSサーバーがないのでこの方法で名前によるアクセスをします。

hosts ファイルは Unix系だと /etc WindowsXPだと C:\WINDOWS\system32\drivers\etc にあります。
例) ・・・・ この場合 「 http://Server.takaq.jp 」ですね。

4.インターネットへの公開

(1) ルータの設定
インターネットから http によるアクセスがあった時に目的のサーバーPCに到達できるよう設定します。
その前に、ルータのセキュリティ設定としてフィルタリングの確認をしましょう。
フィルタリングには、基本設定として「許可」と「拒否」があるようです。
フィルタリング基本設定
「許可」の場合、特にルータの設定をいじることなく機器を接続することで通信が可能ですが、反面セキュリティ上で不 正アクセス等の心配があります。
「拒否」の場合、セキュリティは確保できますが必要な通信ポートを調べて開放してあげなければなりません。
ケーム機やインターネットラジオ、ライブカメラなどで使用する通信ポートを調べて「穴を開ける」ような感じで設定します。

私の場合は「拒否」設定とし、インターネット->LAN、LAN->インターネットで必要な通信ポートを調べて設定していま す。
ポート番号 - Wikipedia -> ここを基点に調べられます。機器固有のはマニュアルとかでどうぞ。
次は目的のサーバーPCへ向かわせる設定です。
Webサーバーでは、基本ポートとして TCP 80 を使用します。下図のように Server へ向かうように NAPT設定します。
ポート80フォワード
こんな感じです。
※もうお気づきかもしれませんが、Webサーバーのポート番号を別にしての公開も可能です。
 例えば、通信ポートを 8080 にした場合、ルータのNAPTでポート:8080を目的のPCへ向かうように設定します。
 アクセスする方は 「 http://目的のサイト:8080 」と入力します。
(2) インターネットからのアクセス確認 ( IPアドレスによるアクセス)
プロバイダから割り当てられたIPアドレスを使ってインターネットからアクセスしてみます。ルータの設定が正しく行 われたことの確認ができます。
ただ、自宅LAN内からのアクセスでは、ルータによりますが「認証画面」を表示してしまうものがあります。
こんな時は、あらかじめ友人などと連絡をとりあって「プロバイダから割り当てられたIPアドレス」によりアクセスしてもらうとよいでしょ う。
または、CyberSyndrome - The Proxy Search Engine のような外部のプロキシサーバーを使う手もあります。
プロバイダから割り当てられたIPアドレスを知る方法としては、ルータにログインして調べる方法とアクセスしている IPアドレスの表示を置いてあるサイトで調べる方法があります。
ルータで調べる
そうです。インターネットに公開するのは、LAN内のIPアドレスではなく、「プロバイダから割り当てられた IPアドレス(グローバル・アドレス)」です。
あなたのIPアドレスは です。 -> 参考にしてください。
そして、「 http://プロバイダから割り当てられたIPアドレス 」と入力します。
(サーバーPCのOSやセキュリティソフトのファイアウォールで外部からのアクセス許可を忘れないように・・・)
うまく、サーバーPCのコンテンツを表示したら「自宅サーバー公開の第一歩がクリア」できたことにな ります。
※テストしてみたい方はメー ルとかで連絡いただければお付き合いいたします。(時間にもよりますが・・・)
(3) 名前によるアクセス (名前解決)
IPアドレスによるアクセスでは誰によるどんなサイトなのかさっぱり分かりません。
そのため、名前(ドメインネーム)によるアクセスができるようにする必要があります。それが、DNS(Domain Name Service)と呼ばれる仕組みです。
ドメインネームとはインターネット上の住所に相当し、IPアドレス同様、世界で重複することのないたったひとつのものです。
この名前とIPアドレスの対応を管理しているのが DNSサーバー です。
名前解決の概要
DNSには、固定IPで名前解決させる方法と動的IPアドレスに対して名前解決してくれる「ダイナミックDNS (DDNS)」といわれるものがあります。
独自ドメインでサーバー公開するにはドメインの取得が必要になりますが、手軽に公開するにはサブドメインを利用したDNSを利用するのが よいでしょう。
「ダイナミックDNS」で検索すると無料でサービス提供してくれるところがあります。

ちなみに・・・・無料ダイナミックDNS 比較 なんかも参考になるでしょう。
PTRレコード、MXレコードなんかも提供してくれます。

動的IPアドレスに変更があった時や一定期間内に更新を通知する事で、特定のドメイン名で自宅サーバー運営が可能になります。
ここ をクリックで名前解決がうまくいっているか確認できます。
私は自宅サーバー公開を考えていた頃に「ぷらら」がダイナミックDNSサービスを始めたというので、それを利用する ことにしました。
ただ、「ぷらら」のダイナミックDNSサービスは A レコードしかないので逆引きができません。
でも、動的IPアドレスが変更(ルータ再起動とか)になっても即時に反映してくれます。
また、mail.takaq.plala.jp とか www.takaq.plala.jp なんていう設定はできません。
ですので、Webサーバーもメールサーバー、FTPサーバーも全て takaq1.plala.jp で運用しています。
nslookup
動作イメージ
これで、やっと「 http://ドメインまたはサブドメイン 」でのアクセスが可能になります。
コンテンツの容量を気にしなくてもいいし、データベースやCGI, PHP などの動的コンテンツも設置し放題です。
テストの時は、あらかじめ友人などと連絡をとりあってアクセスしてもらうとよいでしょう。
または、CyberSyndrome - The Proxy Search Engine のような外部のプロキシサーバーを使う手もあります。
※テストしてみたい方はメー ルとかで連絡いただければお付き合いいたします。(時間にもよりますが・・・)
うまくできていると、ルータのアクセスランプ点滅するしWebサーバー・ソフトのアクセスログに書き込まれます。
この時が一番感動するかもしれません。

5.他のサーバー・アプリケーションの公開

さて、Webサーバーの公開がうまくいくと他のサーバー・アプリケーションの公開をしてみたくなります。
しっかりとしたメールサーバーを構築するには固定IPでDNSサーバーがあり、MXフィールドを持つべきですが、動的IPでDDNSにAレ コードしかない私のところでも運営できているので紹介いたします。
(1)メールサーバー
メールサーバーの概要は下図のようになっています。
メールサーバーの仕組み
メールサーバーについては、近年増えたスパムメール対策のため、動的IPアドレスから出されるメールを規制しようと するプロバイダが増えました。
いわゆる OP25B (Outbound Port 25 Blocking) というものです。
OP25Bの影響を受ける場合の対策の1つは、25番ポートを使わない方法を探ることです。

 いくつか方法がありますが、最も確実な方法は、「Submissionポート」と呼ばれる587番ポートを使うというもの。 Submissionポートは、25番ではなく587番のポートを送信用のポートとして使う方法です。これなら、いくら25番をブロック されようと影響がありません。

また、プロバイダによっては「中継サーバー」を用意しているところもあります。
このあたりは、プロバイダのサイト等で調べてみる必要があります。

当サイトのプロバイダは「ぷらら」なので「ダイナミックDNSサービス」を提供しているためか、メール中継サーバーを利用することができ ます。
なので、送信メールは25番ポートを使う方法で記載します。
a.ルータの設定
インターネットからのメール受信(TCP 25)がSMTPサーバーに向かうように設定をします。
また、インターネットからメール取り出し(TCP 110)ができるようPOPサーバーに向かう設定をします。(ただし、これは要注意)
メールの設定だよ
b.サーバー・ソフトの選択、設定
これについても「鷹の巣」の自宅サーバーさ んを基点に自分に適したものを見つけるとよいでしょう。
自宅サーバーWebRing(ウェブ リング)にはおそらく全てのOSに関するドキュメントがあると思います。
できれば、上位の中継サーバーを設定できるタイプのがよいと思います。

本資料では、詳細は省略いたします。

私の環境は、OSがFreeBSDなので SMTPサーバーは sendmail、POPサーバーは qpopper にしています。
必須の設定としては、不正中継されないための設定と、不正にメールを取り出しされないようにすることです。
私の環境では、SMTPについてはメール送信の中継をLAN内のみに許可しています。
メール受信については、ブラックリストを参照するのとスパムメールの内容を調査して受信拒否登録しています。
POPについては、仕事先の特定ドメインとLAN内のみ許可しています。
ある程度設定ができたら不正中継チェックをしてみましょう。不正中継チェックは以下のサイトでできます。
Mail relay testing 「Address to test:(as host name or dotted quad)」欄にメールサーバのホスト名またはIPアドレスを入れ、「Test for relay」ボタンを押すとリアルタイムでチェックしてくれます。全17目のテストを行ってくれます。
RBL.JP 全16項目のテストを行ってくれます。ここは、ブラックリストも提供しています。
テストに備えてアカウントを登録します。登録したら、クライアントPCから自分で自分のアカウントあて送信して みましょう。
無事に送受信できたらOKです。
c.準備すべき環境
送受信テストするのに以下があると便利です。
・プロバイダのメールアカウント
・携帯電話のメールアカウント
d.テスト
まずは、プロバイダのメールアカウントへ送信してみます。そのメールアカウントで送ったメールの取り出しが出来 たらOKです。
そしたら、次は携帯電話のメールアドレスへ送信し携帯電話に受信できたらOKです。
送信テストは比較的すんなり行くと思います。(ただし、OP25Bに引っかからなければですね)
次は受信テストです。プロバイダのメールアカウントから送信してみます。受信したメールの取り出しができたら OKです。
そしたら、次は携帯電話のメールアドレスから送信してみます。受信したメールの取り出しができたらOKです。
受信できない時は、プロバイダからのリターンメールを確認したりメールサーバーのログを確認して調整しテストを繰り返します。
私がハマったのは、「インターネットから見たメールサーバーのホスト名」(sendmailだと /etc/mail/local-host-names )の設定です。
これをキチンと書かないとメールの受信ができませんでした。

送信よりも受信の方が難しいです。
e.運用開始
以上ができたら正式に使い始めます。
まずは、Webサイトにウェブマスタのアドレスを書いてみましょう。なんか格好いいですね。
それから、WebサーバーにWebメールのスクリプトとか置いて外出した時に利用するなんてのいいかもしれません。
(2) FTP サーバー
外部からWebサイトのコンテンツをアップロードしたり、資料保管庫のように使うには FTP (File Transfer Protocol:ファイル転送プロトコル) サーバーを構築するのがいいでしょう。
a.サーバー・ソフトの選択、設定
これについても「鷹の巣」の自宅サーバーさ んを基点に自分に適したものを見つけるとよいでしょう。
自宅サーバーWebRing(ウェブ リング)にはおそらく全てのOSに関するドキュメントがあると思います。

本資料では、詳細は省略いたします。
注意点としては、アクセスする場所をユーザのアカウント位置のみに止めておき、システム領域に行けないように設 定することです。
また、「anonymous FTP(アノニマスFTP)」(匿名アクセス)はできればできないようにした方がよいでしょう。
使用する場合は、ファイルのダウンロードはできるがアップロードはできないようにしましょう。
(ファイルを大量に送られるような攻撃されちゃいます)
インストールと設定がひととおりできたら、まずは LAN 内でテストします。
クライアントPCのコマンドでもいいですし、FFFTPとかのフリーソフトでもよいでしょう。
Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

C:\Documents and Settings\takaq>ftp armada
Connected to armada.takaq.jp.
220 Armada.takaq.jp FTP server (Version 6.00LS) ready.
User (armada.takaq.jp:(none)): isao
331 Password required for isao.
Password:
230 User isao logged in, access restrictions apply.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for '/bin/ls'.
total 20
-rw-r--r-- 1 1006 1006 771 Jul 27 2008 .cshrc
-rwxr--r-- 1 1006 1006 19 Feb 12 2003 .htpasswd
-rw-r--r-- 1 1006 1006 255 Jul 27 2008 .login
-rw-r--r-- 1 1006 1006 165 Jul 27 2008 .login_conf
-rw------- 1 1006 1006 371 Jul 27 2008 .mail_aliases
-rw-r--r-- 1 1006 1006 331 Jul 27 2008 .mailrc
-rw-r--r-- 1 1006 1006 789 Jul 27 2008 .profile
-rw------- 1 1006 1006 276 Jul 27 2008 .rhosts
-rw-r--r-- 1 1006 1006 852 Jul 27 2008 .shrc
drwxr-xr-x 6 1006 1006 512 Apr 18 12:19 public_html
226 Transfer complete.
ftp: 543 bytes received in 0.00Seconds 543000.00Kbytes/sec.
ftp> close
221 Goodbye.
ftp> bye
b.ルータの設定
PORTモードで説明します。
TCP 21番 を目的のPCへ向かうようにします。ファイルの送受信をする場合は TCP 20番 も目的のPCへ向かうようにします。
FTPの設定
d.テスト
この場合も、友人などの協力をもらってアクセスしてもらってもよいでしょう。
Webサーバー公開で名前によるアクセスはできているので、名前でアクセスしてもらいましょう。
または、Webサーバーが公開されていればおそらく常時稼動になっていると思いますので、外部から接続テストしてみてもよいでしょ う。

これで、とりあえず自宅サーバーを公開することができます。
詳細な説明は省き公開するための手順概要みたくなってしまいました。
ネットワークやサーバーOS、サーバーソフトなどの詳しい資料は他のサイトを参考にしていただければ幸いです。


平成22年09月12日(日) 追記

サーバー監視【無 料】 でネットワーク関連の色んなチェックができます。
サイト構築に役立つと思います。

サイトトップへ