웹사이트 검색

bmon을 사용하여 Linux에서 네트워크 대역폭을 모니터링하는 방법


bmon Linux 애플리케이션을 사용하면 네트워크 연결에서 대역폭 사용량을 볼 수 있습니다. 그러나 더 미세한 세부 사항을 이해하려면 약간의 탐정 작업이 필요하므로 귀하를 위해 해냈습니다!

bmon 작동 방식

다양한 네트워크 인터페이스의 활동을 보여주는 동적 그래프 및 실시간 통계를 통해 네트워크 성능 및 대역폭 소비에 대한 정보를 얻을 수 있습니다. 이것이 바로 터미널 창에서 바로 bmon이 제공하는 것입니다.

자동차의 속도계를 보는 것처럼 때때로 그래프를 흘끗 볼 수 있습니다. 마찬가지로 차량에 있는 무언가를 조사해야 하는 경우 정비사는 차량을 진단 시스템에 연결하고 판독값을 확인할 수 있습니다. bmon에는 유사한 상세 판독값이 있습니다.

그러나 bmon 명령어의 통계는 처음에는 당혹스러울 수 있습니다. 예를 들어 Ip6 Reasm/Frag라는 세 가지가 있습니다. 그게 무슨 일이야?

그럼에도 불구하고 일단 코드를 해독한 후에는 네트워크 트래픽을 더 자세히 이해하려는 경우 명령의 판독 값이 매우 중요합니다.

우리는 당신을 위해 작업을 시작했으며 소스 코드를 확인하여 이들 중 일부의 바닥에 도달했습니다. 고맙게도 bmon에 대한 다른 모든 것은 합리적으로 간단합니다.

bmon 설치

Ubuntu에 bmon을 설치하려면 다음 명령을 사용하십시오.

sudo apt-get install bmon

Fedora에 설치하려면 다음을 입력하십시오.

sudo dnf install bmon

Manjaro의 경우 명령은 다음과 같습니다.

sudo pacman -Sy bmon

bmon 디스플레이

bmon을 입력하고 Enter 키를 눌러 프로그램을 시작합니다. bmon 디스플레이는 여러 창으로 분할됩니다. 상위 3개의 레이블은 인터페이스, RX 및 TX입니다. 중앙 창에는 자세한 통계 및 그래프가 표시됩니다.

인터페이스 창에는 컴퓨터에 장착된 네트워크 인터페이스가 표시됩니다. 또한 각 네트워크 인터페이스가 사용하고 있는 대기열 규율(qdisc)을 보여줍니다(자세한 내용은 나중에 설명).

RX 창에는 각 인터페이스와 대기열에 대한 초당 수신 비트와 초당 패킷이 표시됩니다. 'TX' 창에는 각 인터페이스와 해당 대기열에 대해 초당 전송된 비트와 초당 패킷이 표시됩니다.

우리 컴퓨터에는 루프백 인터페이스(루프백 어댑터라고도 함)와 유선 이더넷 어댑터의 두 가지 인터페이스만 설치되어 있습니다. 루프백 인터페이스는 lo라고 하고 이더넷 인터페이스는 enp0s3라고 합니다.

시스템의 이더넷 어댑터 이름이 다를 수 있습니다. 랩톱을 사용하는 경우 무선 어댑터도 표시되며 그 이름은 아마도 wl로 시작할 것입니다.

bmon은 현재 선택된 네트워크 인터페이스에 대한 정보를 표시합니다. 선택한 인터페이스는 옆에 강조 표시된 보다 큼 기호(>)가 있는 인터페이스입니다. 위쪽 및 아래쪽 화살표를 눌러 보다 큼 기호를 이동하고 모니터링할 인터페이스를 선택할 수 있습니다. 우리는 이더넷 어댑터를 선택했습니다.

이제 활성 네트워크 인터페이스에 있으므로 그래프와 판독값에서 일부 활동을 볼 수 있습니다. 그래프가 보이지 않으면 터미널 창을 아래로 늘립니다.

그래프로 표시되는 통계를 변경하려면 왼쪽 및 오른쪽 화살표 키를 누르십시오. 일부 그래프의 경우 채워지기 전에 H를 눌러야 합니다. 이것을 요구하는 사람들은 그렇게 말할 것입니다.

네트워크 인터페이스에 대한 통계를 보려면 터미널 창을 충분히 키울 때까지 늘린 다음 D를 눌러 표시합니다. I(정보용)를 누르면 소량의 추가 정보가 표시됩니다.

