はじめに
GUIが多くなったとは言え、Linuxサーバは基本的にCLI(コマンドライン)・SSH接続によるリモート操作が基本です。この、CLIの環境下でのネットワーク設定という基本のメモです。
環境とやったこと
極めてよくあるユースケースです。即ち
「サーバ実機はこれである。ひとまず組織内(社内)ネットワークにつなげ」
という指令への対処。
- 物理サーバ
- 今回はVPSではありません。実機です。
- その大きさ、重さを知るのもインフラ屋の醍醐味です。
- Rocky Liunx 9.x
- (RHEL系フォーク、ミニマルインストール)
- ローカルNWにサーバのIPを割り当てる。
- NW設定を有効化する。
- 固定IP。クライアントならいざ知らず、サーバ運用は固定IPであるべきです。
- IP: 172.xx.xx.xx/16 (/16はサブネットマスク255.255.0.0を意味します)
- GW: 172.xx.254.254 (※これはあくまでも例です)
- DNSサーバ/ドメイン:ローカルで定められているもの。
さっくりとした手順
ではありますが、かなり慎重に書いています。
- RockyLinuxサーバをMinimalでインストールします。
- サーバコンソールに直接ログインします。
- ネットワークインタフェースを確認します。
- nmcliによりネットワークを設定します。
- ネットワークインタフェースを有効化します。
- サーバを結線してリンクアップを確認します。
- 最初のdnf updateを行います。
RockyLinux 9.6インストール
インストール方法については割愛。GUI無しのMinimalをインストールします。というのも、多くのサービスが入ってしまうと、自分が管理しきれない部分が増えると共に、そこが脆弱性となるからです。
また、ここでは最初からネットワークにつなぎません。設置する組織によってはLAN接続も許可制になっているパターンが極めて多いです。(IPも指定されたものを使うというのが実情でしょう)
サーバコンソールにログイン
この段階ではrootでも構いません。何せ、物理的に言葉通りの意味で切断されているのですから。
物理ネットワークの確認
vpsと違い、最初からネットワークにつながっていません。当然、IPも振られていません。なので「どのLANポートを使うか?」から始まります。
nmcli
を実行します。これはNetwork Manager Command Line Interfaceの略であり、RHELサーバの肝と言えるネットワーク設定コマンドです。(普段Ubuntuサーバを使う筆者は少々混乱しました)
筆者環境では
- eno2
- eno3
がありました。ここではeno2を確認していきます。
ネットワーク設定
- 現状確認
nmcli connection show
以下のような例が出てきます。
NAME UUID TYPE DEVICE
eno2 UUID文字列 ethernet eno2
lo UUID文字列 loopback lo
eno3 UUID文字列 ethernet eno3
この、eno2というポートを使います。
- ※例外
もし、もし NAME 列に Wired connection 1 とあり、DEVICE 列が eno2 ならば、次の手順で名前を変更します。
- ※例外時の実施- "Wired connection 1" を "eno2" にリネーム
sudo nmcli connection modify "Wired connection 1" connection.id eno2
- IPとサブネット設定 (CIDR表記でスマートに)
sudo nmcli connection modify eno2 ipv4.addresses 172.xx.xx.xx/16
→ 実際に指定されたIPアドレスを入力します。このとき、二重チェックで「同一ネットワーク内にIPアドレスが無いか? / 打ち間違いがないか?」を確認しましょう。被ってしまうと単純な破滅が待っています。
- ゲートウェイ設定
sudo nmcli connection modify eno2 ipv4.gateway 172.xx.254.254
こちらも同様。別のゲートウェイを設定していないかを確認。
- DNS設定
sudo nmcli connection modify eno2 ipv4.dns "DNS1 IPアドレス DNS2 IPアドレス"
→ DHCPと異なり、固定IPはDNSサーバを指定します。組織内では冗長性のため複数あるケースがほとんどです。
- ドメイン設定
sudo nmcli connection modify eno2 ipv4.dns-search "組織内ドメイン"
→ 組織内ドメインで、FQDNの名前解決を効率化するため。
- メソッドを手動にしてIPアドレス固定
sudo nmcli connection modify eno2 ipv4.method manual
- 【重要】自動接続をONにする (これを忘れると再起動後に死ぬ)
sudo nmcli connection modify eno2 connection.autoconnect yes
→ autoconnect no の状態だと、システムが再起動した後、NetworkManagerは設定ファイルは認識していますが、その接続を自発的に起動しません。つまり、何らかの事情でサーバそのものを再起動した場合、このネットワーク設定が断たれます。即ち、あらゆるネットワークから完全に切り離されます。
ネットワーク設定の有効化
ここまで来たらいよいよサーバにネットワークを認識させます。このコマンドの前に深呼吸をして落ち着きましょう。(サーバ室/データセンターからの離席を許されるならこの段階で)
- 再起動して設定をロード
sudo nmcli connection up eno2
- IPアドレスの確認
ip addr show eno2
→ インターフェース eno2 に正しいIPアドレス、ネットマスクが割り当てられたか。
eno2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
- ルーティングの確認
ip route
→ デフォルトゲートウェイ(外部ネットワークへの出口)が正しく設定されたか。
IPアドレスが正しくても、どこへパケットを送るか(経路情報)がなければ、ローカルネットワーク外へは通信できません。
default via 172.xx.254.254 dev eno2
などの行がないと、外部環境は無意味です。初歩的ですが非常に詰まりやすいポイントです。
- DNS設定の確認
cat /etc/resolv.conf
→ ネームサーバーと検索ドメインが設定ファイルに反映されたか。
nameserver: 設定した社内のDNSサーバーのIPアドレス(例: nameserver 192.168.1.53)が正しくリストアップされているか。
もしこれらが正しく反映されていなければ、名前解決ができず、Webサイトの閲覧やホスト名でのサーバーアクセスができなくなります。
サーバの結線
上記が確認できたら、サーバという鉄の箱を「ネットワークと通信ができる」状態へと落とし込みます。ここでも、単純ながら致命的なミスが待ち構えています。
以下を確認しましょう。
- LANポートの接続先と接続元は合っているか?
- 特に、LANポートの迷路とも言えるサーバ室やデータセンターではこれらを間違えると地獄が待っています。比喩的な意味では無く。
- LANケーブルは断線が無いか?
- 切り分けの手間を減らします。
- ストレートとクロスを間違えていないか?
- たまにありますが結構盲点です。

疎通確認
- Gatewayへの Ping:
ping -c 4 172.xx.254.254- これが通れば、L2/L3(組織/社内ネットワークへの物理・論理接続)は成功しています。
- DNSサーバへの Ping:
ping -c 4 [DNSサーバーのIP]- これが通れば、名前解決の準備OKです。
- 外の世界への Ping:
ping -c 4 google.com- これで初めて「インターネット接続完了」です。
DNFアップデート
サーバ全体のLinuxシステムを「最新の状態にする」おまじないです。
sudo dnf update -y
ここでの注意点はトラフィック。大容量のデータがこのサーバに流れます。貧弱な回線ではたちまちパンクします。
Complete!と表示されたら、
sudo reboot
で物理的に再起動します。というのも、dnfアップデートはたいがいカーネルの更新も伴うからです。
この再起動後、「先ほどのネットワーク設定が活きているか? 失われていないか?」が伴い、初めてこのネットワーク設定という初歩的な設定が完了します。