インターネット経由でもアクセスできる多目的ホームサーバーの使用開始: メディアストリーミング、ゲームサーバー、ファイルストレージ/バックアップ

インターネット経由でもアクセスできる多目的ホームサーバーの使用開始: メディアストリーミング、ゲームサーバー、ファイルストレージ/バックアップ

始める前に、このトピックを検索したことを述べておきます。どの結果も、多目的ホーム サーバーに関する私の質問に答えていないようです。

こんにちは皆さん!

以下の目的でホームサーバーを構築したいと考えています。

  • アクセス権を持つPCからファイル/メディアをバックアップとして保存する
  • 当該メディアを、サーバーに接続された特定のコンピューターまたはテレビにストリーミングする
  • minecreaft/terraria/etc のゲーム サーバー (これは 100% の時間実行されるわけではなく、必要に応じて他のタスクのためにメモリを解放するためにオンとオフを切り替える必要があります)
  • インターネットからファイルにアクセスし、そこからストリームすることで、必要に応じてどこからでもアクセスできるようになります。

複数のアカウントを設定して、家庭内の多くのユーザーがプライベート権限で自分のファイルを持ち、それぞれが自分だけがアクセスできるメディアをストリーミングできるようにしたい(ゲストを除くすべてのユーザー向けのパブリック ストリームも同様)

また、可能であればインターネットからもアクセスできるようにしたいと思っています。こうすれば、本当に必要なときにどこからでも接続してファイルを取得できます。外部 IP が固定ではない可能性があるため (残念ながら私が利用している ISP である comcast などの多くの会社では、外部 IP が時々変更される可能性がありますが、頻繁ではありません)、これは実際には非常に難しいことかもしれません。クライアントにダイナミック DNS サービスを提供する namecheap からサーバーのドメイン名を購入しました。こうすることで、外部向けの IP を正しく更新できます。

私の経歴について少し説明します。私は物理学と電気工学を専攻し、副専攻としてコンピューターサイエンスを学んでいます。C、C++、Python についてはある程度理解しています。しかし、PHP やその他のサーバー言語については理解していません。Windows/OSX/Linux には精通していますが、Linux/ターミナルのスキルは一流ではありません。

以前、自宅にウェブサーバーを設置しようとしたことがありましたが、学校が忙しくなり、それを続けることができなくなりました。また、自宅からウェブサイトをホストするのは、信頼性が低く、セキュリティ上の問題が多いなど、通常は最悪なアイデアだということもわかりました。今は時間に余裕があるので、ゲームもホストできる自宅のメディアおよびファイル サーバーを作成し、ファイルを簡単にバックアップして保存できるようにしたいと考えています。

これらすべてをどのように開始すればよいですか? サーバーが Windows/OSX/Linux と互換性があることをどのように確認すればよいですか。

私は Linux サーバーにしたいと思っていました。おそらくそれが最高だとわかっているからです (私は Linux マスターではありませんが)。

インターネットに接続できる場合 (どこからでもこれらのファイルにアクセスできるようにするため)、どのようにセキュリティを確保すればよいですか? 特定のユーザーだけがログインできるようにするにはどうすればよいでしょうか?

検討しているコンピューターは決まっています。これがその仕様です。追加のアップグレードはありません (つまり、RAM は元々搭載されていた 8GB です)。付属しているものがすべてです。

リストに挙げたハードウェアは持っています。これは私がしばらく前に手に入れた非常に古い(つまり6年前の)デスクトップです。これを部分的にプロジェクトにしたいのですが、簡単に習得できるものにしたいのです。ストリーミング サービス アプリケーションを自分で書きたいわけではありませんが、ネットワーク デバイスの基本や、ファイル転送/リモート コントロールなどのためにサーバーをインターネットに接続する方法を学びたいので、すべてを「設定して忘れる」ようなものにしたくはありません。

すべてを仮想化することが最善かどうかは、次の 2 つの理由からわかりません。1) 仮想化にはより多くの RAM が必要です。2) このジョブには少し複雑に思えます。すべてをリモートで完全に制御できるようにしたいのですが、仮想マシンがダウンした場合、リモートで起動するにはどうすればよいでしょうか? (これは実際には問題ではないかもしれません)

