【サーバー管理入門 第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では非推奨です。
最新かつ正しい手順で、堅牢なネットワーク環境を構築しましょう。
本講座のカリキュラム
- サーバー管理入門:RHEL系OSの選定理由とローカル仮想環境の構築
- 初期設定とセキュリティの要:SSH鍵認証、禁止設定、ユーザー管理の鉄則
- パッケージ管理の裏側:dnf/rpmの仕組みとリポジトリの依存関係解決
- 【今回】ネットワーク設定の極意:nmcli、IPアドレス設計、DNSリゾルバの設定
- ストレージ管理とファイルシステム:LVMの概念、ディスク拡張、fstabの罠
- プロセスとサービス管理:systemd (systemctl) の仕組みとUnit定義ファイルの作成
- Webサーバー構築(Nginx):ハイパフォーマンスWebサーバーの導入と設定最適化
- データベース構築(MariaDB):インストール、初期セキュリティ、バックアップの基礎
- ログ管理とトラブルシュート:rsyslog、journalctl、ログローテートの設計
- 自動化の第一歩:Cronによる定期実行と管理用シェルスクリプトの作成
- バックアップと障害復旧:tar/rsyncによるデータ保全とリカバリ手順
- 監視と運用設計:サーバーのリソース監視、死活監視、そしてプロの運用論
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



コメント