「ifconfig」コマンドと「ip」コマンドの違い


19

「ifconfig」コマンドに関するいくつかの記事/チュートリアルを読みましたが、それらのほとんどには共通のステートメントが含まれていました-

「ifconfigはipコマンドによって非推奨になりました」

ipコマンドを学ぶことを提案しました。しかし、「ip」コマンドが「ifconfig」よりも強力であることを説明した人はいませんでした。

両者の違いは何ですか?



回答:


21

ifconfigからですnet-tools。これは長い間、Linuxネットワークスタックに完全に追いついていませんでした。またioctl、ネットワーク設定にも使用されます。これは、カーネルと対話するofくて強力ではない方法です。

Linuxネットワーキングコードの多くの変更と多くの新機能はnet-tools、マルチパスルーティング、ポリシールーティングを使用してアクセスできません(RPDBを参照)。route同じメトリックを使用して、同じ宛先に複数のルートを追加するなどの愚かなことを実行できます。

さらに:

  • ifconfig 一部のデバイスの適切なハードウェアアドレスを報告しません。
  • あなたは設定することはできませんipipsitgrel2tpなど、カーネル内の静的トンネル。
  • 作成tuntapデバイスもできません。
  • 特定のインターフェイスに複数のアドレスを追加する方法のセマンティクスも貧弱です。
  • また、net-toolsどちらを使用してLinuxトラフィック制御システムを構成することもできません。

ifconfigsucksも参照してください。

編集net-tools開発を中止するという主張を削除し、この投稿をどこで手に入れたかを今では忘れていた。net-tools' iproute2がリリースされて以来取り組んできましたが、それは主にバグの修正と、国際化などのマイナーな拡張機能です。


NET-3 net-toolsだけではありませんifconfig。たとえば、GNU inetutilsには別のものがあります。そして、それだけではありません。 unix.stackexchange.com/a/504084/5132
JdeBP

7

ifconfigネットワークインターフェイスに関する情報を表示し、一部の設定を変更する従来のコマンドです。特に、インターフェースを上下させることができます。ほとんどのUNIXバリアントに存在します。

Linuxでは、ifconfigコマンドは長い間進化していません。それはそれが何をするかにはまだ完全に問題ありません。ifconfig何かのために使用している場合、停止する理由はありません。

Linuxは、iproute2ツールスイートipからのコマンドも提供します。コマンドには、いくつかの古典的なコマンドを組み合わせて、より多くの、を含む、と。より多くのことができます。一方、特に組み込みシステムでは常に存在するとは限りません(Linux以外のUNIXバリアントでは決してありません)。ipifconfigroutearpipifconfigip

ifconfigの出力の解析はちょっとひどいです。ipの出力の解析はちょっとひどいです。勝者はいません。


私は常に、解析ipの出力はかなり単純で、確かにのよりはるかに単純であると考えてきましたifconfig。また、多くの場合、ipコマンドの出力をip変更せずに、またはまったく変更せずに別のコマンドへの入力として使用できることも気に入っています(たとえば、のすべての行をip route showの引数として使用できますip route add)。
パトリック

1
@Patrickはを解析しip routeip rule出力は非常に明確で、解析は非常に簡単です。しかしip link、またはip addr痛みです。ip addrおそらく、スイッチを使用して正確なステートメントを出力するために、誰かがパッチまたは何かを提出して、あなたが現在の設定を使用することを望んでいますip route show
ゾレダチェ

5

pilonaの回答に少しだけ追加します。2005年頃、ネットワークスタックを制御する新しいメカニズム、netlinkソケットが導入されました。

ネットワークインターフェイスを構成するには、システムコールに依存しiproute2ながら、その全二重ネットリンクソケットメカニズムを使用します。ここに、netlinkの背後にある動機とrtnetlinkの使用法に関する2つの主要な論文がありますifconfigioctl

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.