본문 바로가기

Server/Linux

[Linux] 네트워크 모니터링을 위한 리눅스 명령어_Layer-4 (Transport Layer)

반응형

 

네트워크 모니터링을 위한 리눅스 명령어_Layer-4 (Transport Layer)

 

1. ss/netstat : 네트워크 연결 정보 확인

 

ss 명령어 :

ss 명령어는 소켓 통계 및 네트워크 연결 정보를 보여주는 데 사용됩니다. 주로 네트워크 연결 및 소켓 관련 정보를 확인하는 데 유용합니다.

예를 들어, 다음은 몇 가지 ss 명령어의 사용 예입니다:

 

모든 연결 보기
$ ss -a

특정 포트의 연결만 보기
$ ss -t -a -p -n | grep <port_number>

TCP 연결만 보기
$ ss -t

UDP 연결만 보기
$ ss -u

 

netstat 명령어 :

netstat 명령어는 네트워크 관련 통계 및 정보를 보여주는 데 사용됩니다. netstat은 현재 활성화된 네트워크 연결, 라우팅 테이블, 인터페이스 통계 등을 표시할 수 있습니다.

예를 들어, 다음은 몇 가지 netstat 명령어의 사용 예입니다:

 

모든 연결 보기
$ netstat -a

리스닝 중인 포트 확인
$ netstat -l

특정 프로세스의 네트워크 통계 보기
$ netstat -p | grep <process_name>

라우팅 테이블 보기
$ netstat -r

 

 

2. iperf : 네트워크 대역폭 확인

 

iperf는 네트워크 대역폭을 측정하기 위한 도구로 사용되는 명령줄 유틸리티입니다. iperf는 서버와 클라이언트 간에 TCP 또는 UDP 연결을 생성하고 이를 통해 대역폭 및 지연과 같은 네트워크 성능을 측정할 수 있습니다. 이것은 특히 다른 컴퓨터 또는 장치 간의 네트워크 성능을 평가하거나 문제를 진단하는 데 유용합니다.

다음은 iperf의 기본 사용법에 대한 간단한 예제입니다:

 

iperf 서버 시작:
$ iperf -s

 

이 명령은 iperf를 서버 모드로 실행하며, 기본적으로 TCP 포트 5001을 사용하여 클라이언트의 연결을 기다립니다.

 

iperf 클라이언트로 테스트 실행:
$ iperf -c <server_ip_address>

 

이 명령은 iperf를 클라이언트 모드로 실행하고 지정된 서버의 주소로 연결하여 대역폭을 측정합니다.

 

UDP 테스트 실행:
$ iperf -u -c <server_ip_address>

 

-u 옵션을 사용하면 UDP로 대역폭을 테스트할 수 있습니다.

 

 

3. netperf : 네트워크 성능 측정


netperf는 네트워크 성능을 측정하고 테스트하는 데 사용되는 명령줄 도구입니다. netperf를 사용하면 시스템 간의 TCP 또는 UDP 네트워크 성능을 측정할 수 있습니다. 이 도구는 대역폭, 지연, 패킷 손실 및 다양한 다른 성능 메트릭을 측정할 수 있습니다.

다음은 netperf의 기본 사용법에 대한 간단한 예제입니다:

 

netperf 서버 시작:
$ netserver

 

이 명령은 netperf 서버를 시작하며, 기본적으로 TCP 포트 12865에서 클라이언트의 연결을 기다립니다.

 

netperf 클라이언트로 테스트 실행:
$ netperf -H <server_ip_address>

 

이 명령은 netperf를 클라이언트 모드로 실행하고 지정된 서버의 주소로 연결하여 성능 테스트를 수행합니다.

 

UDP 테스트 실행:
$ netperf -H <server_ip_address> -t UDP_STREAM

 

-t 옵션을 사용하여 UDP 스트림 테스트를 수행할 수 있습니다.

 

 

4. nc : 네트워크 포트 열기, 데이터 송수신, 포트 스캐닝 등 확인

 

nc 명령어(Netcat)는 네트워크를 통한 데이터 전송을 위한 강력한 명령줄 도구로 알려져 있습니다. nc는 TCP, UDP 포트의 열기, 데이터 송수신, 포트 스캐닝 등 다양한 네트워크 작업을 수행할 수 있습니다.

다음은 nc 명령어의 몇 가지 예제입니다:

 

TCP 포트 열기:
$ nc -l <port_number>

 

이 명령은 TCP 포트를 열어 다른 시스템에서 해당 포트로 연결할 수 있도록 합니다.

 

