「ifconfig」コマンドに関するいくつかの記事/チュートリアルを読みましたが、それらのほとんどには共通のステートメントが含まれていました-
「ifconfigはipコマンドによって非推奨になりました」
ipコマンドを学ぶことを提案しました。しかし、「ip」コマンドが「ifconfig」よりも強力であることを説明した人はいませんでした。
両者の違いは何ですか?
「ifconfig」コマンドに関するいくつかの記事/チュートリアルを読みましたが、それらのほとんどには共通のステートメントが含まれていました-
「ifconfigはipコマンドによって非推奨になりました」
ipコマンドを学ぶことを提案しました。しかし、「ip」コマンドが「ifconfig」よりも強力であることを説明した人はいませんでした。
両者の違いは何ですか?
回答:
ifconfig
からですnet-tools
。これは長い間、Linuxネットワークスタックに完全に追いついていませんでした。またioctl
、ネットワーク設定にも使用されます。これは、カーネルと対話するofくて強力ではない方法です。
Linuxネットワーキングコードの多くの変更と多くの新機能はnet-tools
、マルチパスルーティング、ポリシールーティングを使用してアクセスできません(RPDBを参照)。route
同じメトリックを使用して、同じ宛先に複数のルートを追加するなどの愚かなことを実行できます。
さらに:
ifconfig
一部のデバイスの適切なハードウェアアドレスを報告しません。ipip
、sit
、gre
、l2tp
など、カーネル内の静的トンネル。tun
もtap
デバイスもできません。net-tools
どちらを使用してLinuxトラフィック制御システムを構成することもできません。ifconfig
sucksも参照してください。
編集:net-tools
開発を中止するという主張を削除し、この投稿をどこで手に入れたかを今では忘れていた。net-tools
' iproute2
がリリースされて以来取り組んできましたが、それは主にバグの修正と、国際化などのマイナーな拡張機能です。
ifconfig
。たとえば、GNU inetutilsには別のものがあります。そして、それだけではありません。 unix.stackexchange.com/a/504084/5132
ifconfig
ネットワークインターフェイスに関する情報を表示し、一部の設定を変更する従来のコマンドです。特に、インターフェースを上下させることができます。ほとんどのUNIXバリアントに存在します。
Linuxでは、ifconfig
コマンドは長い間進化していません。それはそれが何をするかにはまだ完全に問題ありません。ifconfig
何かのために使用している場合、停止する理由はありません。
Linuxは、iproute2ツールスイートip
からのコマンドも提供します。コマンドには、いくつかの古典的なコマンドを組み合わせて、より多くの、を含む、と。より多くのことができます。一方、特に組み込みシステムでは常に存在するとは限りません(Linux以外のUNIXバリアントでは決してありません)。ip
ifconfig
route
arp
ip
ifconfig
ip
ifconfig
の出力の解析はちょっとひどいです。ip
の出力の解析はちょっとひどいです。勝者はいません。
ip
の出力はかなり単純で、確かにのよりはるかに単純であると考えてきましたifconfig
。また、多くの場合、ip
コマンドの出力をip
変更せずに、またはまったく変更せずに別のコマンドへの入力として使用できることも気に入っています(たとえば、のすべての行をip route show
の引数として使用できますip route add
)。
ip route
、ip rule
出力は非常に明確で、解析は非常に簡単です。しかしip link
、またはip addr
痛みです。ip addr
おそらく、スイッチを使用して正確なステートメントを出力するために、誰かがパッチまたは何かを提出して、あなたが現在の設定を使用することを望んでいますip route show
。
pilonaの回答に少しだけ追加します。2005年頃、ネットワークスタックを制御する新しいメカニズム、netlinkソケットが導入されました。
ネットワークインターフェイスを構成するには、システムコールに依存しiproute2
ながら、その全二重ネットリンクソケットメカニズムを使用します。ここに、netlinkの背後にある動機とrtnetlinkの使用法に関する2つの主要な論文があります。ifconfig
ioctl