論理とは、コマンドで合法的なすべてを意味します
ip link
。たとえば、次のようになります。
ip link add link dum0 name dum0.200 type vlan protocol 802.1Q id 200
論理タイプは「vlan」です。マニュアルページを引用すると、すべての有効なタイプは次のとおりです。
vlan|vis|vcan|dummy|ifb|macvlan|macvtap|can|bridge|ipoib|ip6tnl|ipip|sit| vxlan|gre|gretap|ip6gre|ip6gretap|ip6gretap|watt
これは明らかに必要な物理デバイスタイプではありません(イーサネット、Wi-Fi、pppなど)。この問題、実際にはリファレンスジュエリー私がテストした物理学の種類は次のとおりです。
find /sys/class/net ! -type d | xargs --max-args=1 realpath |
while read d; do
b=$(basename $d) ; n=$(find $d -name type) ; echo -n $b' ' ; cat $n;
done
dum0.200 1
dum0.201 1
dum1.300 1
dum1.301 1
dummy0 1
ens36 1
ens33 1
lo 772
dum0 1
dum1 1
wlan0 1
ただし、仮想、VLAN、およびWlanデバイスはすべてARPHRD_ETHERタイプであることがわかりました。
もっと知っている人はいますか?よろしくお願いします。
====
2023年に改定予定。
これは、2つの物理イーサネットインターフェイス、Wi-Fi、インストールされているが無効になっているドッカー、2つのネットワーク、2つの仮想マシン、およびWirguard接続を持つlibvirtを搭載したシステムに由来します。 jqはstedolan.github.io/jqで提供されており、通常は良いパッケージマネージャと一緒にインストールされます。
$ ip -details -j l | jq -r '.[]|"\(.ifname), \(.link_type), \(.linkinfo.info_data.type), \(.linkinfo.info_kind), \(.linkinfo.info_slave_kind)"' | column -t -s ','
lo loopback null null null
enp43s0 ether null null null
enx00e04c680049 ether null null null
wlp0s20f3 ether null null null
virbr2 ether null bridge null
virbr1 ether null bridge null
docker0 ether null bridge null
vnet0 ether tap tun bridge
vnet1 ether tap tun bridge
vnet2 ether tap tun bridge
vnet3 ether tap tun bridge
wg0 none null wireguard null
$
ベストアンサー1
より簡単な解決策:
ip -details link show
仮想デバイスの場合、デバイスタイプは3行目に表示されます。