Linux에서 bmon을 사용하여 네트워크 대역폭을 모니터링하는 방법
게시 됨: 2022-01-29 bmon
Linux 애플리케이션을 사용하면 네트워크 연결에서 대역폭 사용량을 볼 수 있습니다. 그러나 세부 사항을 이해하려면 약간의 탐정 작업이 필요하므로 이를 수행했습니다!
bmon 작동 방식
다양한 네트워크 인터페이스의 활동을 보여주는 동적 그래프와 실시간 통계는 네트워크의 성능과 대역폭 소비에 대한 유용한 정보를 제공할 수 있습니다. 이것이 바로 bmon
이 터미널 창에서 제공하는 것입니다.
자동차의 속도계를 보는 것처럼 이따금 그래프를 볼 수 있습니다. 마찬가지로, 차량의 무언가를 조사해야 하는 경우 정비사가 진단 시스템에 연결하여 판독값을 확인할 수 있습니다. bmon
은 상세한 판독값과 유사합니다.
그러나 bmon
명령의 통계는 처음에는 당혹스러울 수 있습니다. 예를 들어 "Ip6 Reasm/Frag"라는 세 가지가 있습니다. 무슨 일이야?
그럼에도 불구하고 일단 코드를 해독하고 나면 네트워크 트래픽을 더 자세히 이해하려는 경우 명령의 판독 값이 매우 중요합니다.
우리는 당신을 위해 작업을 넣었고, 심지어 이들 중 일부의 맨 아래에 도달하기 위해 소스 코드를 확인했습니다. 고맙게도 bmon
에 대한 다른 모든 것은 상당히 간단합니다.
bmon 설치
Ubuntu에 bmon
을 설치하려면 다음 명령을 사용하십시오.
sudo apt-get install bmon
Fedora에 설치하려면 다음을 입력하십시오.
sudo dnf 설치 bmon
Manjaro의 경우 명령은 다음과 같습니다.
sudo pacman - sy bmon
더 비몬 디스플레이
bmon
을 입력하고 Enter 키를 눌러 프로그램을 시작합니다. bmon
디스플레이는 여러 창으로 분할됩니다. 상위 3개는 "인터페이스", "RX" 및 "TX"로 표시됩니다. 중앙 창에는 자세한 통계와 그래프가 표시됩니다.
"인터페이스" 창은 컴퓨터에 장착된 네트워크 인터페이스를 보여줍니다. 또한 각 네트워크 인터페이스가 사용하는 대기열 규칙(qdisc)을 보여줍니다(자세한 내용은 나중에).
"RX" 창은 각 인터페이스와 해당 대기열에 대해 초당 수신된 비트 수와 초당 패킷 수를 표시합니다. "TX" 창은 각 인터페이스와 해당 대기열에 대해 초당 전송된 비트와 패킷을 보여줍니다.
우리 컴퓨터에는 루프백 인터페이스(루프백 어댑터라고도 함)와 유선 이더넷 어댑터의 두 가지 인터페이스만 설치되어 있습니다. 루프백 인터페이스는 "lo"라고 하고 이더넷 인터페이스는 "enp0s3"이라고 합니다.
컴퓨터의 이더넷 어댑터는 다른 이름을 가질 수 있습니다. 랩톱을 사용하는 경우 무선 어댑터도 표시되며 이름이 "wl"로 시작될 것입니다.
bmon
은 현재 선택된 네트워크 인터페이스에 대한 정보를 표시합니다. 선택한 인터페이스는 옆에 보다 큼 기호( >
)가 강조 표시된 인터페이스입니다. 위쪽 및 아래쪽 화살표를 눌러 보다 큼 기호를 이동하고 모니터링할 인터페이스를 선택할 수 있습니다. 우리는 이더넷 어댑터를 선택했습니다.
이제 활성 네트워크 인터페이스에 있으므로 그래프와 판독값에 일부 활동이 표시됩니다. 그래프가 표시되지 않으면 터미널 창을 아래쪽으로 늘립니다.
그래프로 표시되는 통계를 변경하려면 왼쪽 및 오른쪽 화살표 키를 누르십시오. 일부 그래프의 경우 채워지기 전에 H를 눌러야 합니다. 이것을 요구하는 사람들은 당신에게 그렇게 말할 것입니다.
네트워크 인터페이스에 대한 통계를 보려면 터미널 창을 표시할 수 있을 만큼 키가 커질 때까지 늘린 다음 D를 눌러 표시합니다. I(정보용)을 누르면 소량의 추가 정보가 표시됩니다.
터미널 창을 최대화하면 여러 그래프가 표시됩니다. 보다 작음(<) 및 보다 큼(>)을 눌러 그래프 쌍을 추가하거나 제거합니다. G를 누르면 그래프 표시를 모두 켜고 끕니다.
물음표(?)를 누르면 일반적인 키 입력과 함께 "빠른 참조" 도움말 화면이 표시됩니다.
물음표(?)를 다시 눌러 "빠른 참조" 화면을 닫습니다.
상세 통계
터미널 창이 충분히 크고 넓다면(그렇지 않은 경우 확장) "D"를 눌러 상세 보기를 켜고 끌 수 있습니다.
표시되는 열의 수는 터미널 창의 너비에 따라 다릅니다. 표준 80열 터미널 창에는 2개가 표시됩니다. 창이 넓을수록 더 많은 열이 표시됩니다. 그러나 더 넓은 창에서는 더 많은 통계를 얻을 수 없습니다. 당신은 여전히 같은 수치의 집합을 볼 수 있습니다. 그러나 열은 더 짧을 것입니다.
각 열의 맨 위 항목은 왼쪽 항목이 정보를 바이트 단위로 표시하는 반면 오른쪽 항목은 패킷 정보를 표시한다고 생각할 수 있습니다. 그러나 그렇지 않습니다.
각 열에는 통계 집합이 있습니다. 값의 이름, 수신( RX
) 및 전송( TX
) 값은 각 통계에 대해 표시됩니다. 값이 하이픈( -
)으로 나타나면 해당 방향에 대한 통계가 기록되지 않았음을 의미합니다.
일부 통계는 내부(수신) 또는 외부(전송) 전용입니다. 예를 들어, 전송된 열의 하이픈( -
)은 통계가 나가는 패킷에 대해 유효하지 않으며 들어오는 패킷에만 적용됨을 나타냅니다. 맨 위 줄은 수신 및 전송된 트래픽을 바이트(왼쪽)와 패킷(오른쪽)으로 표시합니다.
다른 모든 통계는 열에서 열로 이동하면서 알파벳 순서로 나열됩니다. 그들 중 몇몇은 같은 이름을 공유합니다. 아래에서 모두 무엇을 의미하는지 설명하겠습니다. 우리는 또한 약어 이름을 철자했습니다. IPv6이 언급되지 않은 경우 해당 통계는 IPv4를 나타냅니다.
왼쪽 열의 통계는 다음과 같습니다.
- 바이트: 바이트 단위의 트래픽입니다.
- 중단 오류: 중단 오류 수입니다. 소스와 대상 간의 연결 경로 어딘가에서 소프트웨어가 연결을 중단시켰습니다.
- 충돌: 충돌 오류 수입니다. 둘 이상의 장치가 동시에 패킷 전송을 시도했습니다. 전이중 네트워크에서는 문제가 되지 않습니다.
- CRC 오류: 순환 중복 검사 오류 수입니다.
- 오류: 총 오류 수입니다.
- 프레임 오류: 프레임 오류 수입니다. 프레임은 패킷의 네트워크 컨테이너입니다. 오류는 잘못된 프레임이 감지되었음을 의미합니다.
- ICMPv6: Internet Control Message Protocol v6 트래픽 패킷의 수입니다.
- ICMPv6 오류: ICMP v6 오류 수입니다.
- IP6 브로드캐스트: 네트워크의 모든 장치에 전송되는 IPv6 브로드캐스트 수입니다.
- IP6 CE 패킷: CE는 "고객 에지"를 나타냅니다. 이것은 일반적으로 라우터에 적용됩니다. 고객이 구독하는 연결 서비스의 PE(제공자 에지)에 연결합니다.
- Ip6 Delivers: 들어오는 IPv6 패킷 수입니다.
- Ip6 ECT(1) 패킷: ECN(명시적 혼잡 알림)을 사용하면 네트워크 연결의 한쪽 끝이 다른 쪽 끝에서 임박한 정체를 알릴 수 있습니다. 패킷은 경고 역할을 하는 플래그로 표시됩니다. 수신단은 혼잡과 가능한 패킷 손실을 피하기 위해 전송 속도를 줄일 수 있습니다. ECN 가능 전송(ECT) 패킷은 ECN 가능 전송을 통해 전달되고 있음을 나타내는 플래그로 표시됩니다. 이를 통해 중간 라우터가 그에 따라 반응할 수 있습니다. 유형 1 ECN 패킷은 수신 측에서 ECN을 활성화하고 발신 전송에 추가하도록 지시합니다.
- IP6 헤더 오류: IPv6 헤더에 오류가 있는 패킷 수입니다.
- IP6 멀티캐스트 패킷: IPv6 멀티캐스트(브로드캐스트의 한 형태) 패킷 수입니다.
- Ip6 Non-ECT Packets: ECT(1)로 플래그가 지정되지 않은 IPv6 패킷 수입니다.
- Ip6 Reassembly/Fragment OK: 크기로 인해 단편화되어 수신 시 성공적으로 재조립된 IPv6 패킷 수입니다.
- Ip6 Reassembly Timeouts(IP6 재조립 시간 초과): 크기로 인해 조각화되었지만 시간 초과로 인해 수신 시 재조립에 실패한 IPv6 패킷 수입니다.
- Ip6 잘린 패킷: 잘린 패킷 수입니다. IPv6 패킷이 전송되면 잘림 후보로 플래그가 지정될 수 있습니다. MTU(최대 전송 단위)를 초과하여 패킷을 처리할 수 없는 중간 라우터가 있는 경우 라우터는 패킷을 잘라내고 표시한 다음 대상으로 전달합니다. 수신되면 상대방은 ICMP 패킷을 소스로 다시 보내 패킷을 줄이기 위해 MTU 추정치를 업데이트하도록 지시할 수 있습니다.
- Ip6 Discards: 폐기된 IPv6 패킷 수입니다. 소스와 대상 사이의 장치가 올바르게 설정되지 않고 IPv6 설정이 작동하지 않으면 IPv6 트래픽을 처리하지 않습니다. 폐기됩니다.
- IP6 패킷: 모든 유형의 IPv6 패킷의 총 수입니다.
- 누락된 오류: 전송에서 누락된 패킷 수입니다. 원본 메시지를 다시 만들 수 있도록 패킷에 번호가 지정됩니다. 누락된 것이 있으면 부재가 눈에 띕니다.
- 핸들러 없음: 프로토콜 핸들러가 발견되지 않은 패킷 수입니다.
- 창 오류: 창 오류 수입니다. 패킷의 창은 헤더의 옥텟 수입니다. 비정상적인 숫자가 있으면 헤더를 해석할 수 없습니다.
오른쪽 열의 통계는 다음과 같습니다.
- 패킷: 패킷 의 트래픽입니다.
- 운송업체 오류: 운송업체 오류 수입니다. 이는 신호 변조에 문제가 발생할 경우 발생합니다. 이는 네트워킹 장비 간의 이중 불일치 또는 케이블, 소켓 또는 커넥터의 물리적 손상을 나타낼 수 있습니다.
- 압축됨: 압축된 패킷 수입니다.
- 삭제됨 : 결과적으로 목적지에 도달하지 못한(혼잡으로 인해) 삭제된 패킷 수입니다.
- FIFO 오류: FIFO (선입 선출) 버퍼 오류 수입니다. 네트워크 인터페이스 전송 버퍼가 충분히 빨리 비워지지 않아 오버런 중입니다.
- 하트비트 오류: 하드웨어 또는 소프트웨어는 정상 작동 중임을 나타내거나 동기화를 허용하기 위해 일반 신호를 사용할 수 있습니다. 여기서 숫자는 손실된 "하트비트"의 수입니다.
- ICMPv6 체크섬 오류: Internet Control Message Protocol v6 메시지 체크섬 오류 수입니다.
- IP6 주소 오류: 잘못된 IPv6 주소로 인한 오류 수
- IP6 브로드캐스트 패킷: IPv6 브로드캐스트 패킷 수입니다.
- IP6 체크섬 오류: IPv6 체크섬 오류 수입니다. IPv6의 ICMP 및 UDP(User Datagram Protocol) 패킷은 체크섬을 사용하지만 일반 IPv6 IP 패킷은 사용하지 않습니다.
- Ip6 ECT(0) 패킷: ECT(1) 패킷과 동일하게 취급됩니다.
- Ip6 Forwarded: 전달된 IPv6 패킷 유니캐스트 포워딩의 수입니다. Unicast는 중간 라우터 및 전달자 체인을 통해 소스에서 대상으로 패킷을 호핑합니다.
- Ip6 Multicasts: 전달된 IPv6 패킷 멀티캐스트 포워딩의 수입니다. 멀티캐스트는 패킷을 동시에 대상 그룹으로 보냅니다(Wi-Fi 작동 방식).
- IP6 경로 없음: 경로 오류가 없는 횟수입니다. 끝으로 가는 경로를 계산할 수 없기 때문에 목적지에 도달할 수 없음을 의미합니다.
- Ip6 리어셈블리/프래그먼트 실패: 크기로 인해 프래그먼트화되었으며 수신 시 리어셈블리에 실패한 IPv6 패킷 수입니다.
- Ip6 리어셈블리/프래그먼트 요청: 크기로 인해 프래그먼트화되어 수신 시 재조립해야 했던 IPv6 패킷 수입니다.
- Ip6 Too Big Errors(IP6 너무 큰 오류): 수신된 ICMP "너무 큰" 메시지의 수로, 최대 전송 단위보다 큰 IPv6 패킷이 전송되었음을 나타냅니다.
- IP6 알 수 없는 프로토콜 오류: 알 수 없는 프로토콜 을 사용하여 수신된 패킷 수입니다.
- Ip6 Octets: 수신 및 전송된 옥텟의 볼륨입니다. IPv6의 헤더는 40옥텟(320비트, 옥텟당 8비트)이고 최소 패킷 크기는 1,280옥텟(10,240비트)입니다.
- 길이 오류: 헤더에 가능한 최소 패킷 길이보다 짧은 길이 값으로 도착하는 패킷 수입니다.
- 멀티캐스트: 멀티캐스트 브로드캐스트 수입니다.
- 초과 오류: 초과 오류 수입니다. 수신 버퍼가 오버플로되었거나 지원되는 것보다 큰 프레임 값으로 패킷이 도착하여 수락할 수 없습니다.
추가 정보
I를 누르면("정보"에서와 같이) 추가 정보 창을 토글합니다. 추가 정보가 표시되지 않으면 창이 충분히 크지 않은 것입니다. D를 눌러 자세한 통계를 끄거나 G를 눌러 그래프를 끄거나 창을 늘릴 수 있습니다.
추가 정보는 다음과 같습니다.
- MTU: 최대 전송 단위.
- 작동 상태 : 네트워크 인터페이스의 작동 상태입니다.
- 주소: 네트워크 인터페이스의 MAC(미디어 액세스 제어) 주소입니다.
- 모드: 일반적으로
default
으로 설정되지만tunnel
,beet
또는ro
를 볼 수 있습니다. 처음 세 가지는 IP 보안(IPSec)과 관련이 있습니다.default
설정은 일반적으로 페이로드가 암호화되는transport
모드입니다. 클라이언트 대 사이트 VPN(가상 사설망)은 일반적으로 이것을 사용합니다. 사이트 간 VPN은 일반적으로 전체 패킷이 암호화되는tunnel
모드를 사용합니다. Bound End-to-End Tunnel (beet
) 모드에서는 고정된 숨겨진 IP 주소와 기타 보이는 IP 주소를 사용하여 두 장치 사이에 터널이 생성됩니다.ro
모드는 모바일 IPv6을 위한 라우팅 최적화 방법입니다. - 제품군: 사용 중인 네트워크 프로토콜 제품군입니다.
- Qdisc: 큐잉 규율.
red
(Random Early Detection),codel
(Controlled Delay),fq_codel
(Fair Queuing with Controlled Delay)로 설정할 수 있습니다. - 플래그: 이 표시기는 네트워크 연결의 기능을 보여줍니다. 우리의 연결은
broadcast
및multicast
전송을 사용할 수 있으며 인터페이스는Up
(작동 및 연결됨)입니다. - IfIndex: 인터페이스 인덱스는 네트워크 인터페이스와 관련된 고유한 식별 번호입니다.
- 브로드캐스트: 브로드캐스트 MAC 주소입니다. 이 주소로 전송하면 수신된 패킷이 모든 장치에 브로드캐스트됩니다.
- TXQlen: 전송 큐 크기(용량).
- 별칭: IP 별칭은 물리적 네트워크 연결에 여러 IP 주소를 제공합니다. 그런 다음 하나의 네트워크 인터페이스 카드를 통해 다른 서브넷에 액세스할 수 있습니다. 테스트 컴퓨터에서 사용 중인 별칭이 없습니다.
bmon
은 어떤 면에서는 물고기도 새도 아닌 약간 재미있는 생물입니다. 그래프는 원시적인 매력을 가지고 있으며 진행 상황을 잘 보여줍니다.
그러나 ASCII로 렌더링되는 한계를 감안할 때 초정밀성을 기대할 수는 없습니다. 그러나 가끔 보면 연결이 최대인지, 이상하게 트래픽이 없는지 또는 그 사이의 어딘가에 있는지 알 수 있습니다.
반면에 상세한 통계는 상세하고 세분화되어 있습니다. 라벨링의 다소 캐주얼한 접근 방식과 결합되어 해독하기가 훨씬 더 어렵습니다.
바라건대, 위의 설명은 bmon
이 조금 더 접근하기 쉽게 만들 것입니다. 네트워크 트래픽의 상태와 대역폭 소비를 모니터링할 수 있는 유용하고 가벼운 도구입니다.
리눅스 명령어 | ||
파일 | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · 보기 · 문자열 · 유형 · 이름 바꾸기 · zip · 압축 풀기 · 마운트 · 언마운트 · 설치 · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · 패치 · 변환 · rclone · 파쇄 · srm | |
프로세스 | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · 종료 · 재부팅 · 정지 · poweroff · passwd · lscpu · crontab · 날짜 · bg · fg | |
네트워킹 | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw |
관련: 개발자 및 열광자를 위한 최고의 Linux 노트북