AlmaLinuxでIPアドレスをコマンドで設定する方法|nmcliとipコマンドを完全解説

Linux

AlmaLinuxでIPアドレスを設定する際、「GUIよりもコマンドの方が早い」と感じることはありませんか?

サーバー用途で使う場合や、リモートでSSH接続している場合は、コマンドラインで設定できた方が圧倒的に便利ですよね。

この記事では、AlmaLinuxでコマンドを使ってIPアドレスを設定する方法を、初心者の方にも分かりやすく解説していきます。

主に使うのは:

  • nmcli:NetworkManager用のコマンドラインツール
  • ip:低レベルなネットワーク設定コマンド
  • 設定ファイルの編集:直接ファイルを書き換える方法

それぞれの特徴と使い分けも説明していくので、状況に応じて最適な方法を選べるようになりますよ。

スポンサーリンク
  1. 事前準備:現在の設定を確認しよう
    1. ネットワークインターフェース名の確認
    2. 現在のIPアドレスを確認
  2. 方法1:nmcliコマンドを使った設定(推奨)
    1. nmcliの基本構文
    2. DHCPで自動取得する設定
    3. 固定IPアドレスを設定する
    4. 複数のIPアドレスを追加
    5. DNSサーバーの追加・変更
    6. 設定内容の確認
    7. 接続の管理
    8. nmcliの便利な使い方
  3. 方法2:ipコマンドを使った一時的な設定
    1. IPアドレスの割り当て
    2. IPアドレスの削除
    3. インターフェースのオン・オフ
    4. デフォルトゲートウェイの設定
    5. ルーティングテーブルの確認
    6. ipコマンドの注意点
  4. 方法3:設定ファイルを直接編集
    1. 設定ファイルの場所
    2. 設定ファイルの編集
    3. 設定ファイルの権限
    4. 設定の反映
  5. DHCPクライアントの設定
    1. DHCPクライアントIDの設定
    2. DHCPホスト名の送信
    3. DHCPタイムアウトの変更
  6. 静的ルートの追加
    1. nmcliで静的ルートを追加
    2. ipコマンドで一時的にルートを追加
    3. ルートの削除
  7. IPv6の設定
    1. IPv6の自動設定
    2. IPv6の固定アドレス設定
    3. IPv6を無効化
  8. NetworkManagerの状態確認と制御
    1. NetworkManagerの状態確認
    2. NetworkManagerの起動・停止
    3. 自動起動の設定
  9. トラブルシューティング
    1. 問題1:設定が反映されない
    2. 問題2:インターネットに繋がらない
    3. 問題3:「Connection activation failed」エラー
    4. 問題4:DHCPでIPが取得できない
    5. 問題5:複数のIPアドレスが設定できない
  10. 設定のバックアップと復元
    1. 設定のバックアップ
    2. 設定の復元
  11. スクリプト化の例
    1. 固定IP設定スクリプト
  12. まとめ:状況に応じて最適なコマンドを選ぼう

事前準備:現在の設定を確認しよう

設定を変更する前に、現在のネットワーク状況を確認しておきましょう。

ネットワークインターフェース名の確認

まずは、設定したいネットワークインターフェース(ネットワークカードの名前)を確認します。

ip link show

または

nmcli device status

出力例:

DEVICE  TYPE      STATE      CONNECTION
ens33   ethernet  connected  ens33
lo      loopback  unmanaged  --

この例では、ens33というイーサネットインターフェースが接続されています。

インターフェース名は環境によって異なり、eth0enp0s3ens160などさまざまです。

現在のIPアドレスを確認

現在割り当てられているIPアドレスを確認します。

ip addr show

または

nmcli device show ens33

これで、現在のIPアドレス、サブネットマスク、ゲートウェイなどが確認できます。

方法1:nmcliコマンドを使った設定(推奨)

nmcli(エヌエムシーエルアイ)は、NetworkManagerを操作するためのコマンドラインツールです。

最も推奨される方法で、設定の管理がしやすいのが特徴ですね。

nmcliの基本構文

nmcli [オブジェクト] [コマンド] [オプション]

主なオブジェクト:

  • connection:接続プロファイルの管理
  • device:デバイスの管理
  • general:NetworkManagerの全般設定

DHCPで自動取得する設定

