はじめに (対象読者・この記事でわかること)

この記事は、不要になったPCを活用して自宅サーバーを立てたい方、Linuxに興味があるけどどこから始めればいいか分からない方を対象にしています。自宅サーバーを立てることで、Webサイトのホスティング、ファイルサーバー、開発環境の構築など、様々な用途に活用できます。

この記事を読むことで、Ubuntu Serverのインストールから、SSH接続の設定、ルーターのポート開放、セキュリティ対策まで、自宅サーバーを立てて外部からアクセスできるようになるまでの一連の手順が分かります。特に、プロバイダー固有の設定や、失敗しがちなポイントを重点的に解説していきます。

前提知識

この記事を読み進める上で、以下の知識があるとスムーズです。 - 基本的なLinuxコマンド(ls, cd, mkdirなど)の知識 - 自宅のルーターにアクセスして設定を変更できる環境 - 自宅のインターネット回線の契約内容(IPアドレスの種類など)

なぜ自宅サーバーがおすすめなのか

クラウドサービスが主流の昨今、わざわざ自宅にサーバーを立てるメリットとは何でしょうか。実は、自宅サーバーにはクラウドにはない魅力がたくさんあります。

まず、コストの面で圧倒的な利点があります。AWSやGCPなどのクラウドサービスでは、月々数千円の利用料が発生しますが、自宅サーバーなら電気代以外は基本的に無料です。また、データの管理も自分で完全にコントロールできるため、プライバシー面でも安心です。さらに、Linuxのスキルが自然と身につくため、エンジニアとしての成長にも直結します。

特に、開発環境のテストや、個人のWebアプリケーションの運用、家族共有のファイルサーバーなど、日常的な用途には十分な性能を発揮してくれます。

実践:自宅Linuxサーバーの構築手順

ここから実際に自宅サーバーを立てていきます。焦らず丁寧に進めていきましょう。

ステップ1:Linuxディストリビューションの選定とインストール

まず、どのLinuxディストリビューションを使うか決めます。初心者にはUbuntu Serverがおすすめです。日本語のドキュメントが豊富で、困ったときに調べやすいからです。

Ubuntu ServerのISOイメージは公式サイトからダウンロードできます。古いPCでも動作するため、最低スペックはCPU 1GHz、メモリ1GB、ストレージ10GB程度で十分です。実際には、もっと古いPCでも動作しますが、快適に動かすならCore 2 Duo世代以降がおすすめです。

インストール時の注意点として、日本語環境を選択すると後々文字化けの原因になることがあるため、基本的には英語環境でインストールすることをおすすめします。また、OpenSSH serverは必ずインストールしておきましょう。後からでもインストールは可能ですが、ここで入れておくと楽です。

インストールが完了したら、まずは以下のコマンドでシステムを最新の状態に更新します:

Bash
sudo apt update && sudo apt upgrade -y

ステップ2:ネットワーク設定とSSH接続の確立

次に、ネットワークの設定を行います。まず、サーバーのIPアドレスを固定に設定しましょう。Ubuntu Serverでは/etc/netplan/00-installer-config.yamlファイルを編集します。

network:
  ethernets:
    enp0s3:
      dhcp4: no
      addresses: [192.168.1.100/24]
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
  version: 2

設定後はsudo netplan applyで適用します。次に、SSHの設定を行います。/etc/ssh/sshd_configファイルを編集して、パスワード認証を無効にし、公開鍵認証のみを許可するようにします:

PasswordAuthentication no
PubkeyAuthentication yes

これにより、セキュリティが大幅に向上します。公開鍵は、クライアント側でssh-keygenコマンドで生成し、ssh-copy-id user@server-ipでサーバーに転送します。

ステップ3:ルーターのポート開放とDDNS設定

ここが最も重要で、つまずきやすいポイントです。まず、自宅のグローバルIPアドレスを確認します。ブラウザで「IPアドレス 確認」と検索すればすぐに分かります。

次に、ルーターの設定画面にアクセスします。通常は192.168.1.1192.168.0.1です。ここで、ポート22(SSH)をサーバーのローカルIPアドレスにフォワーディングします。ただし、セキュリティのため、ポート22のままではなく、適当な高い番号(例:2222)に変換してフォワーディングすることをおすすめします。

また、日本の多くの家庭用インターネット回線は動的IPアドレスのため、DDNS(ダイナミックDNS)の設定が必要です。おすすめは、さくらのDDNSやDuckDNSなどの無料サービスです。これらは、定期的にIPアドレスを更新してくれるため、常に同じドメインでアクセスできるようになります。

ハマった点やエラー解決

実は、私は最初にポート開放でつまずきました。ルーターで設定しても、なぜか外部からアクセスできない問題に直面しました。原因は、プロバイダー側のIPv6対応でした。

多くのプロバイダーでは、IPv4アドレスが共有されており、正真正銘のグローバルIPv4アドレスが割り当てられていないケースがあります。これを「CG-NAT」環境と呼びます。この場合、ポート開放しても外部からアクセスできません。

解決策

この問題を解決するには、プロバイダーに「グローバルIPv4アドレスの割当」を申請する必要があります。多くのプロバイダーで無料で対応してくれますが、場合によっては月額数百円の料金が発生することもあります。

申請方法は、プロバイダーのマイページから「IPv4アドレス」の項目を探すか、カスタマーサポートに連絡します。私の場合は、NTT東日本のフレッツ光で、マイページから申請して翌日には有効になりました。

また、IPv6のみで運用する方法もありますが、IPv6に対応していないクライアントも多いため、現時点ではIPv4の確保が最も確実な方法です。

まとめ

本記事では、不要になったPCを活用して自宅にLinuxサーバーを立てる方法を解説しました。

  • Ubuntu Serverのインストールと基本的な設定
  • SSH接続の確立とセキュリティ強化
  • ルーターのポート開放とDDNS設定
  • CG-NAT環境でのトラブルシューティング

この記事を通して、月々のコストをゼロに抑えながら、自分専用のサーバーを持つことができました。クラウドサービスにはない、完全なカスタマイズ性とプライバシー保護が実現できています。

今後は、Dockerを使ったWebアプリケーションのホスティングや、Nextcloudでのプライベートクラウド構築、VPNサーバーの構築など、より実用的な使い方についても記事にする予定です。自宅サーバー生活を楽しんでください!

参考資料