SharedIT | 묻고 답하기(AMP)

iftop 등 리눅스 네트워크 명령어 관련

리눅스에는 많은 네트워크 모니터링을 위한 툴이 있는 것 같습니다.

대표적으로 nethogs, iftop, tcpdump, nmap, trafshow, nload 등등 많이 있는데요.


각 툴 별로 특성이 다르지만,

제가 궁금한것은 각 트래픽 정보를 리눅스 어디에 있는 정보에서 긁어오냐는 것입니다.


보통 트래픽 bandwidth 사용량은 /proc/net/dev 의 receive와 transmit이 실시간으로 반영됨에 따라 인터페이스별로 그 값의 차이를 나타내는 것으로 알고있는데요.


source ip, source port, destination ip, destination port 의 정보,

즉 트래픽이 발생하는 동안 어떤 IP와의 통신이 이루어지고 있고 그 통신이 몇번포트와 연결되어 발생중인 트래픽인건지에 대한 정보는 리눅스의 어떤 파일에서 참조를 하는지가 궁금한 것입니다.


대표적으로 iftop 명령어를 찍어보면 어떤 IP에서 어떤 src port를 가지고 내 서버의 어떤 포트와 통신하며 트래픽이 발생중임을 알 수 있습니다.


혹시 아시는분 계신가요..?

Tags : 태그가 없습니다.

1개의 답변이 있습니다.

wansoo
  0 추천 | 일 년 이상 전

iftop의 if는 InterFace이고, Network Interface Card를 의미합니다.

tcpdump 처럼 네트워크 카드에 지나다니는 패킷 정보를 캡쳐해서 분석한 내용을 정리해서 보여주는 것입니다.

리눅스에서 모든 장치들이 file로 취급하고 다루기 때문에 네트워크 인터페이스 카드도 하나의 파일로 취급되긴 하지만...

장치 파일과 일반 파일은 차이가 있고요.

그리고... 리눅스에 일반 디렉터리, 파일 처럼 있는 /proc 아래에 있는 공간은 일반 디스크 공간이 아닌, 메모리 상의 공간에 해당되고요.


iftop에 대한 구체적인 알고리즘, 구현 방법을 연구해 보고 싶다면 아래 링크에서 iftop의 소스 코드를 다운 받아서 연구해 보면 됩니다.

http://www.ex-parrot.com/~pdw/iftop/


iftop은 open source이기 때문에 source code가 모두 공개되어 있습니다.

C 언어로 작성된 소스 코드들을 확인해 볼 수 있고, 필요하다면 적절히 수정해서 원하는대로 만들어서 사용해 볼 수도 있습니다.


찌롱 | 일 년 이상 전

답변 감사합니다..!