GNU/Linux >> Linux の 問題 >  >> Linux

Linuxで利用可能なネットワークインターフェイスを見つける方法

インストール時にLinuxでネットワークインターフェイスを構成できます。ただし、インストール後に実行したり、既存の設定を変更したりすることを好む人もいます。すでに知っているように、コマンドラインからネットワーク設定を構成するには、最初にシステムで使用可能なインターフェイスの数を知る必要があります。この詳細なチュートリアルでは、LinuxおよびUnixオペレーティングシステムで使用可能なネットワークインターフェイスを一覧表示して見つけるためのすべての可能な方法について説明します。

Linuxで利用可能なネットワークインターフェースを見つける

利用可能なネットワークカードはいくつかの方法で見つけることができます。このガイドでは、Linuxでネットワークインターフェイスカードを一覧表示する10の方法について説明します。

1。 ifconfigコマンドを使用してネットワークインターフェースを一覧表示する

ifconfigを使用してネットワークインターフェースの詳細を検索するために最も一般的に使用される方法 指図。一部のLinuxユーザーはまだこれを使用していると思います。

$ ifconfig -a

出力例:

enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500
ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 171420 bytes 303980988 (289.8 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 171420 bytes 303980988 (289.8 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlp9s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.225.37 netmask 255.255.255.0 broadcast 192.168.225.255
inet6 2409:4072:6183:c604:c218:85ff:fe50:474f prefixlen 64 scopeid 0x0<global>
inet6 fe80::c218:85ff:fe50:474f prefixlen 64 scopeid 0x20<link>
ether c0:18:85:50:47:4f txqueuelen 1000 (Ethernet)
RX packets 564574 bytes 628671925 (599.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 299706 bytes 60535732 (57.7 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

上記の出力でわかるように、2つのネットワークインターフェイス、つまり enp5s0があります。 (オンボード有線イーサネットアダプタ)および wlp9s0 (ワイヤレスネットワークアダプタ)私のLinuxボックス。ここでは、 lo はループバックインターフェイスであり、すべてのネットワークサービスにローカルでアクセスするために使用されます。 IPアドレスは127.0.0.1

同じ'ifconfig'を使用することもできます FreeBSD など、多くのUNIXバリアントのコマンド 、利用可能なネットワークカードを一覧表示します。

2。 ipコマンドを使用してネットワークインターフェースを一覧表示する

'ifconfig' コマンドは、最新のLinuxバージョンでは非推奨です。したがって、 'ip'を使用できます 以下に示すようにネットワークインターフェースを表示するコマンド。

$ ip link show

出力例:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
   link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp5s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
    link/ether 24:b6:fd:37:8b:29 brd ff:ff:ff:ff:ff:ff
3: wlp9s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DORMANT group default qlen 1000
    link/ether c0:18:85:50:47:4f brd ff:ff:ff:ff:ff:ff

次のコマンドも使用できます。

$ ip addr
$ ip -s link

これらのコマンドは、ネットワークインターフェイスの接続状態も表示することに気づきましたか?上記の出力をよく見ると、私のイーサネットカードがネットワークケーブルに接続されていないことがわかります(「DOWN」という単語を参照してください。 上記の出力で)。そして、ワイヤレスネットワークカードが接続されています(「UP」という単語を参照してください )。詳細については、以前のガイドでLinuxのネットワークインターフェースの接続状態を確認するを確認してください。 。

これらの2つのコマンド(ifconfig およびip )Linuxシステムで利用可能なネットワークカードを見つけるのに十分です。

ただし、Linuxでネットワークインターフェイスを一覧表示するために使用できる方法は他にいくつかあります。

3。 / sys / class /net/ディレクトリを使用してネットワークインターフェイスを一覧表示する

Linuxカーネルは、ネットワークインターフェースの詳細を /sys/class/net内に保存します。 ディレクトリ。このディレクトリを調べると、使用可能なインターフェイスのリストを確認できます。

$ ls /sys/class/net

出力例:

enp5s0  lo  virbr0  wlp9s0

4。 / proc / net/devファイルを使用してネットワークインターフェースを一覧表示する

Linuxオペレーティングシステムでは、 /proc/net/dev ファイルには、ネットワークインターフェイスに関する統計が含まれています。

使用可能なネットワークカードを表示するには、次のコマンドを使用してその内容を表示します。

$ cat /proc/net/dev

出力例:

Inter-|   Receive                                                |  Transmit
 face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:    2836      30    0    0    0     0          0         0     2836      30    0    0    0     0       0          0
enp5s0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0
wlp9s0: 557664882  402062    0    0    0     0          0         0 20087136  165358    0    0    0     0       0          0
virbr0:       0       0    0    0    0     0          0         0        0       0    0    0    0     0       0          0

5。 netstatコマンドを使用してネットワークインターフェースを一覧表示する

netstat コマンドは、ネットワーク接続、ルーティングテーブル、インターフェイス統計、マスカレード接続、マルチキャストメンバーシップなどのさまざまな詳細を表示します。

$ netstat -i

出力例:

Kernel Interface table
Iface             MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
enp5s0           1500        0      0      0 0             0      0      0      0 BMU
lo              65536       30      0      0 0            30      0      0      0 LRU
virbr0           1500        0      0      0 0             0      0      0      0 BMU
wlp9s0           1500   402063      0      0 0        165361      0      0      0 BMRU

netstatは廃止されましたことに注意してください 。 "netstat -i"の置き換え "ip -s link"です 。また、このメソッドでは、使用可能なすべてのインターフェースではなく、アクティブなインターフェースのみが一覧表示されることに注意してください。

6。 nmcliコマンドを使用してネットワークインターフェイスを一覧表示する

nmcli NetworkManagerを制御し、ネットワークステータスを報告するためのコマンドラインツールです。これは、ネットワーク接続の作成、表示、編集、削除、アクティブ化、および非アクティブ化、およびネットワークステータスの表示に使用されます。

Network ManagerがインストールされているLinuxシステムを使用している場合は、次のコマンドを使用してnmcliツールを使用して使用可能なネットワークインターフェイスを一覧表示できます。

$ nmcli device status

出力例:

DEVICE          TYPE      STATE                   CONNECTION    
wlp9s0          wifi      connected               JioFi4_12E9FE 
virbr0          bridge    connected (externally)  virbr0        
p2p-dev-wlp9s0  wifi-p2p  disconnected            --            
enp5s0          ethernet  unavailable             --            
lo              loopback  unmanaged               --            

このコマンドを使用して、Linuxシステムのネットワークインターフェイスを表示することもできます。

$ nmcli connection show

前述のユーティリティのほとんどは、ほとんどのLinuxおよびUnixシステムにプリインストールされています。ネットワークカードのリストを表示するために利用できる外部ユーティリティもいくつかあります。

7。 hwinfoを使用してネットワークインターフェースのリストを表示する

Hwinfo Linuxシステムのハードウェア情報を表示するためのコマンドラインユーティリティです。 Linuxシステムに存在するハードウェアをプローブし、各ハードウェアデバイスの詳細を表示します。

Hwinfoは、多くのLinuxディストリビューションの公式リポジトリで利用できます。 RPMベースのシステムにhwinfoをインストールするには、次のコマンドを実行します。

$ sudo dnf install hwinfo

Debベースのシステムでは、次のコマンドを使用してhwinfoをインストールできます。

$ sudo apt install hwinfo

インストールしたら、次のコマンドを実行して、hwinfoユーティリティを使用してネットワークインターフェイスの名前を一覧表示します。

$ sudo hwinfo --short --network

出力例:

network interface:                                              
  enp5s0               Ethernet network interface
  virbr0               Ethernet network interface
  wlp9s0               Ethernet network interface
  lo                   Loopback network interface

8。 lshwを使用してネットワークインターフェースを表示する

Lshw(ハードウェアリスター) Linuxシステムのハードウェア構成の詳細情報を提供するCLIユーティリティです。

Linuxでlshwユーティリティを使用してネットワークカードのリストを表示するには、次のコマンドを実行します。

$ sudo lshw -class network -short

出力例:

H/W path                 Device      Class          Description
===============================================================
/0/100/1c.1/0            enp5s0      network        RTL810xE PCI Express Fast Ethernet controller
/0/100/1c.3/0            wlp9s0      network        AR9285 Wireless Network Adapter (PCI-Express)

9。 inxiを使用してネットワークインターフェースを表示する

Inxi hwinfoやlshwのようなさらに別のコマンドラインシステム情報ツールです。システムハードウェア、CPU、ドライバー、Xorg、デスクトップ、カーネル、GCCバージョン、プロセス、RAM使用量、およびその他のさまざまな有用な情報が表示されます。

Linuxシステムでベンダー、カードドライバー、使用可能なネットワークインターフェイスの数など、ネットワークカードに関する情報を表示するには、 -Nを指定してinixを実行します。 オプション:

$ inxi -N
Network:   Device-1: Realtek RTL810xE PCI Express Fast Ethernet driver: r8169 
           Device-2: Qualcomm Atheros AR9285 Wireless Network Adapter driver: ath9k 

関連記事:

  • LinuxでCPU情報を確認または検索する方法

10。 lspciを使用してネットワークインターフェースを表示する

lspci コマンドは、Linuxシステム内のすべてのPCIデバイスを一覧表示します。

Linuxシステムで使用可能なネットワークインターフェースのリストを表示するには、 lspciを使用します egrepを使用 以下のようなコマンド:

$ lspci | egrep -i 'network|ethernet|wireless|wi-fi'

出力例:

05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL810xE PCI Express Fast Ethernet controller (rev 05)
09:00.0 Network controller: Qualcomm Atheros AR9285 Wireless Network Adapter (PCI-Express) (rev 01)
>

利用可能なネットワークインターフェースの名前のみを一覧表示する

これまで見てきたのは、Linuxで利用可能なネットワークインターフェイスを見つけるためのさまざまな方法です。前述のすべての方法で、使用可能なネットワークインターフェイスを、RX / TXの詳細、Macアドレス、接続状態、モード、ネットワークの種類などの追加の詳細とともに表示しました。不要な詳細を削除し、ネットワークインターフェイスの名前のみを一覧表示する場合は、次のいずれかのコマンドを使用できます。

$ ifconfig -a | sed 's/[ \t].*//;/^$/d'

出力例:

enp5s0:
lo:
virbr0:
wlp9s0:

ループバックデバイス(lo)を出力から除外するには、代わりに次のコマンドを実行します。

$ ifconfig -a | sed 's/[ \t].*//;/^\(lo\|\)$/d'

前述のように、ifconfig コマンドは非推奨です。 ifconfigの場合 コマンドを使用できません。ipを使用してください -oを使用してネットワークインターフェイスの名前のみを表示するコマンド 以下のようなフラグ:

$ ip -o link show | awk -F': ' '{print $2}'
lo
enp5s0
wlp9s0
virbr0

次のコマンドも使用できます:

$ ip addr show | awk '/^[1-9]/ {print $2}'

結論

このガイドでは、LinuxおよびUnixで使用可能なネットワークインターフェイスを見つけて一覧表示するための10の異なる方法について説明しました。 Linuxでネットワークインターフェイスの名前のみを表示するいくつかの方法も検討しました。

LinuxでIPアドレスを構成する方法については、次のガイドを確認してください。

  • LinuxおよびUnixで静的IPアドレスを構成する方法
  • Ubuntu18.04LTSでIPアドレスを構成する方法
  • ArchLinuxで静的および動的IPアドレスを構成する方法
  • Linuxで単一のネットワークカードに複数のIPアドレスを割り当てる方法

Linux
  1. LinuxでFINDを使用する方法

  2. LinuxでデフォルトゲートウェイIPを見つける方法

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

  1. DebianLinuxで静的IPアドレスを設定する方法

  2. Linuxでファイルを見つける方法

  3. C/C++ で利用可能なネットワーク インターフェイスを見つける

  1. LinuxでIPアドレスを見つける方法

  2. Linuxでファイルを見つける方法

  3. ネットワーク インターフェイスの容量を調べる方法は?