まずは、IPアドレスを自動取得(DHCP)に設定する方法です。

新しい接続を作成する場合:

sudo nmcli connection add type ethernet \
  con-name "ens33-dhcp" \
  ifname ens33 \
  ipv4.method auto

既存の接続を変更する場合:

sudo nmcli connection modify ens33 ipv4.method auto

設定を適用:

sudo nmcli connection up ens33

これで、ルーターから自動的にIPアドレスが割り当てられます。

固定IPアドレスを設定する

サーバー用途では、固定IPを設定することが多いですね。

手順1:接続設定を変更

sudo nmcli connection modify ens33 \
  ipv4.method manual \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8 8.8.4.4"

各項目の意味:

  • ipv4.method manual:手動設定モード
  • ipv4.addresses:IPアドレスとサブネットマスク(CIDR形式)
  • ipv4.gateway:デフォルトゲートウェイ(通常はルーターのアドレス)
  • ipv4.dns:DNSサーバー(複数指定可能)

手順2:設定を適用

sudo nmcli connection up ens33

設定が即座に反映されます。

複数のIPアドレスを追加

1つのインターフェースに複数のIPアドレスを割り当てることもできます。

sudo nmcli connection modify ens33 \
  +ipv4.addresses 192.168.1.101/24

先頭の+記号は「追加」を意味します。

削除する場合は-を使います:

sudo nmcli connection modify ens33 \
  -ipv4.addresses 192.168.1.101/24

DNSサーバーの追加・変更

DNSサーバーを追加:

sudo nmcli connection modify ens33 \
  +ipv4.dns 1.1.1.1

DNSサーバーをすべて置き換え:

sudo nmcli connection modify ens33 \
  ipv4.dns "8.8.8.8 1.1.1.1"

設定内容の確認

現在の接続設定を詳しく確認:

nmcli connection show ens33

これで、設定されているすべての項目が表示されます。

接続の管理

接続を無効化:

sudo nmcli connection down ens33

接続を有効化:

sudo nmcli connection up ens33

接続を削除:

sudo nmcli connection delete ens33

nmcliの便利な使い方

対話モードで設定:

sudo nmcli connection edit ens33

対話形式で設定を変更できます。

print ipv4でIPv4設定を表示、set ipv4.addresses 192.168.1.100/24で値を設定、saveで保存します。

設定のリロード:

sudo nmcli connection reload

設定ファイルを直接編集した後に使います。

方法2:ipコマンドを使った一時的な設定

ipコマンドは、より低レベルなネットワーク設定ツールです。

設定は一時的で、再起動すると消えてしまいます。

テストや緊急時の対応に便利ですね。

IPアドレスの割り当て

sudo ip addr add 192.168.1.100/24 dev ens33

複数のIPアドレスを追加することもできます:

sudo ip addr add 192.168.1.101/24 dev ens33

IPアドレスの削除

sudo ip addr del 192.168.1.100/24 dev ens33

インターフェースのオン・オフ

インターフェースを有効化:

sudo ip link set ens33 up

インターフェースを無効化:

sudo ip link set ens33 down

デフォルトゲートウェイの設定

sudo ip route add default via 192.168.1.1

既存のデフォルトルートを削除してから設定:

sudo ip route del default
sudo ip route add default via 192.168.1.1

ルーティングテーブルの確認

ip route show

現在のルーティング設定が表示されます。

ipコマンドの注意点

ipコマンドでの設定は再起動すると消えるため、恒久的な設定にはnmcliまたは設定ファイルの編集が必要です。

ただし、すぐに反映されるため、テスト時には非常に便利ですよ。

方法3:設定ファイルを直接編集

NetworkManagerの設定ファイルを直接編集する方法もあります。

上級者向けですが、スクリプトで自動化する場合などに便利です。

設定ファイルの場所

NetworkManagerの接続プロファイルは、以下のディレクトリに保存されています:

/etc/NetworkManager/system-connections/

または

/etc/sysconfig/network-scripts/

設定ファイルの編集

固定IP設定の例:

sudo vi /etc/NetworkManager/system-connections/ens33.nmconnection

ファイルの内容例:

[connection]
id=ens33
type=ethernet
interface-name=ens33

method=manual address1=192.168.1.100/24,192.168.1.1 dns=8.8.8.8;8.8.4.4;

method=auto

