Linux에서 네트워크 문제 해결

Linux에서 네트워크 문제 해결

이 기사에서는 tcpdump 명령을 사용하여 Linux에서 네트워크 문제를 해결하는 방법을 설명합니다.

tcpdump는 유연하고 강력한 명령줄 패킷 분석기입니다. 및 네트워크 트래픽 캡처를 위한 휴대용 C/C++ 라이브러리인 libpcap. 많은 옵션과 필터를 포함하는 강력하고 다재다능한 도구인 tcpdump는 다양한 경우에 사용할 수 있습니다. 명령줄 도구이기 때문에 GUI를 사용할 수 없는 원격 서버나 장치에서 실행하여 나중에 분석할 수 있는 데이터를 수집하는 것이 이상적입니다. 백그라운드에서 실행하거나 cron과 같은 도구를 사용하여 예약된 작업으로 실행할 수도 있습니다.

설치 프로세스를 시작하겠습니다.

1. tcpdump 설치

tcpdump가 시스템에 아직 설치되지 않은 경우 다음 명령을 사용하여 설치할 수 있습니다.

CentOS 또는 Red Hat Enterprise Linux 기반 시스템의 경우:

# dnf install tcpdump -y

Ubuntu 기반 시스템의 경우:

# apt-get install tcpdump -y

2. 설치 확인

설치를 확인하려면 다음 명령을 사용하십시오.

# which tcpdump

산출:

/usr/sbin/tcpdump

tcpdump로 패킷 캡처

패킷을 캡처하기 전에 다음 명령을 사용하여 네트워크 인터페이스를 확인하십시오.

# tcpdump -D

사용 가능한 모든 네트워크 인터페이스가 표시됩니다.

이제 다음 명령을 사용하여 일부 패킷 캡처를 시작하겠습니다.

# tcpdump --interface any

Tcpdump는 인터럽트 신호를 수신할 때까지 패킷을 계속 캡처합니다. Ctrl+C를 눌러 캡처를 중단할 수 있습니다. 캡처된 패킷 수를 제한하고 tcpdump를 중지하려면 -c(수용) 옵션을 사용합니다.

# tcpdump -i any -c 10

이름 확인 비활성화

네트워크 문제를 해결하려면 IP 주소와 포트 번호를 사용하는 것이 더 쉽습니다. -n 옵션을 사용하여 이름 확인을 비활성화하고 -nn과 함께 포트 확인:

# tcpdump -i any -c5 -nn

위의 명령은 이제 출력을 캡처하여 IP 주소와 포트 번호를 표시합니다.

패킷 필터링

tcpdump의 가장 강력한 기능 중 하나는 소스 및 대상 IP 주소, 포트, 프로토콜 등과 같은 다양한 매개변수를 사용하여 캡처된 패킷을 필터링하는 기능입니다. 가장 일반적인 몇 가지를 살펴보겠습니다.

ICMP 패킷만 캡처하려면 다음 명령을 사용하십시오.

# tcpdump -i any -c10 icmp

호스트 필터를 사용하여 특정 호스트와 관련된 패킷으로만 캡처를 제한합니다.

# tcpdump -i any -c5 -nn host 192.168.0.12

위의 명령은 호스트 192.168.0.12와 주고받는 패킷만 캡처하고 표시합니다.

원하는 서비스 또는 포트를 기반으로 패킷을 필터링하려면 포트 필터를 사용하십시오. 예를 들어 다음 명령을 사용하여 웹(HTTP) 서비스와 관련된 패킷을 캡처합니다.

# tcpdump -i any -c10 -nn port 80

소스 또는 대상 IP 주소 또는 호스트 이름을 기반으로 패킷을 필터링합니다. 예를 들어, 호스트 192.168.0.12에서 패킷을 캡처하려면:

# tcpdump -i any -c10 -nn src 192.168.0.12

캡처를 파일에 저장

패킷을 화면에 표시하는 대신 파일에 저장하려면 -w(쓰기용) 옵션을 사용하십시오.

# tcpdump -i any -c10 -nn -w webserver.pcap port 80

위의 명령을 사용하면 예를 들어 밤새 배치 모드에서 패킷을 캡처하고 아침에 결과를 확인할 수 있습니다. 실시간 캡처가 너무 빨리 발생할 수 있으므로 분석할 패킷이 너무 많은 경우에도 도움이 됩니다.

더 많은 예제 명령

로컬이 아닌 호스트와 관련된 각 TCP 대화의 시작 및 종료 패킷(SYN 및 FIN 패킷)을 인쇄합니다.

# tcpdump 'tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet'

RST 및 ACK 플래그가 모두 설정된 TCP 패킷을 인쇄하려면 설정하십시오. (즉, flags 필드에서 RST 및 ACK 플래그만 선택하고 결과가 "RST 및 ACK 모두 설정"이면 일치)

