Red Hat系LinuxでIPアドレスを確認する方法|RHEL・CentOS共通のコマンド解説

Linux

Linuxサーバーの運用やネットワーク設定を行うとき、以下のような場面で自分のマシンのIPアドレスを確認する必要が出てきます。

  • サーバーの初期設定時にネットワーク構成を確認したい
  • SSH接続やリモートアクセスの設定で自分のIPを知りたい
  • ネットワークトラブルの原因調査を行いたい
  • 負荷分散やクラスター構成でのノード識別が必要
  • セキュリティ監査でネットワーク設定を確認したい
  • DHCP環境で動的に割り当てられたIPを確認したい

特にRed Hat Enterprise Linux(RHEL)、CentOS、AlmaLinux、Rocky LinuxなどのRed Hat系ディストリビューションを管理している方は、正確なコマンドの使い方を知っておくことが重要です。

この記事では、以下の内容を分かりやすく解説します。

  • Red Hat系LinuxでIPアドレスを確認する現在推奨されるコマンド
  • 従来のifconfigコマンドとの違いと使い分け
  • 用途別の効率的な確認方法
  • ネットワーク設定の詳細情報を取得する方法
  • よくあるトラブルシューティング手法

スポンサーリンク

Red Hat系Linuxの現状とネットワークツールの変遷

Red Hat系ディストリビューションの対象バージョン

この記事で扱う対象

  • RHEL 7以降(Red Hat Enterprise Linux)
  • CentOS 7/8/Stream
  • AlmaLinux 8/9
  • Rocky Linux 8/9
  • Fedora 現行サポート版

ネットワークツールの変遷

従来の環境(~RHEL 6)

  • 主要ツールifconfigroutenetstat
  • パッケージnet-tools
  • 特徴:直感的だが機能が限定的

現在の環境(RHEL 7以降)

  • 主要ツールipss
  • パッケージiproute2(標準インストール)
  • 特徴:高機能で詳細な情報を取得可能

なぜipコマンドが推奨されるのか

技術的な理由

  • kernel との直接通信:より効率的な情報取得
  • 豊富な機能:ルーティング、VPN、トンネル等に対応
  • JSON出力対応:スクリプトでの処理が容易
  • アクティブな開発:継続的な機能追加とバグ修正

運用面での理由

  • 標準搭載:追加インストール不要
  • 一貫性:Red Hat系全バージョンで共通
  • 将来性net-toolsは非推奨化の方向

ipコマンドでIPアドレスを確認する方法

基本的な確認コマンド

全インターフェースの情報表示

ip addr show

短縮形(推奨)

ip a

実行例と出力の読み方

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever

2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 00:50:56:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.100/24 brd 192.168.1.255 scope global dynamic noprefixroute ens192
       valid_lft 86342sec preferred_lft 86342sec
    inet6 fe80::250:56ff:fexx:xxxx/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

出力の重要な部分

  • inet 192.168.1.100/24:IPv4アドレスとサブネットマスク
  • ens192:ネットワークインターフェース名
  • state UP:インターフェースの状態(アクティブ)
  • dynamic:DHCP等で動的に割り当てられたアドレス

特定インターフェースの確認

特定のインターフェースのみ表示

ip addr show ens192

ループバックインターフェースの確認

ip addr show lo

アクティブなインターフェースのみ表示

ip addr show up

IPv4のみ、IPv6のみの表示

IPv4アドレスのみ表示

ip -4 addr show

IPv6アドレスのみ表示

ip -6 addr show

IPv4アドレスを簡潔に表示

ip -4 addr show | grep inet | awk '{print $2}' | cut -d/ -f1

JSON形式での出力

JSON形式で出力(スクリプト処理に便利)

ip -j addr show

特定の情報を抽出(jqツールと組み合わせ)

ip -j addr show | jq -r '.[] | select(.ifname=="ens192") | .addr_info[] | select(.family=="inet") | .local'

