【サーバー管理入門 第4回】脱・初心者。IPアドレス固定化とネットワーク設定の完全理解

Linux

【サーバー管理入門 第4回】脱・初心者。IPアドレス固定化とネットワーク設定の完全理解

こんにちは!「リナックス先生」です。
前回は、パッケージ管理ツール dnf を使いこなし、サーバーにソフトウェアを導入する方法を学びました。
しかし、どんなに高機能なWebサーバーソフトを入れても、ネットワークが正しく繋がっていなければ、それはただの「データの孤島」です。

コウ君

先生、VirtualBoxで作ったサーバーですが、今日起動したらIPアドレスが変わっていました!
昨日までは 192.168.1.15 だったのに、今日は .16 になっています。
これじゃあSSHの接続先を毎回変えなきゃいけないし、不便すぎます!

リナックス先生

それが「DHCP(自動取得)」の仕組みよ。
スマホやPCならそれでもいいけれど、サーバーとしては失格ね。
サーバーは住所(IPアドレス)が変わらないように「固定(Static)」にするのが鉄則。
今回は、インフラエンジニアの必須スキル、ネットワーク設定とnmcliコマンドを徹底的にマスターするわよ!

第4回となる今回は、Linux(RHEL 9 / AlmaLinux 9)におけるネットワーク設定の作法を解説します。
古い記事にある ifconfig やテキストファイルの直接編集は、現代のLinuxでは非推奨です。
最新かつ正しい手順で、堅牢なネットワーク環境を構築しましょう。

本講座のカリキュラム

  1. サーバー管理入門:RHEL系OSの選定理由とローカル仮想環境の構築
  2. 初期設定とセキュリティの要:SSH鍵認証、禁止設定、ユーザー管理の鉄則
  3. パッケージ管理の裏側:dnf/rpmの仕組みとリポジトリの依存関係解決
  4. 【今回】ネットワーク設定の極意:nmcli、IPアドレス設計、DNSリゾルバの設定
  5. ストレージ管理とファイルシステム:LVMの概念、ディスク拡張、fstabの罠
  6. プロセスとサービス管理:systemd (systemctl) の仕組みとUnit定義ファイルの作成
  7. Webサーバー構築(Nginx):ハイパフォーマンスWebサーバーの導入と設定最適化
  8. データベース構築(MariaDB):インストール、初期セキュリティ、バックアップの基礎
  9. ログ管理とトラブルシュート:rsyslog、journalctl、ログローテートの設計
  10. 自動化の第一歩:Cronによる定期実行と管理用シェルスクリプトの作成
  11. バックアップと障害復旧:tar/rsyncによるデータ保全とリカバリ手順
  12. 監視と運用設計:サーバーのリソース監視、死活監視、そしてプロの運用論

1. なぜサーバーは「固定IP」なのか?

家庭内のWi-Fiやカフェのネット接続では、DHCP (Dynamic Host Configuration Protocol) という仕組みが使われています。
これは「空いているIPアドレスを適当に割り当てる」方式です。

サーバー運用におけるDHCPのリスク

  • 接続不能になる: Webサイトの公開設定などはIPアドレスに紐付くことが多いため、アドレスが変わるとサイトが見えなくなります。
  • セキュリティ設定の崩壊: 「このIPからの通信だけ許可する」といったファイアウォール設定が機能しなくなります。
  • ログ解析が困難: トラブル時に「昨日のこのIPはどのサーバーだったか?」が追跡できなくなります。

そのため、サーバー構築の最初のステップとして、「Static IP(静的IPアドレス)」の設定を行います。

2. 現代の標準ツール「nmcli」を理解する

昔のLinux(CentOS 6以前)では ifconfig コマンドや、/etc/sysconfig/network-scripts/ifcfg-eth0 というファイルを直接編集するのが主流でした。
しかし、RHEL 7以降、そして現在のRHEL 9では NetworkManager というサービスが管理を一元化しており、人間は nmcli (Network Manager Command Line Interface) コマンドを使って指示を出すのが作法です。

⚠️ プロの注意点:ファイルの直接編集について

RHEL 9からは、設定ファイルの保存形式が従来の「ifcfg形式」から「Keyfile形式 (/etc/NetworkManager/system-connections/)」に移行しつつあります。
古い解説記事にある「ifcfgファイルをviで編集する」方法は、互換性はありますが将来的には廃止される可能性があります。
nmcli コマンドを使えば、裏側のファイル形式を気にせず設定可能です。

Device(物理)とConnection(論理)

nmcli を理解する上で最も重要なのが、この2つの概念です。

用語 意味
Device (デバイス) 物理的なLANカード(NIC)。
OSが認識しているハードウェアの名前。
enp0s3, eth0
Connection (コネクション) IPアドレスやDNSなどの「設定プロファイル」。
デバイスに適用される設定の塊。
enp0s3 (同名が多い), MyHomeLAN

スマホで例えると、Deviceは「Wi-Fiチップ」、Connectionは「カフェのSSID設定」です。
一つのDeviceに対して、複数のConnection(自宅用設定、会社用設定)を作成し、切り替えて使うことができます。
サーバーでは通常、DeviceとConnectionは1対1ですが、操作するのは常にConnectionの方だと覚えてください。

3. 実践:固定IPアドレスの設定手順

それでは、VirtualBox上のサーバーに固定IPを設定しましょう。
ご自宅のルーター環境に合わせて、空いているIPアドレス(例: 192.168.1.200 など)を決めてください。

※ 作業はSSHではなくVirtualBoxのコンソールで行うのが安全です(設定ミスでSSHが切れる可能性があるため)。

