InfraAcademy

InfraAcademy Blog

Linuxでサーバー構築を練習する方法|初心者向けに環境準備からWeb・SSH・DNSまで解説

| #Linux #Linux初心者 #未分類

こんにちは、エンジニアのryuです。

Linuxの基本コマンドを少し覚えたので、次はサーバーを構築してみたい。しかし、どの環境を使い、何のサーバーから作ればよいのか分からない方もいるでしょう。

サーバー構築は難しそうに見えますが、最初から複雑なシステムを作る必要はありません。Linux環境を用意し、Webサーバーを動かすことから始めれば大丈夫です。

この記事では、初心者向けにLinuxでサーバー構築を練習する方法を解説します。エンジニア歴10年の経験から、実務につながる順番や注意点も紹介します。

Linuxのサーバー構築は何から始めればいい?

Linuxのサーバー構築は、Webサーバーから始めるのがおすすめです。Webサーバーは、ソフトウェアのインストール、設定ファイルの確認、サービスの起動、ポートの確認、ブラウザからのアクセスまで、サーバー構築の基本を一通り経験できます。

最初からメールサーバーやDNSサーバーへ進むと、確認する項目が多くなります。まずは小さく作り、結果を確認しやすい題材を選びましょう。

初心者向けの学習順序は、次のようになります。

段階 学習内容 到達目標
ステップ1 Linux環境を準備する コマンドを自由に実行できる
ステップ2 Linuxの基本操作を覚える ファイルやサービスを操作できる
ステップ3 ネットワークの基礎を学ぶ IPアドレスやポートを確認できる
ステップ4 Webサーバーを構築する ブラウザやcurlでページを確認できる
ステップ5 SSHサーバーを構築する 別の端末から安全に接続できる
ステップ6 DNSなど別のサーバーへ進む 複数のサーバーの役割を理解できる
ステップ7 障害対応と再構築を練習する 原因を調べて復旧できる

この順番で進めると、Linuxコマンドを何のために使うのかが見えてきます。

ステップ1 Linuxの練習環境を準備する

サーバー構築を練習するには、自由に設定を変更できるLinux環境が必要です。普段使っているパソコンへ直接Linuxを入れなくても、仮想環境やクラウドを使って練習できます。

代表的な方法を比べてみましょう。

方法 難易度 費用 特徴
ブラウザ上のLinux環境 低い 無料または月額 インストールせずすぐに操作できる
WSL 低い 無料 Windows上でLinuxを利用できる
VirtualBox 普通 無料 仮想マシンを作り、OSの導入から練習できる
Docker 普通 無料 軽量な環境を何度も作り直しやすい
AWSのEC2 やや高い 従量課金 クラウド上の実践的な環境を使える

完全な初心者であれば、最初はブラウザ上の学習環境でも問題ありません。環境構築で消耗せず、Linuxの操作へ集中できます。

本格的に練習するときは、パッケージの導入やサービス起動ができる環境を選びましょう。簡易環境ではsystemctlなどを使えない場合があります。

初心者は環境構築だけで疲れないようにする

私も学習を始めた頃は、環境作りに時間をかけすぎました。VirtualBoxの設定でつまずき、肝心の構築まで進めないこともあります。

最初の目的は、仮想化ソフトを使いこなすことではありません。Webサーバーを作り、設定を変え、通信を確認することです。

Linux自体の勉強を始めたばかりの方は、先に基本操作を練習しておきましょう。

【関連記事】Linuxの勉強は何から始める?初心者向け学習ロードマップ

ステップ2 サーバー構築に必要なLinux操作を覚える

サーバー構築では、何十個ものコマンドを一度に暗記する必要はありません。ファイルの確認、設定の編集、サービスの操作、ログの確認に使うコマンドから覚えましょう。

まずは、次のような基本操作を繰り返します。

pwd
ls -la
cd /etc
cat hosts
cp hosts hosts.backup
grep localhost hosts

pwdで現在地を確認し、lsでファイルを表示します。cpで設定ファイルをバックアップしてから編集する習慣を付けると、間違えたときに元へ戻しやすくなります。

サーバーソフトウェアを入れた後は、サービスの状態を確認します。

sudo systemctl status apache2
sudo systemctl restart apache2
sudo journalctl -u apache2

Rocky LinuxやAlmaLinuxなどでは、Apacheのサービス名がhttpdになります。UbuntuやDebianではapache2になるため、利用するディストリビューションによってコマンドが少し違います。

インストールより動作確認を大切にする

初心者の頃は、インストールコマンドが成功すると構築できたと思ってしまいます。しかし、パッケージが入ったことと、サービスが正常に動いていることは別です。

実務では、起動状態、待ち受けポート、ログ、クライアントからの通信を確認します。コマンドを実行した後に、必ず結果を確かめる癖を付けてください。

ステップ3 ネットワークの基礎を学ぶ

サーバーを構築しても、通信できなければ利用できません。そこで必要になるのが、IPアドレス、サブネット、デフォルトゲートウェイ、DNS、ポート番号の知識です。

