これはLinuxに関するものですが、もし誰かが一般的な*nixの方法を知っていれば、それは良いことです。
昨日、イーサネットケーブルが接続されたシステムを起動しました。 "NetworkManager"はインストールされていないので、起動後、DHCPクライアントを手動で起動するためにifconfig
でイーサネットインターフェースの名前を調べようとしましたが、lo
以外のものは表示されませんでした。
NICはlspci
でリストアップされ、適切なカーネルドライバがロードされました。 このシステムは通常無線LANを使用しており、そのインターフェース名は wlan0
だったと記憶しています。 ifconfig wlan0 upを試したところ、
wlan0が現れました。 しかし、私が覚えている唯一のイーサネットインターフェイス名は
eth[N]と
em[N]` で、どちらも動作しませんでした。
このドキュメントでは "predictive interface names"について言及していますが、それが何であるかを簡単な言葉で説明するのには適していません。 このドキュメントでは、PCIバスとスロットの番号からこのケースの名前を推測することを示唆するソースコードが紹介されていますが、これは不必要に複雑な手間のように思えます。
しかし、/usr/lib/udev/rules.d
には100近いファイルがあり、どこに(そしてもしあれば)このためのsystemdの設定ファイルがあるのかを調べるのに1時間もかけるのは馬鹿げていると思います。
また、ハードウェアの問題などを除外するために、利用可能であることを確実に知ることができたらいいと思います。**linuxで利用可能なネットワークインターフェイスの名前を調べる簡単な方法はないのでしょうか?
私が知っている最もシンプルな方法は、すべてのインターフェイスをリストアップすることです。
ifconfig -a
EDIT
もし、この方法が廃止されたシステムを使っている場合は
ip link show
カーネルはこれらを /sys
に名前ごとにリストアップしています。これは (例えば) PCI デバイスのツリーに個別に含まれていますが、そもそもどこにあるのかわからない場合にそこから見つけるのは簡単ではありません。e.g:
> ls /sys/class/net
em1 lo wlp6so
別の例です。
> ls /sys/class/net
lo p6s1 wlan0
どれがどれだかわからない場合は、どちらかと一緒に並べればいいでしょう。
ifconfig [name] up
あるいは。
ip link set [name] up
そして、ifconfig
(引数なし)でリストアップされた(かなり明確な)手がかりを見てください。 Freedesktop.orgのドキュメントからリンクされているsystemdのソースコードも参照しています。
Two character prefixes based on the type of interface:
* en -- ethernet
* sl -- serial line IP (slip)
* wl -- wlan
* ww -- wwan
ただし、上記のうち1つのケース(p6s1
)ではプレフィックスがありません。