TCP 클라이언트로 연결:
$ nc <server_ip_address> <port_number>

 

이 명령은 특정 서버의 TCP 포트에 클라이언트로 연결합니다.

 

UDP 포트 열기:
$ nc -u -l <port_number>

 

-u 옵션은 UDP 모드로 동작하게 합니다.

 

데이터 송수신:
$ nc -l <port_number> < file.txt

 

이 명령은 다른 시스템에서 해당 포트로 데이터를 전송합니다.

포트 스캔:
$ nc -zv <host> <port_range>

 

이 명령은 주어진 호스트의 특정 포트 또는 포트 범위에 대한 스캔을 수행합니다.

 

 

5. tcptrack : 네트워크 트래픽 실시간 모니터링

 

tcptrack는 네트워크 트래픽을 실시간으로 모니터링하고 TCP 연결을 추적하는 도구입니다. tcptrack을 사용하면 시스템에서 발생하는 TCP 연결의 활동을 쉽게 확인할 수 있습니다.

일반적으로 tcptrack을 사용하려면 먼저 설치해야 할 수 있습니다. 리눅스 배포판에 따라 패키지 관리자를 사용하여 설치할 수 있습니다.

예를 들어, Debian 계열의 시스템에서는 다음과 같이 설치할 수 있습니다:

 

$ sudo apt-get install tcptrack

 

설치가 완료되면 tcptrack을 다음과 같이 사용할 수 있습니다:

 

$ sudo tcptrack

 

실행하면 실시간으로 시스템에서 발생하는 TCP 연결의 상태를 보여주는 화면이 표시됩니다. 연결의 송수신 바이트, 현재 속도, 연결의 상태 등이 표시됩니다.

 

tcptrack은 -i 옵션을 사용하여 특정 네트워크 인터페이스를 모니터링할 수 있습니다. 예를 들어, eth0 인터페이스를 모니터링하려면:

 

$ sudo tcptrack -i eth0

 

 

6. lsof : 프로세스가 사용중인 파일, 디렉토리, 네트워크 연결 등 정보 확인

 

lsof 명령어는 "리스트 오픈 파일"의 약자로, 현재 시스템에서 열린 파일과 네트워크 소켓에 대한 정보를 제공하는 유틸리티입니다. lsof를 사용하면 프로세스가 사용 중인 파일, 디렉터리, 네트워크 연결 등에 대한 상세한 정보를 확인할 수 있습니다.

기본적인 사용법은 다음과 같습니다:

 

$ lsof

 

이 명령은 시스템에서 열린 모든 파일 및 네트워크 소켓에 대한 정보를 표시합니다.

다양한 옵션을 사용하여 특정 작업을 수행할 수 있습니다. 몇 가지 예를 들어보겠습니다:

 

특정 프로세스가 열어 둔 파일 확인:
$ lsof -p <PID>

특정 파일을 사용 중인 프로세스 확인:
$ lsof /path/to/file

특정 포트를 사용 중인 프로세스 확인:
$ lsof -i :<port_number>

특정 사용자가 열어 둔 파일 확인:
$ lsof -u <username>

네트워크 연결 정보 확인:
$ lsof -i

 

 

7. ngrep : 네트워크 패킷 검색 및 필터링을 사용하여 특정 패턴 확인

 

ngrep는 네트워크에서 패킷을 검색하고 표시하는 명령줄 도구로, 패킷 필터링을 사용하여 특정 패턴이나 키워드를 감지할 수 있습니다. ngrep는 패킷 스니핑을 통해 네트워크 상에서 특정 텍스트 패턴을 찾는 데 사용됩니다.

 

ngrep를 사용하는 기본적인 구문은 다음과 같습니다:

 

$ ngrep [옵션] 패턴 [네트워크 인터페이스]

 

일부 주요 옵션과 사용 예는 다음과 같습니다:

 

특정 패턴을 감지하는 예:
$ ngrep -q "search_pattern"

특정 포트에서의 패킷 모니터링:
$ ngrep -q "search_pattern" port <port_number>

TCP 또는 UDP 포트에서의 패킷 모니터링:
$ ngrep -q "search_pattern" -d <network_interface> port <port_number>

IPv4 또는 IPv6 주소를 사용한 패킷 모니터링:
$ ngrep -q "search_pattern" host <ip_address>

사용자 지정 패킷 필터링:
$ ngrep -q -W byline "search_pattern" host <ip_address> and port <port_number>

 

반응형