lsblk
블록 장치 처럼 구성된 네트워크 인터페이스를 트리 보기로 시각화하는 Linux 명령이 있습니까 ?
예를 들어, 그러한 프로그램의 출력은 다음과 같을 수 있습니다(상향식 접근 방식).
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
기존 유틸리티에서 옵션을 검색했지만 아무것도 찾지 못했습니다. 그래도 내 관점에서는 필수 기능이 유용하다고 생각한다. 그래서 ip link show
명령을 구문 분석하고 질문에서 원하는 출력과 유사한 내용을 인쇄하기 위해 간단한 bash 스크립트를 만들었습니다 .
$ ./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/
출력 형식은 tree
, utf
및 입니다 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=""];
}