「ifconfig」コマンドに関する記事/チュートリアルを読みましたが、ほとんどの一般的な説明が含まれています。
「ipコマンドにはifconfigはお勧めできません」
そして、ipコマンドを学ぶことをお勧めします。しかし、それらのどれも、「ip」コマンドが「ifconfig」よりも強力な理由を説明していません。
それらの違いは何ですか?
答え1
ifconfig
私はnet-tools
長い間Linuxネットワークスタックに正しく従うことができませんでした。また、ioctl
カーネルと対話するための醜く、あまり強力な方法であるネットワーク構成にも使用されています。
Linuxネットワーキングコードの多くの変更や多くの新機能は、net-tools
マルチパスルーティング、ポリシールーティング(RPDBを参照)を使用してアクセスできません。route
同じメトリックを使用して同じ宛先に複数のパスを追加するなど、愚かな操作を実行できます。
また:
ifconfig
一部のデバイスの正しいハードウェアアドレスは報告されません。ipip
などのカーネル内の静的トンネルは設定できませんsit
。gre
l2tp
tun
またはデバイスを作成できませんtap
。- 与えられたインターフェイスに複数のアドレスを追加することも意味がありません。
net-tools
また、Linuxフロー制御システムの設定には使用できません。
また、見ることができますifconfig
残念。
編集する:net-tools
開発中断の主張を削除し、今頃この記事の出所を忘れてしまいました。net-tools
主にバグ修正、国際化などの小さな改善と機能を提供することはありましたが、リリース以降の作業は続行されました。iproute2
答え2
ifconfig
ネットワークインターフェイスに関する情報を表示し、特定の設定を変更する従来のコマンドです。特に、インターフェースを開閉することができます。ほとんどのUnixバリアントに存在します。
Linuxでは、このifconfig
コマンドは長い間進歩していません。それでもうまくいきます。何かを使っているとifconfig
止まる理由はありません。
Linuxは次のサービスも提供しますip
。IP ルート 2ツールキット。このコマンドは、およびをip
含むいくつかの基本コマンドと他のコマンドを組み合わせます。はるかに多くのことができます。一方、特に組み込みシステムでは常に存在するわけではありません(Linux以外のUNIXバリアントでは絶対に存在しません)。ifconfig
route
arp
ip
ifconfig
ip
構文解析の出力がifconfig
少し悪いです。構文解析の出力がip
少し悪いです。そこには勝者はいません。
答え3
フィロナの答えに何かを追加するだけです。 2005年頃にネットワークスタックを制御する新しいメカニズムが導入されました。ネットワークリンクソケット。
iproute2
全二重ネットリンクソケットメカニズムを利用し、システムコールifconfig
に依存するようにネットワークインターフェイスを設定します。ioctl
ここには2つの主要な論文があります。Netlinkの動機そしてrtnetlinkの使用。
答え4
私の経験に基づいて結果を見つけました。設定されている場合思ったより消化しやすいIP-*司令部、IMOは視覚的に少し残念です。一般的な使用法では、インターフェイス、ステータス、IPアドレスなど、提供されているもののサブセットのみが必要です。設定されている場合読みやすくなります。
設定されている場合:
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
loop txqueuelen 1000 (Local Loopback)
RX packets 297454 bytes 14872700 (14.1 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 297454 bytes 14872700 (14.1 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 255.255.255.0 broadcast 10.0.0.255
ether aa:aa:aa:aa:aa:aa txqueuelen 1000 (Ethernet)
aa:aa:aa:aa:aa:aabytes 596277 (582.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9083 bytes 738309 (721.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.0.20 netmask 255.255.255.0 broadcast 10.0.0.255
ether aa:aa:aa:aa:aa:aa txqueuelen 1000 (Ethernet)
aa:aa:aa:aa:aa:aabytes 596277 (582.3 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 9083 bytes 738309 (721.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
IPアドレスと比較:
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
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
inet 10.0.0.10/24 brd 10.0.0.255 scope global eth0
valid_lft forever preferred_lft forever
3: eth1 <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether aa:aa:aa:aa:aa:aa brd ff:ff:ff:ff:ff:ff
inet 10.0.0.20/24 brd 10.0.0.255 scope global eth1
valid_lft forever preferred_lft forever