すべてを詳しく理解してから進む必要はありません。まずは、自分のサーバーがどのIPアドレスを持ち、どのポートで待ち受けているかを確認できれば十分です。

Linuxでは、次のコマンドをよく使います。

ip address
ip route
ping -c 4 8.8.8.8
ss -lntp
curl http://localhost

ip addressはIPアドレス、ip routeは通信経路を確認します。ss -lntpでは、TCPの待ち受けポートとプロセスを確認できます。

接続できないときは、サービス、80番ポート、ファイアウォールの順で確認しましょう。設定を一度に変更すると、原因が分からなくなります。

ステップ4 Webサーバーを構築してみる

最初の構築題材には、Apacheを使ったWebサーバーが向いています。ブラウザで結果を目視できるため、構築できたことを実感しやすいからです。

Ubuntu系のLinuxでは、次のようにApacheをインストールします。

sudo apt update
sudo apt install apache2
sudo systemctl enable --now apache2
sudo systemctl status apache2

Rocky LinuxやAlmaLinuxでは、次のようにhttpdを利用します。

sudo dnf install httpd
sudo systemctl enable --now httpd
sudo systemctl status httpd

起動できたら、サーバー自身からアクセスしてみましょう。

curl http://localhost
ss -lntp | grep :80

HTMLが表示され、80番ポートで待ち受けていれば、Webサーバーは動いています。別のパソコンからアクセスする場合は、サーバーのIPアドレスやファイアウォールも確認します。

HTMLファイルを変更してみる

初期ページが表示できたら、自分でHTMLファイルを作ります。UbuntuのApacheでは、一般的に/var/www/html/が公開ディレクトリです。

echo '<h1>Hello Linux Server</h1>' | sudo tee /var/www/html/index.html
curl http://localhost

ブラウザでも同じページを確認できれば、ファイルの配置からWeb公開までつながりました。ここまでできると、Linuxコマンドがサーバー運用でどのように使われるか分かってきます。

Apacheのインストール手順を詳しく確認したい方は、次の記事も参考にしてください。

【関連記事】ApacheをインストールしてLinuxにWebサーバーを構築する方法

わざと設定を変えて復旧してみる

正常に動いた環境は、そのまま終わらせず少し変更してみましょう。たとえば、HTMLファイルの権限を変えたり、設定ファイルに誤った記述を加えたりすると、どのようなエラーになるか確認できます。

ただし、変更前には必ずバックアップを取ります。

sudo cp /etc/apache2/apache2.conf /etc/apache2/apache2.conf.bak
sudo apache2ctl configtest

設定変更後は、構文チェックをしてから再起動します。エラーが出た場合はログを読み、バックアップから戻して復旧してください。

この練習が非常に大切です。サーバー構築の仕事では、何もない状態から作る力だけでなく、動かなくなった原因を調べて元へ戻す力が求められます。

ステップ5 SSHサーバーを構築する

Webサーバーの次は、SSHを練習するとよいでしょう。SSHは、別の端末からLinuxサーバーへ接続し、コマンドを実行するために利用されます。

Ubuntuでは、次のようにSSHサーバーをインストールできます。

sudo apt update
sudo apt install openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh

待ち受け状態も確認します。

ss -lntp | grep :22

別の端末からは、次の形式で接続します。

ssh ユーザー名@サーバーのIPアドレス

接続元と接続先を分けると理解しやすくなります。クラウドでは、22番ポートを全世界へ無制限に公開しないよう注意してください。

SSHでは公開鍵認証も学びます。設定変更後は、現在の接続を切る前に別のターミナルから接続を確認しましょう。

ステップ6 DNSサーバーなど別の構築へ進む

WebサーバーとSSHを構築できたら、DNS、データベース、ファイル共有、メール、プロキシなどへ学習範囲を広げます。各サーバーは役割が異なりますが、基本的な構築の流れは似ています。

代表的なサーバーを整理すると、次のようになります。

サーバー 主な役割 練習で学べること
Webサーバー WebページやAPIを公開する HTTP、ポート、ログ、アクセス制御
SSHサーバー 遠隔からLinuxを操作する 鍵認証、ユーザー、接続制限
DNSサーバー ドメイン名とIPアドレスを対応させる 名前解決、正引き、逆引き
データベースサーバー データを保存・検索する 権限、接続、バックアップ
ファイルサーバー 複数端末でファイルを共有する Samba、NFS、アクセス権
メールサーバー メールを送受信する SMTP、IMAP、DNSとの連携
プロキシサーバー 通信を中継する キャッシュ、アクセス制御、ログ

DNSではBINDを導入し、正引きと逆引きを設定します。最後にdignslookupで名前解決を確認しましょう。

DNSの役割が曖昧なまま構築すると、設定の意味が分からなくなりやすいです。先に仕組みを理解してから演習へ進みましょう。

【関連記事】DNSサーバーとは?初心者向けに用途と仕組みを解説

サーバー構築の練習で大切な5つの確認

サーバー構築は、手順書のコマンドをコピーして終わりではありません。自分で状態を確認し、なぜ動いているのかを説明できるようにします。