Step 1: 現状の確認

# デバイスとコネクションの一覧を見る
[root@server01 ~]# nmcli device
DEVICE      TYPE      STATE      CONNECTION 
enp0s3      ethernet  connected  enp0s3     
lo          loopback  unmanaged  --         

# 現在の接続設定(IPなど)を確認
[root@server01 ~]# ip addr show enp0s3

Step 2: 固定IPの設定(ipv4.method manual)

nmcli connection modify (略して nmcli c mod) コマンドを使います。
ここでは例として IP: 192.168.1.200/24, GW: 192.168.1.1, DNS: 1.1.1.1 に設定します。

# 書式:nmcli c mod [コネクション名] [パラメータ] [値]

[root@server01 ~]# nmcli c mod enp0s3 \
 ipv4.method manual \
 ipv4.addresses 192.168.1.200/24 \
 ipv4.gateway 192.168.1.1 \
 ipv4.dns 1.1.1.1 \
 connection.autoconnect yes

💡 CIDR表記 (/24) とは?

255.255.255.0 というサブネットマスクを短く書いたものです。
一般的な家庭用ルーター環境であれば /24 で間違いありません。

Step 3: 設定の反映

コマンドを打っただけでは反映されません。コネクションを再起動します。

# コネクションを再起動(一瞬切断されます)
[root@server01 ~]# nmcli c down enp0s3 && nmcli c up enp0s3

Connection successfully activated と表示されれば成功です。

Step 4: 確認

IPアドレスが変わったか確認してください。

[root@server01 ~]# ip addr show enp0s3
inet 192.168.1.200/24 ... (以下略)

これでIPアドレスが固定されました!
SSHクライアント(Tera Termなど)の設定も新しいIPに変更して再接続してください。

4. ホスト名の設定と名前解決

サーバーにはわかりやすい名前(ホスト名)をつけるべきです。
localhost のままだと、複数のサーバーを管理する際に混乱します。

ホスト名の変更

hostnamectl コマンドを使用します。再起動なしで即時反映・永続化されます。

# ホスト名を web-server01 に設定
[root@server01 ~]# hostnamectl set-hostname web-server01

# 確認
[root@server01 ~]# hostname
web-server01

一度ログアウトして入り直すと、プロンプトが [root@web-server01 ~]# に変わります。

名前解決 (DNS) の確認

インターネットに繋がるか、DNS設定が正しいかを確認します。
ping コマンドでドメイン名を指定してみましょう。

[root@web-server01 ~]# ping -c 3 google.com

応答があれば、IP設定・ゲートウェイ設定・DNS設定すべて正常です。
もし Name or service not known と出る場合はDNS設定 (ipv4.dns) が間違っています。
Destination Host Unreachable ならIPかゲートウェイ設定が間違っています。

5. プロの裏技:/etc/hosts の活用

まだDNSサーバーに登録されていない開発中のサーバー同士で通信したい場合、どうすれば良いでしょうか?
例えば、WebサーバーからDBサーバーへ接続したいが、IPアドレス直打ちは避けたい場合です。

そんな時は /etc/hosts ファイルを使います。
これは「サーバー内部だけの電話帳」です。

[root@web-server01 ~]# vi /etc/hosts

# 以下の行を追記
192.168.1.201   db-server01

こうしておけば、ping db-server01 と打つだけで 192.168.1.201 に変換してくれます。
小規模なシステム構築では頻繁に使うテクニックです。

6. トラブルシューティング:接続できない時は?

「設定したのに繋がらない!」という時、プロは以下のコマンドで原因を切り分けます。

経路情報の確認 (ip route)

デフォルトゲートウェイ(外部への出口)が正しいか確認します。

[root@web-server01 ~]# ip route
default via 192.168.1.1 dev enp0s3 ...

default via の後ろのアドレスがルーターのIPと一致しているか確認しましょう。

ポートの確認 (ss)

SSHがつながらない場合、そもそもsshdサービスが動いていないか、ポート番号が違う可能性があります。
netstat は古いので、現代では ss コマンドを使います。

# 待ち受け中のTCPポートを表示
[root@web-server01 ~]# ss -tulpn | grep ssh
tcp   LISTEN 0      128       *:22       *:* users:(("sshd",pid=...))

*:22 と表示されていれば、22番ポートで正しく待ち受けています。

次回予告:ディスク管理とLVM

今回はネットワークの基盤を整えました。
これでIPアドレスが固定され、安心してサーバー運用ができるようになりました。

次回は、サーバー管理者が最も冷や汗をかく作業……「ストレージ管理」です。
「ディスク容量が足りない!」となった時、システムを止めずに容量を増やせる魔法の仕組み「LVM (Logical Volume Manager)」について解説します。
fstab の編集ミスで起動しなくなるトラップも体験してもらいますよ。お楽しみに!

リナックス先生

ネットワーク設定はミスをするとSSHが切れてしまい、サーバーが遠くにある場合は現地に行かないと直せなくなる「事故」の温床よ。
VirtualBoxなら失敗しても画面が見えるから安心だけど、VPSやクラウドでやるときは慎重にね!

▼スクリプトの実験場に最適!推奨VPS

【2026年最新】Linuxサーバー構築におすすめのVPS比較3選!現役エンジニアが速度とコスパで厳選
Linuxの勉強、まだ「自分のPC」でやって消耗していませんか?「Linuxを覚えたいけど、環境構築でエラーが出て先に進めない…」「VirtualBoxを入れたらパソコンが重くなった…」これは、Linux学習を始める9割の人がぶつかる壁です...

コメント