网络接口有类似 lsblk 的东西吗?

网络接口有类似 lsblk 的东西吗?

是否有一个 Linux 命令可以在树视图中可视化配置的网络接口,就像lsblk块设备一样?

例如,此类程序的输出可能如下所示(自下而上的方法):

eth0   
└─bond0
  ├─bond0.42
  │ └─br42
  └─bond0.43
    └─br43
eth1
└─bond0
  ├─bond0.42
  │ └─br42
  └─bond0.43
    └─br43
tap100i0
└─br42
tap100i1
└─br43
tap101i0
└─br42
tap101i1
└─br43

或者这个(自上而下的方法):

br42
├─bond0.42
│ └─bond0
│   ├─eth0
│   └─eth1
├─tap100i0
└─tap101i0
br43
├─bond0.43
│ └─bond0
│   ├─eth0
│   └─eth1
├─tap100i1
└─tap101i1

注意:我并不是在寻找能够产生精确输出的工具,而是询问是否有人知道具有类似结果的命令。

答案1

我在现有实用程序中搜索了一个选项,但没有找到任何选项。尽管如此,从我的角度来看,所需的功能还是有用的。所以我做了一个简单的 bash 脚本来解析ip link show命令并打印类似于问题中所需输出的内容:

$ ./nettree.sh -u
eth3
    bond1
       bond0
eth2
    bond0
eth1
    bond0
eth0
lupen3
    bond1
       bond0
lo
lxcbr0
virbr0
veth6404e35
    docker0

我把脚本推送到github了:https://github.com/zabojcampula/show-net-devices-tree

答案2

我找到了预先存在的已接受答案这个问题,我自己也用了很多年。

最近,我发现自己对其进行了一些更新/调整,以检测 VLAN 设备层次结构、PPPoE 和其他内容。然后基本完全重写它

与 AA 相比,检查/sys/class/net/和下的文件/文件夹/proc/net/以构建层次结构。

输出格式为treeutf、 和graphviz。它还使用以下-s选项查询远程 ssh 主机:

$ ./nettree.sh 
meshif
└── bat0
    └── vswitch
        ├── hmv
        │   └── home
        └── iso
wlp2s0

$ ./nettree.sh -d -l
wlp2s0
home ━┓
      ┗━ hmv ━┓
              ┗━ vswitch ━┓
                          ┗━ bat0 ━┓
                                   ┗━ meshif
iso ━┓
     ┗━ vswitch ━┓
                 ┗━ bat0 ━┓
                          ┗━ meshif

$ ./nettree.sh -d -G
graph iftree {
  "wlp2s0"[label="wlp1s0", class="wireless"];
  "switch"[label="switch", class="switch"];
  "hmv"[label="homev", class="virtual"];
  "bat0"[label="bat0", class="virtual"];
  "home"[label="home", class="bond"];
  "iso"[label="iso", class="virtual"];
  "meshif"[label="usbxg2a", class="wireless"];
  "home" -- "hmv"[label=""];
  "hmv" -- "vswitch"[label=""];
  "iso" -- "vswitch"[label=""];
  "vswitch" -- "bat0"[label=""];
  "bat0" -- "meshif"[label=""];
}

相关内容