各セクションの説明:

  • [connection]:接続の基本情報
  • [ipv4]:IPv4設定
  • method=manual:手動設定
  • address1:IPアドレス/マスク,ゲートウェイ
  • dns:DNSサーバー(セミコロン区切り)
  • [ipv6]:IPv6設定

設定ファイルの権限

セキュリティ上、設定ファイルには適切な権限が必要です:

sudo chmod 600 /etc/NetworkManager/system-connections/ens33.nmconnection

権限が正しくないと、NetworkManagerが設定を読み込まないことがあります。

設定の反映

ファイルを編集した後、NetworkManagerに設定を再読み込みさせます:

sudo nmcli connection reload
sudo nmcli connection up ens33

または、NetworkManager自体を再起動:

sudo systemctl restart NetworkManager

DHCPクライアントの設定

DHCP(自動取得)を使う場合の詳細設定です。

DHCPクライアントIDの設定

一部のネットワークでは、DHCPクライアントIDが必要な場合があります。

sudo nmcli connection modify ens33 \
  ipv4.dhcp-client-id "my-client-id"

DHCPホスト名の送信

DHCPサーバーにホスト名を送信する設定:

sudo nmcli connection modify ens33 \
  ipv4.dhcp-hostname "myhost"

DHCPタイムアウトの変更

DHCPでIPを取得するまでの待ち時間を変更:

sudo nmcli connection modify ens33 \
  ipv4.dhcp-timeout 60

単位は秒です。

静的ルートの追加

特定のネットワークへのルートを追加する方法です。

nmcliで静的ルートを追加

sudo nmcli connection modify ens33 \
  +ipv4.routes "10.0.0.0/8 192.168.1.254"

この例では、10.0.0.0/8ネットワーク宛の通信を192.168.1.254経由でルーティングします。

ipコマンドで一時的にルートを追加

sudo ip route add 10.0.0.0/8 via 192.168.1.254

ルートの削除

sudo nmcli connection modify ens33 \
  -ipv4.routes "10.0.0.0/8 192.168.1.254"

IPv6の設定

IPv6アドレスの設定方法も簡単に紹介します。

IPv6の自動設定

sudo nmcli connection modify ens33 \
  ipv6.method auto

IPv6の固定アドレス設定

sudo nmcli connection modify ens33 \
  ipv6.method manual \
  ipv6.addresses 2001:db8::100/64 \
  ipv6.gateway 2001:db8::1

IPv6を無効化

sudo nmcli connection modify ens33 \
  ipv6.method disabled

NetworkManagerの状態確認と制御

NetworkManager自体の管理コマンドです。

NetworkManagerの状態確認

systemctl status NetworkManager

NetworkManagerの起動・停止

起動:

sudo systemctl start NetworkManager

停止:

sudo systemctl stop NetworkManager

再起動:

sudo systemctl restart NetworkManager

自動起動の設定

sudo systemctl enable NetworkManager

無効化する場合:

sudo systemctl disable NetworkManager

トラブルシューティング

よくある問題と解決方法をまとめました。

問題1:設定が反映されない

確認ポイント:

  1. NetworkManagerが動いているか確認:
   systemctl status NetworkManager
  1. 接続が有効になっているか確認:
   nmcli connection show --active
  1. 接続を再起動:
   sudo nmcli connection down ens33
   sudo nmcli connection up ens33

問題2:インターネットに繋がらない

確認手順:

ステップ1:IPアドレスの確認

ip addr show ens33

IPアドレスが正しく設定されているか確認します。

ステップ2:ゲートウェイへのping

ping -c 4 192.168.1.1

ゲートウェイに到達できるか確認。

ステップ3:DNSの確認

ping -c 4 8.8.8.8

IPアドレス直接で通信できるか確認。

ステップ4:名前解決の確認

ping -c 4 google.com

ドメイン名で通信できるか確認。DNSが正しく設定されているかがわかります。

問題3:「Connection activation failed」エラー

原因:
設定に誤りがあるか、インターフェースが使用中です。

解決方法:

# 既存の接続をすべて停止
sudo nmcli connection down ens33

# デバイスの状態を確認
nmcli device status

# 接続設定を確認
nmcli connection show ens33

# 問題があれば再作成
sudo nmcli connection delete ens33
sudo nmcli connection add type ethernet con-name ens33 ifname ens33

