web-dev-qa-db-ja.com

使用可能なネットワークインターフェイスを見つけるにはどうすればよいですか?

これはLinuxに関するものですが、誰かが一般的な* nixの方法を知っているなら、それは良いでしょう。

昨日、イーサネットケーブルを接続した状態でシステムを起動しました。「NetworkManager」がインストールされていないため、起動したら、イーサネットクライアントの名前をifconfigで探し、DHCPクライアントを手動で起動しましたが、 lo以外は表示されませんでした。

NICはlspciを介してリストされ、適切なカーネルドライバーがロードされました。システムは通常wifiを使用しており、そのインターフェース名はwlan0でした。ifconfig wlan0 upを試したところ、wlan0が表示されましたが、覚えている唯一のイーサネットインターフェース名はeth[N]em[N]でしたが、どちらも機能しませんでした。

このドキュメント は「予測可能なインターフェース名」を指しますが、それらが何であるかを簡単な言葉で説明するのはうまくいきません。これは、この場合の名前がPCIバスおよびスロット番号から推定される可能性があることを意味するソースコードの一部を参照しています。これは、不必要に複雑な手間のようです。

他の検索では、これはsystemdudevを組み合わせて決定される可能性があると思いましたが、/usr/lib/udev/rules.dにはほぼ100個のファイルがあり、1時間かけてどこで( if)systemd設定ファイルがあるため、これもばかげているようです。

また、ifのように名前が付けられている可能性があるだけでなく、それらが使用可能であることを確認しておくと、ハードウェアの問題などを除外できますLinuxで使用可能なネットワークインターフェイスの名前を見つける簡単な方法はありませんか?

92
goldilocks

すべてのインターフェースをリストするために私が知っている最も簡単な方法は

ifconfig -a

[〜#〜]編集[〜#〜]

廃止されたシステムを使用している場合は、

ip link show
95
Elliott Frisch

カーネルは/sysにそれらを名前でリストします。どちらも(たとえば)PCIデバイスのツリーで個別に表示されます。 /sys/class/netのシンボリックリンク。例えば。:

> 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

上記のいずれかの場合(p6s1)にもプレフィックスはありません。

73
goldilocks

いつもしています cat /proc/net/devシンプルで覚えやすい

10
Mohammad Rafiee

ifconfig = Solaris
ipconfig = Windows
ip = Linux

私は知っていますが、追加や修正を受け入れることは確かです。

6
Mick Myhera