毎回、次の観点を確認してください。

確認すること コマンドや方法
パッケージが入っているか dpkg -lrpm -qa
サービスが起動しているか systemctl status
ポートが待ち受けているか ss -lntp
ローカルから通信できるか curl localhostdig
外部から通信できるか ブラウザ、SSH、別端末からの確認
エラーが記録されていないか journalctl、各サービスのログ

エンジニア歴10年の経験上、実務で差が出るのはインストールコマンドの暗記ではありません。どこまで正常で、どこから失敗しているかを切り分ける力です。

構築後は、サービス停止や設定ミスも試してみます。元へ戻せるよう、バックアップと作業メモは残してください。

初心者がサーバー構築でつまずきやすいポイント

ここからは、サーバー構築を練習するときによくある失敗を紹介します。事前に知っておくだけでも、原因を見つけやすくなります。

rootユーザーで何でも操作してしまう

管理者権限があれば、多くの操作を実行できます。しかし、間違ったファイルを削除したり、必要以上に権限を広げたりする危険もあります。

普段は一般ユーザーで操作し、必要なコマンドだけsudoを付けましょう。ファイルの所有者や権限を確認する習慣も大切です。

ファイアウォールとクラウド側の設定を混同する

AWSでは、Linux内のファイアウォールに加えてセキュリティグループも通信へ影響します。外側で遮断されていれば接続できません。

通信経路に沿って、どの設定が遮断しているか確認します。仮想環境ではNATやブリッジ設定も関係します。

コマンドをコピーするだけで終わる

Web上の手順を貼り付けるだけでは、環境の違いに対応できません。ディストリビューションによってコマンドやファイル名も変わります。

各コマンドが、インストール、設定変更、起動、確認のどの作業なのかを意識してください。少なくとも、実行前にコマンドの対象ファイルとサービス名を確認しましょう。

クラウドのサーバーを消し忘れる

クラウドは便利ですが、停止後もストレージなどに料金が残る場合があります。学習後は不要なリソースを削除しましょう。

請求アラートも先に設定しておきましょう。クラウドの練習では、構築手順だけでなく片付けまでを一つの作業として扱います。

4週間で進めるサーバー構築の練習計画

毎日少しずつ進める場合は、4週間を一つの目安にできます。急いですべてを覚えるより、同じ操作を何度か繰り返す方が身につきます。

期間 学習内容 成果物
1週目 Linux環境、ファイル操作、権限、パッケージ管理 コマンドの作業メモ
2週目 Apacheの導入、HTML公開、ログ確認 自分のWebページ
3週目 SSH接続、ユーザー追加、公開鍵認証 別端末から接続できる環境
4週目 DNSまたはDBの構築、障害対応、再構築 構成図と構築手順書

構築内容はMarkdownなどで手順書にします。目的、確認方法、エラーと解決方法まで残すと復習しやすくなります。

最後に環境を削除し、最初から再構築してみましょう。短時間で再現できれば、知識が整理されています。

InfraAcademyでLinuxのサーバー構築を練習する

独学では環境作りでつまずき、コマンドが成功したか判断できないことがあります。サーバー構築は、実際に操作して覚えることが大切です。

InfraAcademyでは、Linuxやネットワークの基礎から、Web、DNS、SSH、データベースなどのサーバー構築まで、ブラウザ上で手を動かしながら学習できます。

InfraAcademyのサーバー構築学習画面

コマンド実行、設定変更、結果確認を一つの流れで練習できます。環境準備や学習順序に迷う方にも向いています。

Linux入門から段階的に進めたい方は、InfraAcademyの講座を確認してみてください。

InfraAcademyでLinuxとサーバー構築を学ぶ

まとめ

Linuxのサーバー構築は、環境準備、基本コマンド、ネットワーク、Webサーバーの順番で進めると理解しやすくなります。最初から難しいメールサーバーや大規模なクラウド構成へ進む必要はありません。

まずはApacheをインストールし、curlやブラウザでページを確認してみましょう。その後、SSH、DNS、データベースと少しずつ範囲を広げます。

そして、構築できたら終わりではありません。サービスの状態、待ち受けポート、ログを確認し、設定を変更して復旧するところまで練習してください。

サーバー構築は、Linuxコマンドやネットワークの知識が一つにつながる面白い学習です。小さなサーバーを一台作るところから、焦らず始めてみましょう。

Next Action

記事で読んだ内容を、講座で実装してみましょう

InfraAcademyでは、ブラウザ上でLinuxやネットワークの実践環境を使いながら学習できます。無料で始められる講座から、学習の流れを試せます。

この記事を書いた人

ryu

InfraAcademy運営 / エンジニア

エンジニア歴10年。Linux、ネットワーク、クラウドを中心に、実務で役立つインフラ技術を初心者にもわかりやすく解説しています。

X: @ryu63614894

Related

関連記事

ブログ一覧へ

Roadmap

まずはこの4講座から

ログインすれば無料で始められる講座です。気になったテーマから手を動かして学べます。

講座一覧を見る