터미널 창을 최대화하면 여러 그래프가 표시됩니다. 보다 작음(<) 및 보다 큼(>)을 눌러 그래프 쌍을 추가하거나 제거합니다. G를 누르면 그래프 표시가 모두 켜짐과 꺼짐으로 전환됩니다.

물음표(?)를 누르면 일반적인 키 입력과 함께 빠른 참조 도움말 화면이 표시됩니다.

빠른 참조 화면을 닫으려면 물음표(?)를 다시 누르십시오.

자세한 통계

터미널 창이 충분히 크고 넓다면(그렇지 않은 경우 확장) D를 눌러 상세 보기를 켜고 끌 수 있습니다.

표시되는 열 수는 터미널 창의 너비에 따라 다릅니다. 표준 80열 터미널 창에는 두 개가 표시됩니다. 창이 넓을수록 더 많은 열이 표시됩니다. 그러나 더 넓은 창으로 더 많은 통계를 얻을 수는 없습니다. 여전히 동일한 숫자 집합이 표시됩니다. 그러나 열은 더 짧아질 것입니다.

각 열의 맨 위 항목을 보면 왼쪽 항목은 정보를 바이트 단위로 표시하고 오른쪽 항목은 패킷 정보를 표시한다고 생각할 수 있습니다. 그러나 그렇지 않습니다.

각 열에는 통계 집합이 있습니다. 값의 이름과 수신(RX) 및 전송(TX) 값이 각 통계에 대해 표시됩니다. 값이 하이픈(-)으로 표시되면 해당 방향에 대한 통계가 기록되지 않았음을 의미합니다.

일부 통계는 내부(수신) 또는 외부(전송) 전용입니다. 예를 들어 전송된 열의 하이픈(-)은 나가는 패킷에 대한 통계가 유효하지 않으며 들어오는 패킷에만 적용됨을 나타냅니다. 맨 윗줄에는 수신 및 전송 트래픽이 바이트(왼쪽) 및 패킷(오른쪽)으로 표시됩니다.

다른 모든 통계는 열에서 열로 호핑하면서 알파벳순으로 나열됩니다. 그들 중 몇몇은 같은 이름을 공유합니다. 아래에서 모두 의미하는 바를 설명하겠습니다. 축약된 이름도 표기했습니다. IPv6이 언급되지 않은 경우 해당 통계는 IPv4를 나타냅니다.