# tcpdump 'tcp[tcpflags] & (tcp-rst|tcp-ack) == (tcp-rst|tcp-ack)'

포트 80에서 들어오고 나가는 모든 IPv4 HTTP 패킷을 인쇄하려면, 예를 들어 SYN 및 FIN 패킷과 ACK 전용 패킷이 아닌 데이터가 포함된 패킷만 인쇄합니다. (IPv6은 독자를 위한 연습으로 남겨둡니다.)

# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<2)) -="" ((tcp[12]&0xf0)="">>2)) != 0)'

게이트웨이 snup을 통해 전송된 576바이트보다 긴 IP 패킷을 인쇄하려면:

# tcpdump 'gateway snup and ip[2:2] > 576'

이더넷 브로드캐스트 또는 멀티캐스트를 통해 전송되지 않은 IP 브로드캐스트 또는 멀티캐스트 패킷을 인쇄하려면:

# tcpdump 'ether[0] & 1 = 0 and ip[16] >= 224'

에코 요청/응답이 아닌 모든 ICMP 패킷을 인쇄하려면(즉, ping 패킷이 아님):

# tcpdump 'icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply'

다음 명령을 사용하여 매뉴얼 페이지를 확인하십시오.

# man tcpdump

이 기사에서는 tcpump 명령을 사용하여 Linux에서 네트워크 문제를 해결하는 방법을 살펴보았습니다.

고성능 듀얼 E5 시리즈 전용 서버와 저렴한 KVM VPS를 얻으십시오.


CentOS 7에서 CSF(ConfigServer Security & Firewall)를 설치하고 구성하는 방법

CentOS 7에서 CSF(ConfigServer Security & Firewall)를 설치하고 구성하는 방법

ConfigServer 보안 및 방화벽(줄여서 csf라고도 함)은 상태 저장 패킷 검사(SPI) 방화벽입니다. CentOS 7에서 CSF 설치 및 구성 배우기

CentOS에 R1Soft 백업 에이전트를 설치하는 방법

CentOS에 R1Soft 백업 에이전트를 설치하는 방법

CentOS에 R1Soft 백업 에이전트를 설치하고 구성하는 방법을 배웁니다. R1Soft Server Backup Manager는 서비스 제공자에게 유연하고 서버 친화적인 솔루션을 제공합니다.

CloudLinux LVE 제한을 수정하는 방법

CloudLinux LVE 제한을 수정하는 방법

이 기사에서는 CloudLinux LVE 제한을 수정하는 방법을 설명했습니다. 시작하겠습니다. CloudLinux LVE 제한은 LVE Manager를 사용하여 변경할 수 있습니다.

포트 Linux 서버의 SSH를 변경하는 방법

포트 Linux 서버의 SSH를 변경하는 방법

Linux 서버의 SSH 포트를 변경하려면 SSH를 통해 서버에 로그인하고 SSH 구성 파일을 수정해야 합니다.

CentOS에 Centova Cast를 설치하는 방법

CentOS에 Centova Cast를 설치하는 방법

Centova Cast는 인터넷 라디오 스트림을 위한 최고의 관리 플랫폼으로 스트리밍 호스팅 제공업체에 광범위한 통찰력과 제어 기능을 제공합니다.Centova Cast

메일 서버에서 메일 릴레이를 설정하는 방법

메일 서버에서 메일 릴레이를 설정하는 방법

다음 이메일 릴레이 설정을 사용하여 이메일 전송 문제를 해결할 수 있습니다.

Ubuntu 18.04에서 Apache, MariaDB, PHP 및 phpMyAdmin을 설치하는 방법

Ubuntu 18.04에서 Apache, MariaDB, PHP 및 phpMyAdmin을 설치하는 방법

Ubuntu 18.04 서버에 Apache MariaDB PHP 및 PHPMyAdmin을 설치하는 방법을 배웁니다. Apache, MySQL/MariaDB, PHP는 패키지로 구성되어 있습니다. 그것은 LAMP로 알려져 있습니다

Linux에서 기본 사용자 관리 배우기

Linux에서 기본 사용자 관리 배우기

Linux에서 사용자를 추가, 수정 또는 삭제하시겠습니까? 여기 당신을 위한 완벽한 기사가 있습니다.

Linux에서 기본 그룹 관리 배우기

Linux에서 기본 그룹 관리 배우기

Linux의 그룹 관리에 대해 자세히 알아보세요. Linux에서 그룹 추가, 그룹 수정 및 그룹 삭제, 구성원 추가 방법. 새 그룹을 만들고 groupadd 명령을 사용합니다.

CentOS 7에 Fail2ban 설치 방법 배우기

CentOS 7에 Fail2ban 설치 방법 배우기

Fail2ban은 SSH 연결을 보호하는 데 매우 유용합니다. 이제 centos7에 fail2ban을 설치 및 구성하고 서버에 보안 계층을 추가할 수 있습니다.