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)
- 主要ツール:
ifconfig
、route
、netstat
- パッケージ:
net-tools
- 特徴:直感的だが機能が限定的
現在の環境(RHEL 7以降)
- 主要ツール:
ip
、ss
- パッケージ:
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アドレス表示 | ifconfig | ip addr show |
インターフェース有効化 | ifup eth0 | ip link set eth0 up |
ルーティング表示 | route -n | ip route show |
ARP表示 | arp -a | ip neigh show |
ネットワーク統計 | netstat -i | ip -s link |
接続状態表示 | netstat -tuln | ss -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出力やパイプ処理を活用
効率的な運用のポイント
- 基本コマンドの習熟
- トラブルシューティング手順の体系化
- 自動化スクリプトでの定期監視
- セキュリティを考慮した情報管理
実践的な活用場面
- サーバー初期設定でのネットワーク確認
- トラブル対応での迅速な状況把握
- 監視システムでの自動チェック
- セキュリティ監査での設定確認
コメント