Plex や OwnCloud など、いくつかのものを検討しましたが、それらが統合されていることを確認したいです (つまり、OwnCloud を使用してサーバーにメディアをアップロードし、それを Plex でストリーミングできます)。代替案については完全にオープンです。Plex と OwnCloud について言及したのは、調査で出てきたからです。また、複数のユーザーが同時にサーバーにアクセスできるようにしたいです (同じまたは異なるメディアで同時に複数のデバイスにストリーミングしたり、他のユーザーがストリーミングしている間にファイルをダウンロード/アップロードしたりなど)。

答え1

個人的な経験から言うと、ホーム サーバーの設定は想像以上に複雑です。行動を起こす前に構成プロセスを計画しようというあなたの意図に感謝します。

  • まず、ハードウェアを考慮するデスクトップ コンピューターは日常使用に耐えられる信頼性がありますか? ドライブと RAM のメンテナンスは簡単に行えますか? 2 年後にサーバーの部品が見つかりますか? 屋根裏にある古いデスクトップを改造する (信頼性は犠牲になりますが安価です)、NAS を購入する (パフォーマンスは犠牲になりますがネットワーク接続ストレージです)、または自分でタワーを構築する (高価ですが最も柔軟性があります) という選択肢があります。
  • 2番、特定のオペレーティングシステムまたはディストリビューションを調査する使いたいものを選択してください。5 回のうち 4 回は Linux ディストリビューションを使用することになるでしょう。サーバー指向のディストリビューションは数多くあるため、名前を挙げることさえできません (ただし、どうしてもという場合は、最も人気のあるのは Ubuntu Server と CentOS です)。
  • ドライブ構成を選択します。これは長期的には非常に重要です。ドライブは 1 年、5 年、15 年で故障する可能性があるため、オフサイト バックアップに帯域幅を無駄にしたくないからです。ハードウェア RAID は必須です。これにより、通常の RAID 0 や RAID 1 よりもコスト効率の高い冗長設定を作成できます。バックアップ ソースは必要ですが、RAID を使用すると、4 台または 5 台のドライブのうち 1 台の故障したドライブを災害なしで交換できます。24 時間 365 日稼働する外付け USB ドライブに頼らないでください。すぐに故障してしまいます。必要のないときは外付けドライブを取り外してください。
  • 必要ない場合は、仮想化しないでください。仮想化ソリューションは、ドメイン コントローラー全体の情報を 1 つのイメージ内に完全に保存でき、複数のドメイン コントローラーを同じハードウェアで同時に実行できるエンタープライズ/データセンターのコンテキストでは非常に有効です。仮想化は Windows Server ドメインで頻繁に使用され、VirtualBox 方式を採用しない限り、安価ではありません。可能であれば、すべてのプログラムを同じ OS で直接実行します。これにより、サービス (およびメモリ) をより簡単に管理できます。
  • ルーターはファイアウォールのほとんどの部分を処理できますが、各サービスを強化する公開して実行するアプリは、読み取り/書き込み権限を制限することで制限できます。主なルールは、できるだけポートを少なく開けておく起こりうるセキュリティホールを防ぐためです。ポートを開いていないサービスに一時的にアクセスする必要がある場合は、SSH トンネルを使用できます。
  • afraid.orgを使うダイナミックDNS必要であれば、動的 IP を操作するためのスクリプトも用意されています。
  • ゆっくり始めて、徐々にレベルを上げていきましょう。まずメディア アクセス用の Samba や MiniDLNA などの重要なパッケージをインストールし、次にゲーム サーバーと管理サービス (SSH など) の設定を開始します。Web サーバーは、通常、完全に設定するのが最も面倒な (セキュリティの面で) ため、最後に構成する必要があります。存在しない場合を除き、ソフトウェアやスクリプトを最初から作成しないでください。

調査を続けると、数か月以内に優れたホーム サーバーが完成するでしょう。

関連情報