왼쪽 열의 통계는 다음과 같습니다.

  • 바이트: 바이트 단위의 트래픽입니다.
  • 중단 오류: 중단 오류의 수입니다. 소스와 대상 사이의 연결 경로 어딘가에서 소프트웨어로 인해 연결이 중단되었습니다.
  • 충돌: 충돌 오류 수입니다. 둘 이상의 장치가 동시에 패킷 전송을 시도했습니다. 전이중 네트워크에서는 문제가 되지 않습니다.
  • CRC 오류: 순환 중복 검사 오류의 수입니다.
  • 오류: 총 오류 수입니다.
  • 프레임 오류: 프레임 오류 수입니다. 프레임은 패킷의 네트워크 컨테이너입니다. 오류는 잘못된 형식의 프레임이 감지되었음을 의미합니다.
  • ICMPv6: Internet Control Message Protocol v6 트래픽 패킷의 수입니다.
  • ICMPv6 오류: ICMP v6 오류 수입니다.
  • Ip6 브로드캐스트: 네트워크의 모든 장치로 전송되는 IPv6 브로드캐스트 수입니다.
  • Ip6 CE 패킷: CE는 고객 에지를 의미합니다. 이것은 일반적으로 라우터에 적용됩니다. 고객이 가입한 연결 서비스의 공급자 에지(PE)와 연결됩니다.
  • Ip6 전달: 들어오는 IPv6 패킷의 수입니다.
  • Ip6 ECT(1) 패킷: ECN(Explicit Congestion Notification)을 사용하면 네트워크 연결의 한쪽 끝에서 임박한 정체를 다른 쪽 끝에서 알릴 수 있습니다. 패킷은 경고 역할을 하는 플래그로 표시됩니다. 수신 측은 혼잡 및 가능한 패킷 손실을 피하기 위해 전송 속도를 줄일 수 있습니다. ECN 가능 전송(ECT) 패킷은 ECN 가능 전송을 통해 전달되고 있음을 나타내는 플래그로 표시됩니다. 이렇게 하면 중간 라우터가 적절하게 반응할 수 있습니다. 유형 1 ECN 패킷은 수신 측에 ECN을 활성화하고 나가는 전송에 추가하도록 지시합니다.
  • Ip6 헤더 오류: IPv6 헤더에 오류가 있는 패킷 수입니다.
  • Ip6 멀티캐스트 패킷: IPv6 멀티캐스트(브로드캐스트 형식) 패킷의 수입니다.
  • Ip6 비-ECT 패킷: ECT(1)로 플래그가 지정되지 않은 IPv6 패킷의 수입니다.
  • Ip6 Reassembly/Fragment OK: 크기로 인해 조각화되고 수신 시 성공적으로 재조립된 IPv6 패킷의 수입니다.
  • Ip6 재조립 시간 초과: 크기 때문에 조각화되었지만 시간 초과로 인해 수신 시 재조립에 실패한 IPv6 패킷의 수입니다.
  • Ip6 잘린 패킷: 잘린 패킷 수입니다. IPv6 패킷이 전송되면 잘림 후보로 표시될 수 있습니다. 중간 라우터가 패킷이 최대 전송 단위(MTU)를 초과하여 패킷을 처리할 수 없는 경우 라우터는 패킷을 자르고 이를 표시한 다음 목적지로 전달합니다. 수신되면 맨 끝은 ICMP 패킷을 소스로 다시 보내 패킷을 줄이기 위해 MTU 추정치를 업데이트하도록 알릴 수 있습니다.
  • Ip6 폐기: 폐기된 IPv6 패킷의 수입니다. 소스와 대상 사이의 장치가 올바르게 설정되지 않고 IPv6 설정이 작동하지 않으면 IPv6 트래픽을 처리하지 않습니다. 삭제됩니다.
  • Ip6 패킷: 모든 유형의 IPv6 패킷의 총 수입니다.
  • 누락된 오류: 전송에서 누락된 패킷 수입니다. 원래 메시지를 다시 만들 수 있도록 패킷에 번호가 매겨집니다. 하나라도 없으면 부재가 눈에 띕니다.
  • No Handler: 프로토콜 핸들러가 발견되지 않은 패킷의 수입니다.
  • 창 오류: 창 오류의 수입니다. 패킷의 창은 헤더의 옥텟 수입니다. 이것이 비정상적인 숫자를 보유하고 있으면 헤더를 해석할 수 없습니다.

오른쪽 열의 통계는 다음과 같습니다.

  • 패킷: 패킷의 트래픽입니다.
  • 운송업체 오류: 운송업체 오류 수입니다. 이는 신호 변조에 문제가 발생하는 경우에 발생합니다. 이는 네트워킹 장비 간의 이중 불일치 또는 케이블, 소켓 또는 커넥터의 물리적 손상을 나타낼 수 있습니다.
  • 압축됨: 압축된 패킷의 수입니다.
  • 삭제됨: 결과적으로 목적지에 도달하지 못한 패킷 수입니다(혼잡으로 인한 것일 수 있음).
  • 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 패킷 수입니다. 유니캐스트는 중간 라우터 및 포워더 체인을 통해 소스에서 대상으로 패킷을 호핑합니다.
  • Ip6 멀티캐스트: 전달된 멀티캐스트 전달의 IPv6 패킷 수입니다. 멀티캐스트는 패킷을 목적지 그룹으로 동시에 전송합니다(Wi-Fi 작동 방식).
  • Ip6 경로 없음: 경로 없음 오류 수입니다. 이는 맨 끝까지의 경로를 계산할 수 없기 때문에 목적지에 도달할 수 없음을 의미합니다.
  • Ip6 리어셈블리/조각 실패: 크기로 인해 조각난 후 수신 시 리어셈블하지 못한 IPv6 패킷의 수입니다.
  • Ip6 Reassembly/Fragment Requests: 크기로 인해 조각화되어 수신 시 재조립되어야 하는 IPv6 패킷의 수입니다.
  • IP6 너무 큰 오류: 수신된 ICMP 너무 큰 메시지의 수는 최대 전송 단위보다 큰 IPv6 패킷이 전송되었음을 나타냅니다.
  • Ip6 알 수 없는 프로토콜 오류: 알 수 없는 프로토콜을 사용하여 수신한 패킷 수입니다.
  • Ip6 옥텟: 수신 및 전송된 옥텟의 양입니다. IPv6의 헤더는 40옥텟(320비트, 옥텟당 8비트)이고 최소 패킷 크기는 1,280옥텟(10,240비트)입니다.
  • 길이 오류: 가능한 최소 패킷 길이보다 짧은 헤더의 길이 값으로 도착하는 패킷 수입니다.
  • 멀티캐스트: 멀티캐스트 브로드캐스트의 수입니다.
  • 과다 오류: 초과 오류 수입니다. 수신 버퍼가 오버플로되었거나 지원되는 프레임 값보다 큰 프레임 값으로 패킷이 도착하여 수락할 수 없습니다.

