ウェブサイト検索

ネットワークインターフェイスを設定するための 24 の便利な「IP」コマンド


概要: このガイドでは、ip コマンドのいくつかの実用的な例について説明します。このガイドを終えると、 ユーザーはコマンド ライン インターフェイスから Linux でネットワーク タスクを効率的に実行できるようになります

システム管理者は、多くの場合、Linux サーバー上でネットワーク タスクを実行する必要があります。市場にはさまざまなグラフィカル ツールやコマンド ライン ツールが入手可能です。ただし、ほとんどの Linux ユーザーは、そのシンプルさと豊富な機能によりip コマンドを使用することを好みます。

ip コマンドは、ネットワーク インターフェイスに IP アドレスを割り当てたり、Linux システム上で有用なネットワーク変数を構成/更新したりするために使用される新しいネットワーク コマンド ライン ユーティリティです。

これはiproute2 パッケージの一部であり、ネットワーク インターフェイスの起動または停止、IP アドレスとルートの割り当てと削除、ARP キャッシュの管理など、いくつかのネットワーク管理タスクを提供します。

ip コマンドは古い ifconfig コマンドによく似ていますが、より多くの機能と機能が追加されており、非常に強力です。

ifconfig コマンドは非推奨となり、最新のすべての Linux ディストリビューションではip コマンドに置き換えられました。ただし、ifconfig コマンドは引き続き機能し、ほとんどの Linux ディストリビューションで使用できます。

注: 変更を行う前に、設定ファイルのバックアップを作成してください。

1. Linux で静的 IP アドレスを永続的に構成する

Linux で静的 IP アドレスを永続的に構成するには、ネットワーク構成ファイルを更新または編集して、システムに静的 IP アドレスを割り当てる必要があります。ターミナルまたはコマンド プロンプトから su (ユーザー切り替え) コマンドを実行するには、スーパーユーザーである必要があります。

RHEL システムで静的 IP アドレスを設定する

お気に入りのテキスト エディタを使用して、(eth0 または eth1) のネットワーク構成ファイルを開いて編集します。たとえば、RHEL ベースのディストリビューションでは、次のように IP アドレスを eth0 インターフェイスに割り当てます。

vi /etc/sysconfig/network-scripts/ifcfg-eth0     [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]

Debian システムで静的 IP アドレスを設定する

永続的な静的 IP アドレスを構成するには、Debian ベースのディストリビューションの場合に以下に示すように、ネットワーク インターフェイス構成ファイル /etc/network/interfaces を変更して永続的な変更を加える必要があります。

sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]

次に、次のコマンドを使用してすべての詳細を入力した後、ネットワーク サービスを再起動します。

sudo systemctl restart networking

2. Linux で静的 IP アドレスを一時的に構成する

一時的なネットワーク構成の場合は、ip コマンドを使用して、特定のインターフェイス (eth2) に IP アドレスをその場で割り当てることができます。

ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2

注: 残念ながら、システムを再起動すると、これらの設定はすべて失われます。

3. すべてのネットワークインターフェースを表示する方法

ip コマンドでは、リンク オブジェクトはネットワーク インターフェイスを表します。 show コマンドを一緒に使用すると、すべてのネットワーク インターフェイスを表示できます。

次に、次のコマンドを使用して、すべてのネットワーク インターフェイスを表示しましょう。

ip link show

上記の出力には、インターフェイス名、フラグ、ステータス、リンク アドレス、ブロードキャスト アドレスなど、すべてのネットワーク インターフェイスの詳細が表示されます。

4. 特定のネットワークインターフェースのIPアドレスを確認する方法

IP アドレスや MAC アドレス情報など、個々のネットワーク インターフェイスの深さ情報を取得するには、以下に示すように次のコマンドを使用します。

ip link show eth2

これまでは、ネットワーク インターフェイスに関する詳細情報を表示するリンク オブジェクトを使用していました。ただし、ネットワーク インターフェイスに関連付けられた IP アドレスは表示されません。この制限を克服するには、ip コマンドで addr オブジェクトを使用します。

これを例で理解してみましょう。

ip addr show

ここでは、出力にすべてのネットワーク インターフェイスの IP アドレスとその他の詳細が表示されていることがわかります。

個々のネットワーク インターフェイスの IP アドレスを表示するには、コマンドの引数としてネットワーク インターフェイス名を指定するだけです。

ip addr show eth2

5. カラー出力で IP アドレスを表示する方法

ip コマンドは、ネットワーク オブジェクトに関する詳細情報を表示します。ただし、限られた情報に目を向ける必要がある場合もあります。このような場合、カラー出力を有効にすることができます。このオプションでは、重要な詳細がさまざまな色で強調表示されます。

コマンドの --color オプションを使用して、出力をさまざまな色で表示してみましょう。

ip --color addr show eth2

上記の出力では、インターフェイス名、イーサネット アドレス、状態が異なる色で強調表示されていることがわかります。

6. IPアドレスをJSON形式で表示する方法

