포트의 IP 주소로 /로부터 전송 된 바이트 수 모니터


19

누구나 로컬 서버와 지정된 IP 주소 / 포트간에 전송 된 바이트 수를 모니터링하기 위해 Linux 명령 행 도구를 추천 할 수 있습니다.

동등한 tcpdump 명령은 다음과 같습니다.

tcpdump -s 0 -i any -w mycapture.trc port 80 host google.com

어떤 출력 :

46 packets captured
131 packets received by filter
0 packets dropped by kernel

출력과 비슷한 것을 원합니다.

54 bytes out, 176 bytes in

RHEL에서 작업하고 무료 / 오픈 소스가 되길 바랍니다. 내가 놓친 기존 도구가 있다면 좋을 것입니다!

답변:


14

iptables를 사용할 수 있습니다. 아직 사용하지 않는 경우 열린 수락 구성을 사용할 수 있지만 계산을 수행 할 규칙이 있습니다.

예를 들어 RHEL에서 /etc/sysconfig/iptables파일은 다음과 같습니다.

*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A FORWARD -j INPUT
-A INPUT -s 10.10.1.1 -p tcp -m tcp --sport 80 -j ACCEPT
-A OUTPUT -d 10.10.1.1 -p tcp -m tcp --dport 80 -j ACCEPT

여기서 10.10.1.1:80은 트래픽을 계산할 호스트 : 포트입니다 (호스트 이름을 사용할 수 없음). 그런 다음 명령 iptables -nvxL으로 루트로 계산 된 트래픽을 확인할 수 있습니다 .

출력 예 :

Chain INPUT (policy ACCEPT 7133268 packets, 1057227727 bytes)
    pkts      bytes target     prot opt in     out     source               destination     
 7133268 1057227727 ACCEPT     tcp  --  *      *       10.10.1.1            0.0.0.0/0              tcp spt:80


Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
    pkts      bytes target     prot opt in     out     source               destination     
       0          0 INPUT      all  --  *      *       0.0.0.0/0            0.0.0.0/0       

Chain OUTPUT (policy ACCEPT 7133268 packets, 1057227727 bytes)
    pkts      bytes target     prot opt in     out     source               destination     
 7133268 1057227727 ACCEPT     tcp  --  *      *       0.0.0.0/0            10.10.1.1              tcp dpt:80

7
iptables -A INPUT -d 1.2.3.4 -p tcp --dport 3456와 같이 계산 목적으로 만 대상이없는 규칙을 갖는 것도 합법적입니다. "-j"인수가 없으므로 트래픽에 아무런 영향을 미치지 않지만 일치하는 각 패킷은 카운트에 충돌합니다.
MadHatter는 Monica

9

wireshark를 제안 하려고했지만 ( ' 대화 '기능 이 많기 때문에 ) 명령 줄 도구는 아닙니다. 그러나 wireshark에 가까운 명령 줄 분석기 도구 인 tshark를 사용해 볼 수 있습니다. 출력에는 찾고있는 것이 있어야합니다 (아래 예).

tshark -R "ip.addr == 10.2.3.67" -z conv,ip -p -f "tcp port 22"

결과:

                                     |       <-      | |       ->      | |     Total     |
                                     | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |
10.2.3.23           <-> 10.2.3.67        42     15341      35      4890      77     20231

7

호스트 별 인터페이스에서 대역폭 사용량을 표시하는 'iftop'이라는 도구도 있습니다. iftop은 당신이 설명한 것을 할 수 있다고 생각하지만 일반적으로 인터페이스는 'top'과 같습니다.

예를 들어, 필터 코드를 제공하기 위해 구성 파일을 만들 수 있다고 생각합니다.

여기 구성 파일의 필터 코드가 있습니다.

$ cat /tmp/conf
filter-code: port http and host google.com

그런 다음 네트워크 트래픽을 확인하기 위해 다음을 실행했습니다.

$ sudo iftop -c /tmp/conf

이것이 최선의 선택인지 확실하지 않지만 필요한 것을 달성하는 한 가지 방법입니다. HTH.


3
구성 파일을 사용하지 않고 명령 줄에서 필터를 지정할 수도 있습니다.iftop -f 'port 80 and host google.com'
gioele

대역폭이 아닌 전송 된 총 바이트 수와 같은 옵션 iftop입니다.
arainone

3

"iptraf"는 가볍고 간단합니다. 포트별로 필터링 할 수 있으며 높은 수준의 정보, 페이로드 데이터 없음 등을 제공합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.