네트워크 모니터링을 위한 리눅스 명령어_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>
'Server > Linux' 카테고리의 다른 글
[Linux] 네트워크 모니터링을 위한 리눅스 명령어 (0) | 2024.02.12 |
---|---|
[Linux] 네트워크 모니터링을 위한 리눅스 명령어_Layer-3 (Network Layer) (1) | 2024.02.11 |
[Linux] error: Received disconnect No Supported authentication methods available (0) | 2024.02.06 |
[Linux] 리눅스 커널 업데이트 제외 옵션 (0) | 2023.12.17 |
[Linux] 실행 권한 파일 확인 명령어 (0) | 2023.12.17 |