前の例では、ip コマンドが意味のある情報を表示することがわかりました。ただし、初歩的なスクリプトを使用して生の出力を解析し、意味のある情報を抽出するのは簡単な作業ではありません。このような場合、ip コマンドJSON形式で出力を生成するように指示できます。

そこで、コマンドで -j オプションを使用して、同じ出力を JSON 形式で表示してみましょう。

ip -j link show eth2

JSON は広く受け入れられている形式であり、さまざまなプログラミング言語で利用できる JSON パーサー ライブラリ/ツールが多数あるため、この方法は自動化を行うときに便利です。

7. JSON 出力を読みやすくする方法

前の例では、-j オプションを使用して出力をJSON 形式で表示しました。このデフォルトのJSON 形式はコンパクトでスペース効率が優れています。ただし、インデントがないため、出力は読みにくくなります。

この制限を克服するには、-p オプションを使用します。これにより、出力がインデントされて読みやすくなります。以下の例でこれを理解してみましょう。

ip -j -p link show eth2

ここでは、同じ出力が前の例と比較してはるかに読みやすくなっていることがわかります。

8. ネットワークインターフェイスから IP アドレスを削除する方法

前の例では、add サブコマンドを使用して IP アドレスを割り当てました。同様の方法で、del サブコマンドを使用して特定の IP アドレスを削除できます。

次のコマンドは、指定されたインターフェイス (eth2) から割り当てられた IP アドレスを削除します。

ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2

次に、IP アドレスが削除されたことを確認してみましょう。

ip -j -p addr show eth2

上記の出力では、 現在のeth2 ネットワーク インターフェイスには IP アドレスが 1 つだけあることがわかります。

9. ネットワークインターフェースを有効にする方法

インターフェイス名 (eth2) を指定した「up 」フラグにより、ネットワーク インターフェイスが有効になります。たとえば、次のコマンドはeth2 ネットワーク インターフェイスをアクティブにします。

ip link set eth2 up
OR
sudo ip link set dev eth2 up

それでは、更新ステータスを確認してみましょう。

ip -j -p link show eth2 | grep operstate

10. ネットワークインターフェースを無効にする方法

インターフェイス名 (eth2) を含む「down 」フラグは、ネットワーク インターフェイスを無効にします。たとえば、次のコマンドはeth2 ネットワーク インターフェイスを非アクティブ化します。

ip link set eth2 down
OR
sudo ip link set eth2 down

次に、eth2 ネットワーク インターフェイスのステータスを確認してみましょう。

ip -j -p link show eth2 | grep operstate

上記の出力は、ネットワーク インターフェイスの変更された状態を示しています。

11. ネットワークインターフェースのIPアドレスをフラッシュする方法

前の例では、del サブコマンドを使用して IP アドレスを削除する方法を説明しました。ただし、特定のネットワーク インターフェイスのすべての IP アドレスを削除する必要がある場合があります。このような場合は、flush サブコマンドを使用できます。

まず、flush サブコマンドを使用して、eth2 ネットワーク インターフェイスのすべての IP アドレスを削除します。

sudo ip addr flush eth2

次に、eth2 ネットワーク インターフェイスのすべての IP アドレスが削除されていることを確認してみましょう。

ip -j -p addr show eth2

上記の出力では、addr_info フィールドに空の JSON 配列が表示されています。これは、eth2 ネットワーク インターフェイスに関連付けられた IP アドレスがないことを示しています。

12. ルーティング テーブルを確認するにはどうすればよいですか

ルーティング テーブルには、ネットワーク パケットを正しい宛先に転送するために必要な情報が格納されています。 ip コマンドのroute オブジェクトを使用して、ルーティング ルールを表示できます。

以下のコマンドを使用して、ルーティング テーブルのすべてのルールを一覧表示してみましょう。

ip route show

上記の出力では、最初の列は宛先を表し、最後の列は送信元 IP アドレスを表します。

13. 新しい静的ルートを追加するにはどうすればよいですか

トラフィックがデフォルト ゲートウェイを通過してはいけないのに、なぜ静的ルートまたは手動ルートを追加する必要があるのでしょうか?宛先に到達する最適な方法からトラフィックを通過させるには、静的ルートを追加する必要があります。

sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2

次に、エントリが正常に追加されたことを確認してみましょう。

ip route show

15. 静的ルートを削除する方法

del サブコマンドは、ルーティング テーブルから特定のエントリを削除します。たとえば、次のコマンドはeth2 デバイス ルートのエントリを削除します。

sudo ip route del 172.19.1.0/24

次に、エントリが正常に削除されたことを確認してみましょう。

ip route show

16. 永続的な静的ルートを追加するにはどうすればよいですか

