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


88

これはlinuxに関するものですが、一般的な* nixメソッドを知っている人がいればそれでいいでしょう。

昨日、イーサネットケーブルを接続した状態でシステムを起動しました。「NetworkManager」がインストールされていないので、起動したらifconfigDHCP インターフェースを手動で起動するためにイーサネットインターフェースの名前を探しに行きましたが、lo

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

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

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

また、彼らが指名されるかもしれないどれだけ、彼らが利用可能であることを確実に知ることはいいだろうならば、彼らはあるので、私は、ハードウェアの問題を除外することができ、などが利用可能なネットワークインタフェースの名前を見つけるための簡単な方法ではありませんLinuxでは?


質問では、あなたが使用しip linkたと述べますip link showが、まったく同じことを行うことを示唆する答えを受け入れます。どうして?
パベルシメルダ14

@PavelŠimerdaそうですね。私は実際に使用したかもしれませんip route-私は問題が解決した翌日にこの質問を書きました(私自身の答えを見てください); 私は使用する習慣がipなく、過度に質素なマニュアルページを高く評価していません/sys。私に。それを質問から完全に削除します。
goldilocks 14

iproute2のマニュアルページは最近非常に良くなっています。古いバージョンのパッケージを使用していると思います。
パベルシメルダ14

回答:


93

すべてのインターフェイスをリストする最も簡単な方法は、

ifconfig -a

編集

廃止されたシステムを使用している場合は、次を使用できます。

ip link show

3
私がちょうどmanページを見たなら!ipおそらくifconfigが「廃止」されており、IMOのほうがより鈍く、ユーザーフレンドリーなコマンドが少ないため、パラレルがあるかどうかを知るのは興味深いことです。
goldilocks 14

2
私の最初の事柄man ifconfig:「このプログラムは廃止されています!交換用にipをチェックしてください...」これはLinuxに特有のものかもしれません。何かとの後方互換性のために、それらを保持しなければならないことを願っています。
ゴルディロックス

4
ifconfigは非推奨、TMKであるため、を使用して例を表示しようとする必要がありますip。ifconfigウィキペディアの記事:en.wikipedia.org/wiki/Ifconfigを参照してください。
slm

3
@slm質問は(特定の)Linux固有ですが、BSDユーザーはとにかく "linux"ページを見る習慣があるので、両方を使用した例は良いようです。実際、Linuxをタイトルから外し、ビット(もともとこれは自己回答であり、移植可能な方法があるとは思いませんでした)。
goldilocks 14

5
ifconfigは非推奨ですか?いい加減にして。このコマンドは30年ほど前から使用されています。
マイケルマルティネス14

72

カーネルはそれらを名前でリストします/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)にプレフィックスはありません。


イーサネット用に取得するプレフィックスはethです。en無線LAN用だと思います。
カウシャルモディ

4
@kaushalmodi ethはLinuxカーネルです。systemdは、udev Freedesktop.orgの予測可能なインターフェイス名を使用して実装します。カーネルのインターフェイス名は、同じ意味で予測可能ではありません。これは、すべての混乱の原因です。上記の引用は、ここから明示的に切り取って貼り付けられますenイーサネットに使用するsystemdマシンがないので、それ以上のものがあります。最も近いのはem、他は完全に異なっています。詳細については、質問のFreedesk.orgリンクを自分で読むことができます。
goldilocks

4
[後]過去1年のうちにFedoraまたはsystemdがそれを修正しましたか?私のPCIイーサネットは今eno1です。
goldilocks


4

ifconfig= Solaris
ipconfig= Windows
ip= Linux

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


2
え?ifconfigもLinuxです。
fpmurphy

4
@ fpmurphy1 man ifconfigLinuxシステムの(概要の後の)最初の段落を読んでください。
-goldilocks
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.