背景:
ifconfigコマンドを使用して、Linuxで利用可能なインターフェイスのリストを確認しています。
ただし、ifconfigの出力形式はUbuntu 16.04とUbuntu 17.10で異なります。
追加のチェックにより、ubuntu17.10のnet-toolsパッケージがアップグレードされ(net-tools 1.60からnet-tools 2.10-alphaへ)、最新のifconfigはコロン( ':')を含むネットワークインタフェース名を出力します。以前のバージョンの場合:
$ ifconfig --version net-tools 1.60 ifconfig 1.42 (2001-04-13)
$ifconfig
enp0s3リンクカプセル:イーサネット
最新バージョンの場合
$ ifconfig --version net-tools 2.10-alpha
$ifconfig
ens160: フラグ=4163 mtu 1500
チャジャン: フラグ=73 mtu 65536
これにより、出力で追加の「:」を考慮または予想するいくつかのツールが中断される可能性があります。
質問:
ifconfig出力形式への変更がそれを使用するツールに影響を与えないように、安定した方法でネットワークインタフェースのリストを取得する方法はありますか? ifconfigを一貫した方法で使用する代替方法はありますか?
ベストアンサー1
これネットワークツールパッケージは廃止しばらくはiproute2(ip
パッケージの基本ツール)に置き換えられました。多くのディストリビューションには、デフォルトのインストールの一部としてネットワーキングツールが含まれなくなりました。
その後、ネットワークツールの開発が再開されましたが、これはDebian 9.0システムで見られるように、互換性が損なわれるように多くのツールが改善されましたifconfig
。NEWS.Debian.gz
15年間のアップストリーム開発が中断された後、net-toolsが再開発され、多くの長い問題を解決しています。悪いニュースは、多くのコマンドの出力が変更され、解析に依存するスクリプトが確実に中断されることです。
したがって、iproute2ツールを使用するようにスクリプトを調整することをお勧めします。たとえば、ip link
上記のような情報を提供する必要がありますifconfig
。このアプローチの1つの欠点は、Linux以外のシステムとの互換性が壊れ、ほとんどすべてのLinux以外のシステムですifconfig
。