ifconfigコマンドとの比較と使い分け

ifconfigコマンドの基本

従来の方法

ifconfig

実行例

ens192: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.1.100  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::250:56ff:fexx:xxxx  prefixlen 64  scopeid 0x20<link>
        ether 00:50:56:xx:xx:xx  txqueuelen 1000  (Ethernet)
        RX packets 12345  bytes 1234567 (1.1 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 23456  bytes 2345678 (2.2 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

net-toolsのインストール

CentOS/RHEL 7系

sudo yum install net-tools

CentOS/RHEL 8系以降

sudo dnf install net-tools

インストール確認

rpm -q net-tools

コマンド対応表

機能従来(net-tools)現在(iproute2)
IPアドレス表示ifconfigip addr show
インターフェース有効化ifup eth0ip link set eth0 up
ルーティング表示route -nip route show
ARP表示arp -aip neigh show
ネットワーク統計netstat -iip -s link
接続状態表示netstat -tulnss -tuln

どちらを使うべきか

ipコマンドを推奨する場面

  • 新規構築:RHEL 7以降の環境
  • スクリプト作成:JSON出力や詳細制御が必要
  • 高度な設定:VLANやブリッジ設定
  • 継続運用:将来的な互換性を重視

ifconfigを使用する場面

  • レガシー環境:RHEL 6以前の古いシステム
  • 運用継続:既存の運用手順を変更したくない
  • 習熟度:チームメンバーがifconfigに慣れている

効率的なIPアドレス確認テクニック

素早い確認方法

IPアドレスのみを簡潔に表示

hostname -I

出力例

192.168.1.100 10.0.0.50

外部向けIPアドレスの確認

curl -s ifconfig.me
curl -s ipinfo.io/ip
curl -s checkip.amazonaws.com

特定条件での絞り込み

プライベートIPアドレスのみ抽出

ip route get 8.8.8.8 | awk '{print $7; exit}'

デフォルトゲートウェイの確認

ip route | grep default

DNSサーバーの確認

cat /etc/resolv.conf | grep nameserver

ネットワーク設定ファイルの確認

RHEL/CentOS 7以前の設定ファイル

cat /etc/sysconfig/network-scripts/ifcfg-ens192

NetworkManager環境での確認

nmcli connection show
nmcli device status

systemd-networkd環境での確認

networkctl status
networkctl list

詳細なネットワーク情報の取得

ネットワークインターフェースの詳細情報

物理的な接続状態

ip link show

インターフェース統計情報

ip -s link show ens192

出力例

2: ens192: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether 00:50:56:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    RX: bytes  packets  errors  dropped overrun mcast
    123456789  98765    0       0       0       1234
    TX: bytes  packets  errors  dropped carrier collsns
    234567890  87654    0       0       0       0

ルーティング情報の詳細確認

ルーティングテーブル全体

ip route show table all

特定の宛先への経路確認

ip route get 8.8.8.8

ルーティングキャッシュの確認

ip route show cache

ネットワーク接続状態の確認

アクティブな接続一覧(ssコマンド)

ss -tuln

特定ポートでのリスン状態

ss -tlnp | grep :80

プロセス別ネットワーク使用状況

ss -tlnp

トラブルシューティングと実践的な活用法

よくある問題と対処法

問題1:IPアドレスが表示されない

原因と対処法

# インターフェースの状態確認
ip link show

# インターフェースが down の場合
sudo ip link set ens192 up

# DHCPクライアントの再起動
sudo dhclient ens192

# NetworkManager経由での設定確認
nmcli device show ens192

問題2:間違ったIPアドレスが設定されている

手動でのIP設定変更

# 現在の設定削除
sudo ip addr del 192.168.1.100/24 dev ens192

# 新しいIP設定
sudo ip addr add 192.168.1.200/24 dev ens192

# 永続化(NetworkManager使用環境)
sudo nmcli connection modify ens192 ipv4.addresses 192.168.1.200/24
sudo nmcli connection up ens192

問題3:複数のIPアドレスが設定されている

すべてのIPアドレス確認

ip addr show ens192 | grep inet

不要なIPアドレスの削除

sudo ip addr del 192.168.1.101/24 dev ens192

ネットワーク診断の総合的な手順

基本診断スクリプト

#!/bin/bash
echo "=== ネットワーク診断レポート ==="
echo "実行日時: $(date)"
echo ""

echo "1. ネットワークインターフェース状態:"
ip link show
echo ""

echo "2. IPアドレス設定:"
ip addr show
echo ""

echo "3. ルーティング設定:"
ip route show
echo ""

echo "4. DNS設定:"
cat /etc/resolv.conf
echo ""

echo "5. 外部接続テスト:"
ping -c 3 8.8.8.8
echo ""

echo "6. ネットワークサービス状態:"
systemctl status NetworkManager

監視とログ確認

ネットワークイベントのリアルタイム監視

ip monitor all

システムログでのネットワーク関連イベント

journalctl -u NetworkManager -f
journalctl -k | grep -i network

DHCP関連のログ確認

journalctl -u dhclient -n 50

セキュリティと運用上の注意点

情報漏洩の防止

機密情報のマスキング

# IPアドレスの一部をマスクして表示
ip addr show | sed 's/\([0-9]\{1,3\}\.\)\{3\}[0-9]\{1,3\}/XXX.XXX.XXX.XXX/g'

ログファイルでの注意点

  • システムログにIPアドレスが記録される
  • セキュリティ監査時の適切な情報管理
  • 外部へのレポート時の個人情報保護

アクセス権限の管理

一般ユーザーでの実行制限

# 読み取り専用のコマンド(一般ユーザーで実行可能)
ip addr show
ip route show
ss -tuln

# 設定変更コマンド(root権限が必要)
sudo ip addr add
sudo ip link set
sudo ip route add

自動化とスクリプト化

定期的なネットワーク状態チェック

#!/bin/bash
# /usr/local/bin/network_check.sh

LOG_FILE="/var/log/network_status.log"
TIMESTAMP=$(date '+%Y-%m-%d %H:%M:%S')

# IPアドレス取得
IP_ADDR=$(ip route get 8.8.8.8 | awk '{print $7; exit}')

# ログ出力
echo "[$TIMESTAMP] IP Address: $IP_ADDR" >> $LOG_FILE

# 異常検知(IPアドレスが取得できない場合)
if [ -z "$IP_ADDR" ]; then
    echo "[$TIMESTAMP] ERROR: No IP address detected" >> $LOG_FILE
    # アラート送信処理をここに追加
fi

cron設定例

# 5分間隔でネットワーク状態をチェック
*/5 * * * * /usr/local/bin/network_check.sh

まとめ:Red Hat系Linuxでの効率的なIP確認をマスターしよう

Red Hat系LinuxでIPアドレスを確認する方法をマスターすることで、システム管理業務を大幅に効率化できます。

現在推奨される方法

  • 基本確認ip addr show(短縮:ip a
  • 簡潔表示hostname -I
  • 詳細情報ip -s link show
  • JSON出力ip -j addr show

従来の方法との使い分け

  • 新規環境ipコマンド(iproute2)を優先使用
  • レガシー環境ifconfig(net-tools)も理解しておく
  • スクリプト作成:JSON出力やパイプ処理を活用

効率的な運用のポイント

  • 基本コマンドの習熟
  • トラブルシューティング手順の体系化
  • 自動化スクリプトでの定期監視
  • セキュリティを考慮した情報管理

実践的な活用場面

  • サーバー初期設定でのネットワーク確認
  • トラブル対応での迅速な状況把握
  • 監視システムでの自動チェック
  • セキュリティ監査での設定確認

コメント

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