システムを再起動すると、上記のルートはすべて失われます。永続的な静的ルートを追加するには、ファイル /etc/sysconfig/network-scripts/route-eth2 を編集します ((eth2) の静的ルートを保存しています。デフォルトでは、 route-eth2 ファイルは存在しないため、作成する必要があります。

RHEL システムでの永続的なルートの設定

vi /etc/sysconfig/network-scripts/route-eth2

次の行を追加し、保存して終了します。

172.19.1.0/24 via 172.19.1.2 dev eth2

Debian システムでの永続的なルートの設定

ファイル /etc/network/interfaces を開き、最後に永続性静的ルートを追加します。 IP アドレスは環境によって異なる場合があります。

sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2

次に、次のコマンドを使用してすべての詳細を入力した後、ネットワーク サービスを再起動します。

sudo systemctl restart networking

17. デフォルト ゲートウェイを追加するにはどうすればよいですか

ネットワークでは、デフォルト ゲートウェイが重要な役割を果たします。ルーティング テーブルに宛先に関する情報が含まれていない場合に使用されます。

デフォルト ゲートウェイは、グローバルに指定することも、インターフェイス固有の構成ファイルに対して指定することもできます。デフォルト ゲートウェイの利点は、システム内に複数の NIC が存在することです。コマンドの下に示すように、デフォルト ゲートウェイをオンザフライで追加できます。

まず、eth0 ネットワーク インターフェイスをデフォルト ゲートウェイとして追加しましょう。

sudo ip route add default via 172.17.0.1

次に、次のコマンドを使用してデフォルト ゲートウェイの設定を確認してみましょう。

ip route show

このコマンドはテスト マシンで実行したことに注意してください。運用環境でこのコマンドを使用する場合は注意してください。

18. デフォルトゲートウェイを削除する方法

次のコマンドを使用して、デフォルト ゲートウェイを削除できます。

sudo ip route del default

次に、ルーティング テーブルを一覧表示して、デフォルト ゲートウェイが削除されたことを確認しましょう。

ip route show

19. ARPキャッシュの表示方法

ARPアドレス解決プロトコルの略で、特定の IP アドレスに関連付けられたMAC アドレスを見つけるために使用されます。

ip コマンドでneigh オブジェクトを使用して、ARP キャッシュを表示できます。

ip neigh show

上記のコマンドでは、neigh は隣接するオブジェクトを表します。

20. ARP エントリの追加方法

新しい ARP エントリを作成するには、add サブコマンドをneigh オブジェクトとともに使用します。

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2

次に、ARP キャッシュ エントリをリストしてみましょう。

ip neigh show

上記の出力では、eth2 ネットワーク インターフェイスの新しいエントリが確認できます。

21. ARP エントリを削除する方法

他のネットワーク オブジェクトと同様に、del サブコマンドを使用して ARP エントリを削除できます。たとえば、次のコマンドは、eth2 ネットワーク インターフェイスの ARP エントリを削除します。

sudo ip neigh del 172.19.1.0 dev eth2

次に、ARP キャッシュをリストして、エントリが削除されたことを確認してみましょう。

ip neigh show 

22. ARP エントリをフラッシュする方法

flush サブコマンドを使用して、複数の ARP エントリを削除できます。これを理解するには、まず、STALE 状態のARP エントリをいくつか追加します。

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale

次に、新しいエントリが正常に追加されたことを確認します。

ip neigh show

次に、以下のコマンドを使用してすべてのエントリをフラッシュします。

sudo ip neigh flush all

最後に、すべてのエントリが削除されたことを確認します。

ip neigh show

23. ネットワークインターフェースのMTUを設定する方法

MTU最大送信ユニットの略で、1 つのトランザクションで送信できる最大のパケット サイズを表します。パフォーマンス要件に応じて MTU サイズを操作できます。

まず、eth2 ネットワーク インターフェイスの MTU を見つけます。

ip -j -p link show eth2 | grep mtu

次に、eth2 ネットワーク インターフェイスの MTU サイズを 3000 に更新します。

sudo ip link set mtu 3000 dev eth2

最後に、MTU が正常に更新されたことを確認します。

ip -j -p link show eth2 | grep mtu

24. ネットワーク Mac アドレスを変更する方法

ip コマンドを使用すると、ネットワーク インターフェイスの MAC アドレスを変更できます。これを実現するには、リンク オブジェクトを指定して set サブコマンドを使用します。

まず、eth2 ネットワーク インターフェイスの現在の MAC アドレスを一覧表示します。

ip -j -p link show eth2 | grep address

次に、以下のコマンドを使用してネットワーク インターフェイスの MAC アドレスを変更します。

sudo ip link set dev eth2 address 02:42:ac:13:01:03

最後に、MAC アドレスが変更されたことを確認します。

ip -j -p link show eth2 | grep address

IP コマンドの詳細については、ターミナル/コマンド プロンプトから man ip を実行するマニュアル ページを参照してください。

man ip
結論

この記事では、ip コマンドの一般的な例をいくつか説明しました。これらの例を日常生活で使用して、ネットワーク管理を実行できます。

Linux の ip コマンドの他の最良の例を知っていますか?以下のコメント欄であなたのご意見をお聞かせください