問題4:DHCPでIPが取得できない

確認ポイント:

  1. DHCPサーバーが動作しているか
  2. ネットワークケーブルが接続されているか
  3. NetworkManagerのログを確認:
   sudo journalctl -u NetworkManager -f

強制的にDHCPを再取得:

sudo nmcli connection down ens33
sudo nmcli connection up ens33

問題5:複数のIPアドレスが設定できない

解決方法:

既存のIPを残したまま追加する場合は、+を使います:

sudo nmcli connection modify ens33 \
  +ipv4.addresses 192.168.1.101/24

+なしで実行すると、既存のIPが上書きされてしまいます。

設定のバックアップと復元

重要な設定は必ずバックアップを取りましょう。

設定のバックアップ

# 接続設定のバックアップ
sudo cp -r /etc/NetworkManager/system-connections/ \
  /root/network-backup-$(date +%Y%m%d)

# または個別ファイルのバックアップ
sudo cp /etc/NetworkManager/system-connections/ens33.nmconnection \
  /root/ens33.nmconnection.backup

設定の復元

# バックアップから復元
sudo cp /root/ens33.nmconnection.backup \
  /etc/NetworkManager/system-connections/ens33.nmconnection

# 権限を修正
sudo chmod 600 /etc/NetworkManager/system-connections/ens33.nmconnection

# 設定を再読み込み
sudo nmcli connection reload
sudo nmcli connection up ens33

スクリプト化の例

設定を自動化する簡単なスクリプト例です。

固定IP設定スクリプト

#!/bin/bash
# set-static-ip.sh

INTERFACE="ens33"
IP_ADDRESS="192.168.1.100/24"
GATEWAY="192.168.1.1"
DNS="8.8.8.8 8.8.4.4"

# 固定IP設定
nmcli connection modify $INTERFACE \
  ipv4.method manual \
  ipv4.addresses $IP_ADDRESS \
  ipv4.gateway $GATEWAY \
  ipv4.dns "$DNS"

# 接続を再起動
nmcli connection down $INTERFACE
nmcli connection up $INTERFACE

echo "IPアドレスを $IP_ADDRESS に設定しました"

使い方:

chmod +x set-static-ip.sh
sudo ./set-static-ip.sh

まとめ:状況に応じて最適なコマンドを選ぼう

AlmaLinuxでコマンドを使ってIPアドレスを設定する方法をまとめます。

主な設定方法:

1. nmcliコマンド(推奨)

  • NetworkManagerの標準ツール
  • 設定が永続化される
  • 管理がしやすい
  • 最も推奨される方法

2. ipコマンド

  • 低レベルな設定
  • 一時的(再起動で消える)
  • テストや緊急時に便利

3. 設定ファイル編集

  • 直接ファイルを編集
  • スクリプト化に適している
  • 上級者向け

よく使うnmcliコマンド:

# 固定IP設定
sudo nmcli connection modify ens33 \
  ipv4.method manual \
  ipv4.addresses 192.168.1.100/24 \
  ipv4.gateway 192.168.1.1 \
  ipv4.dns "8.8.8.8"

# DHCP設定
sudo nmcli connection modify ens33 ipv4.method auto

# 設定を適用
sudo nmcli connection up ens33

# 状態確認
nmcli device show ens33

トラブル時のチェック項目:

  • NetworkManagerの状態確認
  • インターフェース名の確認
  • ゲートウェイへの疎通確認
  • DNS設定の確認
  • ログの確認

ベストプラクティス:

  • 設定変更前にバックアップを取る
  • テスト環境で試してから本番に適用
  • 設定内容をドキュメント化する
  • 定期的に設定を見直す

AlmaLinuxのネットワーク設定は、コマンドラインを使えば素早く確実に行えます。

nmcliコマンドをマスターすれば、GUI環境がなくても、リモートからでも、自在にネットワーク設定を変更できるようになりますよ。

最初は複雑に感じるかもしれませんが、基本的なコマンドを覚えてしまえば、後は応用するだけです。

この記事で紹介したコマンドを実際に試しながら、少しずつ慣れていってくださいね。

サーバー管理の基本スキルとして、ぜひコマンドラインでのネットワーク設定をマスターしましょう!

コメント

タイトルとURLをコピーしました