추가 정보

I를 누르면(정보에서와 같이) 추가 정보 창이 전환됩니다. 추가 정보가 표시되지 않으면 창이 충분히 크지 않은 것입니다. D를 눌러 자세한 통계를 끄거나 G를 눌러 그래프를 끄거나 창을 늘릴 수 있습니다.

추가 정보는 다음과 같습니다.

  • MTU: 최대 전송 단위입니다.
  • 작동 상태: 네트워크 인터페이스의 작동 상태입니다.
  • 주소: 네트워크 인터페이스의 미디어 액세스 제어(MAC) 주소입니다.
  • 모드: 일반적으로 기본값으로 설정되지만 터널, 비트 또는 < 코드>로. 처음 세 가지는 IP 보안(IPSec)과 관련이 있습니다. 기본 설정은 일반적으로 페이로드가 암호화되는 전송 모드입니다. 클라이언트-사이트 VPN(가상 사설망)은 일반적으로 이를 사용합니다. 사이트 간 VPN은 일반적으로 전체 패킷이 암호화되는 터널 모드를 사용합니다. Bound End-to-End Tunnel(beet) 모드에서는 고정, 숨겨진 IP 주소 및 기타 보이는 IP 주소를 사용하여 두 장치 사이에 터널이 생성됩니다. ro 모드는 모바일 IPv6에 대한 라우팅 최적화 방법입니다.
  • 패밀리: 사용 중인 네트워크 프로토콜 패밀리입니다.
  • Qdisc: 대기 규칙. 이것은 red(무작위 조기 감지), codel(제어 지연) 또는 fq_codel(제어 지연이 있는 공정한 대기열)로 설정할 수 있습니다.< /리>
  • 플래그: 이 표시기는 네트워크 연결 기능을 보여줍니다. 우리의 연결은 브로드캐스트멀티캐스트 전송을 사용할 수 있으며 인터페이스는 Up(작동 및 연결됨)입니다.
  • IfIndex: 인터페이스 인덱스는 네트워크 인터페이스와 관련된 고유 식별 번호입니다.
  • 브로드캐스트: 브로드캐스트 MAC 주소입니다. 이 주소로 전송하면 수신된 패킷이 모든 장치에 브로드캐스트됩니다.
  • TXQlen: 전송 대기열 크기(용량)입니다.
  • 별칭: IP 별칭은 물리적 네트워크 연결에 여러 IP 주소를 제공합니다. 그런 다음 하나의 네트워크 인터페이스 카드를 통해 다른 서브넷에 대한 액세스 권한을 부여할 수 있습니다. 테스트 컴퓨터에서 사용 중인 별칭이 없습니다.

bmon은 어떤 면에서는 물고기도 새도 아닌 다소 재미있는 생물입니다. 그래프는 원시적인 매력을 가지고 있으며 무슨 일이 일어나고 있는지 잘 보여줍니다.

그러나 ASCII로 렌더링되는 한계로 인해 매우 정확할 것이라고 기대할 수는 없습니다. 하지만 가끔 흘끗 보면 연결이 최대치에 도달했는지, 불가사의하게 트래픽이 없는지 또는 그 사이 어딘가에 있는지 알 수 있습니다.

반면 세부 통계는 바로 상세하고 세분화된 것입니다. 라벨링의 다소 캐주얼한 접근 방식과 결합되어 해독하기가 훨씬 더 어려워집니다.

위의 설명을 통해 bmon을 좀 더 쉽게 이해할 수 있기를 바랍니다. 네트워크 트래픽의 상태와 대역폭 소비를 모니터링할 수 있는 유용하고 가벼운 도구입니다.

RELATED: Best Linux Laptops for Developers and Enthusiasts