Linuxのip・ssコマンドでネットワーク設定を完全マスター

Linuxサーバーのネットワーク設定を確認・変更するなら、まずipコマンドとssコマンドの2つだけを覚えてください。ifconfigやnetstatは多くのディストリビューションで非推奨扱いとなり、iproute2パッケージのipとssが標準ツールになっています。本記事ではアドレス確認からルーティング変更、ソケット状態の調査まで、実務で使う操作を手順ごとに整理します。
ipコマンドの基本操作
ipコマンドはiproute2パッケージに含まれ、Debian系・RHEL系ともに標準でインストール済みです。サブコマンドを切り替えることで、アドレス管理・リンク管理・ルーティング管理をひとつのコマンド体系で扱えます。
アドレス確認とaddr
現在のIPアドレス割り当てを見るにはip addr showを実行します。省略形のip aでも同じ結果が得られます。出力にはインターフェース名、状態(UPかDOWNか)、inet行に割り当てられたIPv4アドレスとサブネットマスクがCIDR表記で並びます。特定のインターフェースだけ見たい場合はip addr show eth0のように名前を指定してください。
リンク状態をlinkで確認
物理層・データリンク層の状態を見るならip link showです。MTUサイズ、MACアドレス、リンクの状態がわかります。ケーブル未接続やドライバ不調が疑われる場合、まずこのコマンドでstate行がDOWNになっていないか確認します。インターフェースを一時的に無効化するにはip link set eth0 down、再度有効化するにはip link set eth0 upを使います。
ルーティングテーブル
ip route showを実行するとカーネルが保持する経路情報が一覧表示されます。default行がデフォルトゲートウェイ、それ以外の行が特定ネットワーク宛ての経路です。複数のNICを持つサーバーで通信がおかしいときは、まずこの一覧で意図した経路になっているかを見ます。経路がひとつも表示されない、またはdefault行が欠けている場合は疎通不可の原因になります。
ネットワーク設定の変更手順
ipコマンドで加えた変更は再起動で消える一時設定です。恒久化にはNetworkManagerのnmcli、netplan、あるいはディストリビューション固有の設定ファイルを使う必要があります。この違いを理解せずに設定すると、再起動後に「直したはずなのに戻っている」という事象が起きるため注意してください。
IPアドレスの追加削除
インターフェースにIPアドレスを追加するには次のように実行します。
ip addr add 192.168.1.50/24 dev eth0— eth0にアドレスを追加ip addr del 192.168.1.50/24 dev eth0— 追加したアドレスを削除ip addr flush dev eth0— インターフェースの全アドレスを削除
flushはインターフェースに設定された全アドレスを一括削除するため、リモート接続中のSSHセッションで実行すると自分自身の通信経路を切断する場合があります。実行前に対象インターフェースと現在の接続経路を必ず確認してください。
インターフェース有効化
設定変更後にインターフェースを再読込したい場合、down/upを組み合わせて反映させます。ip link set eth0 down && ip link set eth0 upのように連続実行すると、ドライバレベルでの再初期化に近い動作になります。仮想マシンやコンテナ環境では、この操作でDHCPの再取得が必要になるケースもあるため、あわせてdhclientやnetworkctlの状態も確認します。
静的ルートの追加
特定ネットワーク宛ての経路を追加するにはip route add 10.0.0.0/24 via 192.168.1.1 dev eth0を使います。デフォルトゲートウェイを変更する場合はip route add default via 192.168.1.1、既存のデフォルト経路を消してから追加し直す場合はip route del defaultを先に実行します。設定ミスでゲートウェイに疎通できなくなるリスクがあるため、コンソールアクセス手段を確保した状態で作業することを推奨します。
ssで接続状況を把握
ssコマンドはnetstatの後継として設計され、カーネルのソケット情報を直接読むため大規模接続数の環境でも高速に動作します。TCP/UDPの状態、ローカル・リモートのアドレスとポート、プロセス情報までを一度に確認できます。
リスニングポート確認
サーバーが待ち受けているポートを調べるにはss -tulnを実行します。tはTCP、uはUDP、lはリスニング状態のみ、nは名前解決をせず数値表示するオプションです。どのプロセスがポートを使っているかまで知りたい場合は管理者権限でss -tulnpを実行すると、末尾にプロセス名とPIDが付与されます。
確立済み接続の絞り込み
現在確立している通信だけを見るにはss -t state establishedを使います。特定のポート宛ての接続数を数えたい場合はss -t state established '( dport = :443 )'のようにフィルタ式を組み合わせます。同時接続数が想定より多い、あるいは特定IPからの接続が集中している場合、この絞り込みが障害調査の起点になります。
プロトコル別フィルタ
UDPソケットのみを対象にする場合はss -u -a、TCPのタイムウェイト状態を数えたい場合はss -t state time-wait | wc -lのように件数集計と組み合わせます。tw状態が極端に多い場合はTCPの終了処理が滞留している兆候であり、アプリケーション側のコネクション管理を見直す判断材料になります。
ipとssの実践活用
旧来のnet-toolsパッケージ(ifconfig・route・netstat・arp)とiproute2パッケージの対応関係を整理すると、移行時の迷いが減ります。
| 旧コマンド | iproute2での代替 | 主な用途 |
|---|---|---|
| ifconfig | ip addr / ip link | アドレス・リンク状態の確認と変更 |
| route | ip route | ルーティングテーブルの確認と変更 |
| netstat -tuln | ss -tuln | リスニングポートの確認 |
| netstat -r | ip route show | ルーティングテーブルの表示 |
| arp -a | ip neigh show | 近隣キャッシュ(ARP/NDP)の確認 |
障害切り分けの流れ
通信障害の切り分けでは、まずip link showで物理層の状態を確認し、次にip addr showでアドレス設定を確認、続いてip route showで経路を確認するという順序が効率的です。経路まで正常であれば、最後にss -tulnで対象サービスが実際にポートを開いているかを確認します。この4段階を順に潰していくことで、レイヤーごとの問題箇所を素早く特定できます。
netstatからの移行
netstatが依然インストールされている環境でも、iproute2への移行を進める理由は表示速度と情報の網羅性にあります。ソケット数が数万規模になる本番環境では、procファイルシステムを都度パースするnetstatより、カーネルのソケット情報を直接取得するssの方が応答が速く、CPU負荷も低く抑えられます。両コマンドが併存する環境では、スクリプトの新規作成時にssへ寄せていく方針が実務的です。
なお、ipとssのオプション体系はカーネルバージョンやディストリビューションによって微妙に異なる場合があります。本記事の内容は一般的な挙動を示すものであり、具体的な挙動は使用しているディストリビューションの公式ドキュメントおよびman ip・man ssで必ず確認してください。ルーティング変更やインターフェースの無効化は本番環境への影響が大きいため、テスト環境での事前検証、または自己責任での実施を前提としてください。
よくある質問
Q1. ipコマンドがない場合は
最小構成のコンテナイメージなどではiproute2パッケージ自体が未導入の場合があります。Debian系ではapt install iproute2、RHEL系ではdnf install iprouteで導入できます。
Q2. 設定は再起動後も残るか
ipコマンドで加えた変更はカーネルのランタイム設定であり、再起動で失われます。恒久化にはnmcli、netplan、あるいはディストリビューション固有の設定ファイルへの記述が必要です。詳細は使用中のディストリビューションの公式ドキュメントを参照してください。
Q3. ポートを使っているプロセスを知りたい
sudo ss -tulnpを実行するとプロセス名とPIDが表示されます。sudoなしでは自分の所有プロセス以外のプロセス情報が省略される場合があります。
Q4. IPv6の設定にも対応するか
ipコマンドはIPv4・IPv6のどちらも同じ構文で扱えます。IPv6アドレスの表示に絞る場合はip -6 addr show、IPv6経路の確認はip -6 route showを使います。
Q5. 権限エラーが出る場合は
アドレスやルートの追加・削除、リンクの有効化・無効化はネットワーク設定の変更にあたるため、root権限またはsudoが必要です。表示系のコマンド(addr show、route showなど)は一般ユーザーでも実行できます。
関連記事
まとめ
ipコマンドはアドレス・リンク・ルーティングの3系統をひとつの体系で扱え、ssコマンドはソケット状態を高速に把握できます。障害調査ではip link show→ip addr show→ip route show→ss -tulnの順に確認すると、レイヤーごとの原因切り分けが進みます。旧来のifconfig・netstatからの移行は、対応表を手元に置きながら少しずつコマンドを置き換えていく進め方が現実的です。設定変更を伴う操作は本番環境で慎重に扱い、テスト環境での確認を経てから適用してください。
本記事はRoute Bloom編集部が各ベンダー公式ドキュメント・エンジニア監修をもとに作成しています。インフラ・クラウド構築は環境により異なります。本番環境への適用前に必ずテストを実施してください。情報の正確性には万全を期していますが、最新情報は各公式ドキュメントをご確認ください。 編集ポリシーはこちら



