강좌 / 팁

기 타 패킷 헤더(header)를 출력하는 tcpdump

2011.12.19 12:42

gooddew 조회:7370

tcpdump 명령
목적
패킷 헤더(header)를 인쇄합니다.

구문
tcpdump [ -d ] [ -e ] [ -f ] [ -I ] [ -n ] [ -N ] [ -O ] [ -p ] [ -q ] [ -S ] [ -t  ] [ -v ] [ -x ] [ -c Count ] [ -F File ] [ -i Interface ] [ -r File ] [ -s Snaplen ] [ -w File ] [ Expression ]


설명
tcpdump 명령은 부울 값 Expression 매개변수와 일치하는 네트워크 인터페이스에서 캡쳐된 패킷의 헤더(header)를 인쇄합니다. Expression 매개변수를 제공하지 않으면, 네트워크 상의 모든 패킷이 덤프됩니다. 그렇지 않으면 Expression 매개변수가 참인 패킷만이 덤프됩니다. 이더넷, FDDI(Fiber Distributed Data Interface), 토큰 링 및 루우프 백 인터페이스가 지원됩니다. /dev/bpfO,1,2 및 3에 대한 사용권한에 의해 액세스가 제어됩니다.

Expression 매개변수는 하나 이상의 원시 기본요소로 구성됩니다. 보통 원시 기본요소로 id(이름 또는 번호)와 그 앞에 하나 이상의 규정자가 옵니다. 세가지 유형의 규정자가 있습니다.

type id 이름 또는 번호가 참조하는 장치의 종류를 지정합니다. 가능한 유형은 host, net 및 port입니다. 예는 host foo, net 128.3, port 20입니다. 유형 규정자가 없는 경우 host로 가정됩니다.
dir id에서/로의 특정 전송 방향을 지정합니다. 가능한 방향은 src, dst, src or dst 및 src and dst입니다. dir 규정자의 예는 다음과 같습니다. src foo, dst net 128.3, src 또는 dst port ftp-data. dir 규정자가 없는 경우, src or dst로 가정됩니다.
proto 특정 프로토콜과의 대응을 제한합니다. 가능한 proto 규정자는 ether, ip, arp, rarp, tcp 및 udp입니다. 예는 다음과 같습니다. ether src foo, arp net 128.3, tcp port 21. proto 규정자가 없는 경우 해당 유형과 일치하는 모든 프로토콜로 가정됩니다. 예를 들어, src foo는 ip 또는 arp를 의미하고 net bar는 ip 또는 arp 또는 rarp net bar를 의미하며 port 53은 tcp 또는 udp port 53을 의미합니다.
이와 더불어 패턴을 따르지 않는 몇가지 특별한 원시 기본요소 키워드도 있는데, broadcast, multicast, less, greater 및 연산식이 그러한 키워드입니다. 이러한 모든 키워드는 다음에 설명되어 있습니다.
 

허용되는 원시 기본요소
허용되는 원시 기본요소는 다음과 같습니다.

dst host Host 패킷에 대한 IP(인터넷 프로토콜) 목적지 필드의 값이 Host 변수의 값과 같을 경우에 참입니다. Host 변수에는 주소나 이름이 올 수 있습니다.
src host Host 패킷에 대한 IP 소스 필드의 값이 Host 변수의 값과 같은 경우에 참입니다. 
host Host 패킷에 대한 IP 소스 또는 목적지 중 하나의 값이 Host 변수 값과 같을 경우에 참입니다. 위의 host식은 모두 다음에서처럼 키워드 ip, arp, 또는 rarp를 앞에 놓고 같이 사용할 수 있습니다.
ip host Host

Host 변수는 다중 IP 주소를 갖는 이름이면, 각 주소가 일치하는지 검사됩니다.
 
dst net Net 패킷에 대한 IP 목적지 주소 값이 Net의 네트워크 번호를 포함할 경우에 참입니다.
src net Net 패킷에 대한 IP 소스 주소의 값이 Net의 네트워크 번호를 포함할 경우에 참입니다.
net Net 패킷에 대한 IP 소스 또는 목적지 주소 값 중 하나가 Net의 네트워크 번호를 포함할 경우에 참입니다.
dst port Port 패킷이 TCP/IP(전송 제어 프로토콜/인터넷 인터넷) 또는 IP/UDP(인터넷 프로토콜/사용자 데이타그램 프로토콜)이고 목적지 포트 값으로 Port를 갖는 경우에 참입니다. 포트는 /etc/services에 사용된 번호 또는 이름입니다. 이름을 사용한 경우, 포트 번호와 프로토콜 두 가지 모두 확인됩니다. 번호 또는 불확실한 이름을 사용한 경우, 포트 번호만이 확인됩니다.(dst port 513이 TCP/로그온 트래픽 및 UDP/사용자 트래픽(who traffic)을 출력하고, port domain이 TCP/도메인 및 UDP/도메인 트래픽을 출력합니다). 
src port Port Port 변수의 값이 소스 포트 값과 같을 경우에 참입니다.
port Port 패킷에 대한 소스 또는 목적지 포트의 값 중 하나가 Port일 경우에 참입니다. 위의 모든 port 식 앞에 다음에서와 같이 키워드 tcp 또는 udp를 붙여 사용할 수 있습니다.
tcp src port port

위의 예는 TCP 패킷만을 찾습니다.
 
less Length 패킷의 길이가 Length에 지정한 값 이하일 경우에 참입니다. 이 식은 다음 식과 동일합니다.
len < = Length.
 
greater Length 패킷의 길이가 Length에 지정한 값 이상일 경우에 참입니다. 이 식은 다음 식과 동일합니다.
len > = Length
 
ip proto Protocol 패킷이 Protocol에 지정한 프로토콜 유형의 IP 패킷일 경우 참입니다. Protocol은 번호이거나 이름 icmp, udp, 또는 tcp 중 하나입니다.
주: 식별자 tcp, udp 및 icmp 역시 키워드이므로 \(역슬래시, korn-shell에서는 \\(이중 역슬래시))를 사용하여 이스케이프시켜야 합니다.
ip broadcast 패킷이 IP 브로드캐스트 패킷일 경우에 참입니다. 모두 0인 그리고 모두 1인 브로드캐스트 규약을 확인하여 국지 서브네트 마스크를 찾습니다. 
ip multicast 패킷이 IP 멀티캐스트 패킷일 경우에 참입니다. 
proto Protocol 패킷이 Protocol에 지정한 유형일 경우에 참입니다. Protocol은 번호이거나 ip, arp, 또는 rarp같은 이름 중 하나입니다.
주: 이들 식별자 역시 키워드이므로 \(역슬래시)를 사용하여 이스케이프시켜야 합니다.
ip, arp, rarp 약어로 표기한 식은 다음과 같습니다.
proto p

이 때, p는 위의 프로토콜 중 하나입니다.
 
tcp, udp, icmp 약어로 표기한 식은 다음과 같습니다.
ip proto p

여기서 p는 위의 프로토콜 중 하나입니다.
 

식 매개변수의 관계 연산자
단순 관계식:

expr replop expr

relop이 > (보다 큼), <(보다 작음), >=(크거나 같음), <=(작거나 같음), =(같음), !=(느낌표 및 등호 부호) 중 하나이고, expr이 정수 상수(표준 C 구문으로 표시), 일반 2진 연산자 +(덧셈 부호), -(빼기 부호), * (별표), /(슬래시), &(앰퍼샌드), |(파이프), 길이 연산자 및 특수 패킷 데이타 액세서로 구성되는 연산식이면 참입니다. 패킷 내부 데이타를 액세스하려면 다음 구문을 사용하십시오.

proto [ expr : size ]

Proto는 키워드 ip, arp, rarp, tcp 또는 icmp 중 하나이며 색인 조작에 대한 프로토콜 계층을 나타냅니다. 표시된 프로토콜 계층에 상대적인 바이트 오프셋은 expr로 제공됩니다. 표시기 size는 선택적이며 중요한 필드의 바이트 수를 나타냅니다. 이 표시기 값은 1, 2 또는 4 중 하나이며 디폴트 값은 1 바이트입니다. 키워드 len으로 표시되는 길이 연산자는 패킷의 길이를 제공합니다.

예를 들어, 표현식 ip[0] & 0xf != 5는 플래그먼트되지 않은 데이타그램과 플래그먼트된 데이타그램의 플래그 0만을 취합니다. 이러한 검사는 암시적으로 tcp 및 udp 색인 조작에 포함됩니다. 예를 들어 tcp[0]는 항상 TCP 헤더(header)의 첫번째 바이트를 의미하며 간섭 플래그먼트의 첫번째 바이트를 의미하지는 않습니다.

원시 기본요소의 결합
보다 복잡한 필터 표현식은 and, or 및 not을 사용하여 원시 기본요소를 조합함으로써 구축됩니다. 예를 들어 host foo and not port ftp and not port ftp-data와 같습니다. 입력을 저장하려면 동일한 규정자 리스트를 생략할 수 있습니다. 예를 들어 tcp dst port ftp or ftp-data or domain은 정확하게 tcp dst port ftp or tcp dst port ftp-data or tcp dst port domain과 같습니다.

괄호로 묶은 원시 기본요소와 연산자 그룹을 사용하여 원시 기본요소를 결합할 수도 있습니다. 괄호는 쉘에서 특별한 의미를 가지므로 이스케이프시켜야 합니다.

A
부정(`!' 또는 `not').
연결(`and').
대체(`or').
부정이 최상위 우선순위를 가지며, 대체와 연결의 우선순위는 같고 왼쪽에서 오른쪽으로 계산됩니다.

키워드없이 식별자를 지정하면 가장 최근의 키워드로 간주됩니다. 예를 들어, 다음식

not host gil and devo
은 축약형으로 일반형은 다음과 같습니다.

not host gil and host devo
다음식과 혼동해서는 안됩니다.

not \(host gil or devo\)
식의 인수는 하나의 인수 또는 여러 개의 인수 단위 중 보다 편리한 방법으로 tcpdump 명령에 전달할 수 있습니다. 일반적으로 표현식에 쉘 메타문자가 있는 경우 따옴표로 묶어 하나의 인수로 전달하는 것이 더 쉽습니다. 여러 인수는 해석하기 전에 공백으로 병합됩니다.

프로토콜 출력 형식
tcpdump 명령의 출력은 프로토콜에 따라 다릅니다. 다음은 대부분 출력 형식의 간단한 설명과 예입니다.

TCP 패킷
TCP 프로토콜 행의 일반적인 형식은 다음과 같습니다.

src  >  dst: flags data-seqno ack win urg options
다음 필드 리스트에서 src, dst 및 flags는 항상 표시됩니다. 그밖의 필드들은 패킷의 TCP 프로토콜 헤더(header)의 내용에 따라 결정됩니다.

src 소스(호스트) 주소 및 포트를 나타냅니다. src 필드는 항상 표시됩니다.
dst 목적지 주소 및 포트를 나타냅니다. dst 필드는 항상 표시됩니다.
flags S(SYN), F(FIN), P(PUSH) 또는 R(RST) 또는 단일 .(마침표)의 조합으로 지정하여 플래그가 없음을 나타냅니다. flags 필드는 항상 표시됩니다.
data-seqno 현재 패킷에 있는 데이타가 차지하는 일련의 공백 부분을 설명합니다(아래 예 참조).
ack 현재 연결의 나머지 다른 방향에서 예상되는 다음 데이타의 배열 번호를 수신 응답에 의해 지정합니다.
win 현재 연결의 나머지 다른 방향에서 사용할 수 있는 버퍼 공간의 바이트 수를 지정합니다. 
urg  패킷에 긴급한 데이타가 있음을 나타냅니다. 
options  TCP 옵션은 꺾쇠 괄호로 묶어 지정합니다(예: <mss 1024>).

다음은 호스트 gil에서 호스트 devo로의 rlogin 명령의 전개부입니다.

gil.1023 > devo.login:S 768512:768512(0) win 4096 <mss 1024>
devo.login > gil.1023:S 947648:947648(0) ack 768513 win 4096 <mss
1024>
gil.1023 > devo.login: . ack 1 win 4096
gil.1023 > devo.login: P 1:2(1) ack 1 win 4096
devo.login > gil.1023: ack 2 win 4096
gil.1023 > devo.login: P 2:21(19) ack 1 win 4096
devo.login > gil.1023: P 1:2(1) ack 21 win 4077
devo.login > gil.1023: P 2:3(1) ack 21 win 4077 urg 1
devo.login > gil.1023: P 3:4(1) ack 21 win 4077 urg 1
첫번째 행은 호스트 gil의 TCP 포트 1023이 패킷을 host devo 상의 login 포트로 전송했음을 나타냅니다. S 는 SYN 플래그가 설정되었음을 의미합니다. 패킷 순서 번호는 768512였고 패킷의 데이타는 없습니다 (개념은 `first:last(nbytes)'로 순서 번호 first에 지정한 수부터 last에 지정한 수까지(단, 마지막 값은 제외)로 nbytes의 사용자 데이타입니다). 피기백(piggy-back) ack 필드는 없었으며, 사용가능한 수신 필드 win은 4096 바이트였고 최대 세그먼트 크기를 나타내는 mss로 옵션 값은 1024이었습니다.

호스트 Devo는 유사한 패킷으로 응답합니다. 단, 호스트 gil의 SYN에 대한 피기백 ack 필드를 포함하는 점은 다릅니다. 그러면 호스트 gil이 호스트 devo의 SYN에 응답합니다. .(마침표)는 플래그가 설정되지 않았음을 의미합니다. 패킷에 데이타가 없으므로 데이타 순서 번호도 없습니다.

주: ack 필드 시퀀스 번호는 작은 정수(1)입니다.
맨 처음 tcpdump가 TCP 변환을 보게되면, 패킷의 순서 번호를 인쇄합니다. 변환의 후속 패킷에서, 현재 패킷의 순서 번호와 이 초기 순서 번호간의 차이가 인쇄됩니다. 이것은 처음 것 이후의 순서 번호가 대화의 데이타 스트림에서 상대 바이트 위치로서 해석될 수 있음을 의미합니다(각 방향 첫 데이타 바이트는 1바이트). -S 플래그는 원래 순서 번호가 출력되게 합니다.

여섯 번째 행에서는 호스트 gil이 호스트 devo에 19 바이트 데이타를 전송합니다(대화에서 gil-devo 측의 2 - 20 바이트). PUSH 플래그가 패킷에 설정됩니다. 일곱 번째 행에서는 호스트 devo가 호스트 gil이 보낸 21바이트까지의 데이타(21바이트는 제외)를 받는다는 표시입니다. 이 데이타의 대부분은 소켓 버퍼에 있는데, 이는 호스트 devo의 받기 창이 19바이트만큼 작아졌기 때문입니다. 호스트 devo는 또한 1바이트 데이타를 그 패킷에 있는 호스트 gil로 전송합니다. 여덟 번째와 아홉 번째 행에서는 호스트 devo가 2바이트의 urgent PUSH 데이타를 호스트 gil로 전송합니다.

UDP 패킷
이 rwho 명령 패킷이 UDP 형식을 보여줍니다.

devo.who > bevo.who: udp 84
이 명령은 호스트 devo에 있는 포트 who가 udp 데이타그램을 호스트 bevo의 포트 who로 전송했음을 보여줍니다. 패킷에는 84 바이트의 사용자 데이타가 들어 있습니다.

일부 UDP 서비스가 소스 또는 목적지 포트 번호로 인식되고 보다 상위 프로토콜 정보가 인쇄됩니다. 특히 도메인 이름 서비스는(RFC-1034/1035)와 NFS에 대한 Sun RPC 호출(RFC-1050)을 요구합니다.

UDP 네임 서버 요청
네임 서버 요청은 다음과 같은 형식입니다.

src > dst: id op? flags qtype qclass name(len)
앞에서 설명한 필드 외에 UDP 네임 서버 요청에는 다음과 같은 필드가 포함됩니다.

id 조회 식별 번호를 지정합니다. 
op 조작의 유형을 지정합니다. 디폴트는 조회입니다. 

qclass

name

(len)

다음은 네임 서버 요청의 예입니다.

tnegev.1538 > tnubia.domain: 3+ A? austin.ibm.com. (37)
호스트 tnegev가 tnubia에 있는 도메인 서버에 이름 austin.ibm.com과 연관된 주소 레코드(qtype =A)를 요청했습니다. 조회 ID는 3입니다. +(덧셈 부호)는 원하는 순환 플래그가 설정되었음을 나타냅니다. 조회 길이는 37 바이트로 UDP 및 IP 프로토콜 헤더(header)를 포함하지 않습니다. 조회 조작은 정상적인 조회이므로 op 필드를 생략하였습니다. op에 다른 조작을 지정했다면 3과 + 사이에 출력되었을 것입니다. 마찬가지로 qclass도 정상적인 것(C_IN)이어서 생략했습니다. 그외의 다른 qclass를 지정하면 A 바로 뒤에 출력되었을 것입니다.

몇 가지 비정상 조건이 검사되어 대괄호로 묶은 필드가 추가로 나타날 수 있습니다. 조회가 응답, 네임 서버 또는 권한 섹션을 포함하면 ancount, nscount, 또는 arcount가 [na], [nn] 또는 [nau]로 출력되는데, 이 때 n은 적합한 계수입니다. 임의의 응답 비트를 설정했거나(AA, RA 또는 rcode) `must be zero' 비트를 바이트 2 또는 3으로 설정하는 경우 [b2&3=x]가 인쇄됩니다. 여기서 x는 해더 바이트 2 및 3의 16진 값입니다.

UDP 네임 서버 응답
네임 서버 응답은 다음과 같은 형식으로 됩니다.

src > dst: id op rcode flags a/n/au type class data (len)
앞에서 설명한 필드 외에 UDP 네임 서버 응답은 다음과 같은 필드를 갖습니다.

rcode

data

다음은 네임 서버 응답의 예입니다.

tnubia.domain > tnegev.1538: 3 3/3/7 A 129.100.3
tnubia.domain > tnegev.1537: 2 NXDomain* 0/1/0 (97)
첫번째 예에서, tnubia가 tnegev의 조회 3에 대해 3 응답 레코드, 3  이름 서버 레코드 및 7 권한 레코드로, 응답합니다. 최초 응답 레코드는 유형 A(주소)이고, 그 데이타는 인터넷 주소 129.100.100.3 입니다. 응답의 총 크기는 UDP와 IP를 제외하고 273 바이트입니다. op(조회) 및 응답 코드(NoError)가 A 레코드의 클래스(C_IN)이므로 생략되었습니다.

둘째 예에서는 tnubia가 조회 2에 비존재 도메인의 응답 코드(NXDomain)와 0 응답 레코드, 1 네임 서버 레코드, 및 0 권한 레코드로 응답합니다. * (별표)는 권한 응답 비트가 설정되었음을 나타냅니다. 응답이 없기 때문에 출력되는 유형, 클래스 또는 데이타도 없습니다.

나타날 수 있는 기타 플래그 문자는 -(반복 가능, RA, not 세트) 및 |(절단된 메세지, TC, 세트)입니다.

주: 이름 서버 요청 및 응답의 길이는 보통 길므로 디폴트 스냅 길이 80 바이트로는 패킷을 인쇄하기에 부족할 수 있습니다. 따라서 많은 양의 이름 서버 트래픽을 조사하려면 -s 플래그를 사용하여 스냅 길이를 늘리십시오.
NFS 요청
Sun 네트워크 파일시스템(NFS) 요청과 응답은 다음 형식으로 됩니다.

src.xid > dst.nfs: len op args
src.nfs > dst.xid: reply stat len
앞에서 설명한 필드 외에 NFS 요청 및 응답에는 다음 필드도 포함됩니다.

args 디렉토리 파일$파일 처리$를 지정합니다. 
reply stat 조작에 대한 응답 상태를 표시합니다.

다음은 NFS 요청과 응답의 예입니다.

L1.e2766 > L2.nfs: 136 readdir fh 6.5197 8192 bytes @ 0
L2.nfs > L1.e2766: reply ok 384
L1.e2767 > L2.nfs: 136 lookup fh 6.5197 `RCS'
첫째 행에서는 호스트 L1이 id e2766인 트랜잭션을 L2로 보냅니다(src 호스트 뒤에 오는 숫자는 소스 포트가 아니고 트랜잭션 id임에 유의). 요청은 UDP와 IP 헤더(header)를 제외하고 136 바이트입니다. 조작은 파일 핸들(fh) 6.5197에서 readir(디렉토리 읽기)입니다. 오프셋 0, 8192에서 시작하여 바이트가 읽혀집니다. L2는 384 바이트의 데이타와 함께 ok응답을 합니다.

셋째 행에서는 L1이 L2에게 디렉토리 파일 6.5197에서 이름 `RCS'를 찾도록 요청합니다. 출력되는 데이타는 조작 유형에 따라 결정되는 것에 유의하십시오.

주: NFS 요청은 크기가 매우 크기 때문에 snaplen을 늘리지 않으면 위의 예가 출력되지 않습니다. NFS 트래픽을 검시하려면 플래그 -s 192를 사용하십시오.
ARP/RARP 패킷
주소 분석 프로토콜/반전 주소 프로토콜(ARP/RARP) 출력에서 요청 유형과 그 인수들을 볼 수 있습니다. 다음 예는 호스트 devo에서 호스트 bevo로 rlogin 명령의 시작을 보여줍니다.

arp who-has bevo tell devo
arp reply bevo is-at 1d:2d:3d:4d:5d:6d
첫째 행에서는 devo가 호스트 bevo의 이더넷 주소를 요청하는 ARP 패킷을 보냅니다. 둘째 행에서는 bevo가 자신의 이더넷 주소로 응답을 합니다.

IP 플래그먼트화
단편화된 인터넷 데이타그램은 다음과 같이 출력됩니다.

(frag id:size@offset+)
(frag id:size@offset)
첫 형태는 플래그먼트가 더 있음을 나타냅니다. 둘째 형태는 이것이 마지막 플래그먼트임을 의미합니다. IP 플래그먼트는 다음과 같은 필드를 갖습니다.

id 플래그먼트를 식별합니다. 
size IP 헤더(header)를 포함한 플래그먼트 크기(바이트 단위)를 지정합니다.
offset 원래 데이타그램에서 플래그먼트의 오프셋(바이트 단위)을 지정합니다. 

플래그먼트 정보는 각 플래그먼트에 대한 출력입니다. 첫 플래그먼트에는 보다 상위 레벨의 프로토콜 헤더(header)가 포함되고 플래그먼트 정보는 프로토콜 정보 뒤에 출력됩니다. 첫 플래그먼트 뒤에 나오는 플래그먼트들에는 상위 레벨 프로토콜 헤더(header)가 없고 플래그먼트 정보는 소스와 목적지 주소 뒤에 출력됩니다. 예를 들어, 다음은 핑(ping) 반향/응답 열입니다.

gil > devo: icmp: echo request (
frag 34111: 1480@0+)
gil > devo: (frag 34111!28@1480)
devo > gil: icmp: echo reply (frag
                   15314:148@0+)
IP don't fragment 플래그를 갖는 패킷은 후미(DF)로 표시됩니다.

시간소인
디폴트로 모든 출력 행 앞에 시간소인이 나옵니다. 시간소인은 다음과 같이 표시되는 현재 시각입니다.

hh:mm:ss.frac
이 시각은 커널 시각만큼 정확합니다. 시간소인은 커널이 최초로 패킷을 본 시간을 나타냅니다. 이더넷 인터페이스가 회선에서 패킷을 제거한 시기와 커널이 새로운 패킷 인터럽트를 지원한 시기 사이의 시간 지연동안 계정에는 어떠한 시도도 수행되지 않습니다.

플래그
-c Count 패킷을 받은 후 종료합니다. 
-d 컴파일된 패킷 대응 코드를 표준 출력에 덤프한 후 정지합니다. 
-e 각 덤프 행에 링크 레벨 헤더(header)를 출력합니다. 이더넷과 토큰 링에서는 소스 및 목적지 주소, 프로토콜, 패킷 길이가 인쇄됩니다. 
-f 외국의 인터넷 주소를 기호가 아닌 숫자로 표시합니다. 
-F File을 필터 식에 대한 입력으로 사용합니다. -F 플래그는 명령 행에 추가로 있는 모든 식을 무시합니다. 
-i Interface를 감지합니다. 이 플래그를 지정하지 않으면 tcpdump 명령은 시스템 인터페이스 리스트에서 가장 번호가 낮게 구성설정된 인터페이스를 탐색합니다. 이 탐색은 루우프 백 인터페이스를 제외합니다.
-I (대문자 i) 즉시 패킷 수집 모드를 지정합니다. -l 플래그는 버퍼가 채워지길 기다리지 않습니다. 
-l (소문자 L) 표준 출력 행을 버퍼합니다. 이 플래그는 데이타를 수집하면서 보려고 할 때 유용합니다. 예를 들어, 다음과 같습니다.
tcpdump -l : tee dat

또는

 tcpdump -l > dat & tail -f dat
 
-n 주소를 이름으로 변환하지 않습니다. 
-N 호스트 이름에 대한 도메인 이름 규정을 인쇄하지 않습니다. 예를 들어, -N 플래그는 gil.austin.ibm.com 대신 gil을 출력합니다.
-O 패킷 대응 코드 최적자의 수행을 생략합니다. 이 플래그는 최적자에 버그가 있을 거라고 생각될 때 유용합니다. 
-p 인터페이스를 복잡한 모드로 수행하지 않음을 지정합니다.
주: 인터페이스가 다른 이유로 복합한 모드에 있을 수 있습니다. 따라서 -p 를 `ether host {localhost}' 또는 `broadcast'의 약어로 사용할 수 없습니다.
-q 적게 출력합니다. -q 플래그는 프로토콜 정보를 적게 출력 행이 더 짧아집니다. 
-r File(-w 옵션으로 작성한 파일)로부터 패킷을 읽습니다. File이 "-"이면 표준 입력이 사용됩니다. 
-s 각 패킷에서 디폴트 80 바이트가 아닌 Snaplen에 지정한 바이트 수 만큼의 데이타를 수집합니다. IP, ICMP, TCP, 및 UDP에는 80 바이트가 적합하지만 네임 서버와 NFS에서 오는 프로토콜 정보는 절단할 수 있습니다(아래 참조). 제한된 스냅샷이 "[|proto]"(proto는 절단이 일어나는 프로토콜 레벨의 이름)와 함께 출력에 표시되기 때문에 패킷이 절단됩니다.
주: 스냅샷을 더 크게 하면 패킷 버퍼링 양이 감소하여 패킷을 처리하는 데 걸리는 시간이 증가합니다. 이로 인하여 패킷이 유실될 수 있습니다. 사용자가 원하는 프로토콜 정보를 캡쳐하는 최소 바이트 수로 Snaplen을 제한해야 합니다.
-S 상대가 아닌 절대 TCP 순서 번호를 출력합니다. 
-t 각 덤프 행에 시간소인을 인쇄하지 않습니다.
-tt 각 덤프 행에 서식화되지 않은 시간소인을 출력합니다.
-v 조금 더 상세한 출력을 지정합니다. 예를 들어, IP 패킷에 있는 서비스 정보의 유형과 존재 시간이 출력됩니다. 
-w 새로운 패킷을 해석 및 출력하는 대신 File에 기록합니다. 이 패킷은 나중에 -r 플래그를 사용하여 출력할 수 있습니다.  File이 "-"이면 표준 출력이 사용됩니다.
-x 각 패킷(해당 링크 레벨 헤더(header)는 제외)을 16진 형태로 출력합니다. 전체 패킷이나 Snaplen에 지정한 바이트 수보다 작게 출력됩니다. 

예제
devo에 도착하거나 나가는 모든 패킷을 출력하려면 다음과 같이 입력하십시오.
tcpdump host devo
gil와, devo 또는 bevo 사이의 트래픽을 출력하려면 다음과 같이 입력하십시오.
tcpdump ip host gil and \(devo bevo\)
bevo와 임의의 호스트(gil은 제외) 사이의 모든 IP 패킷을 출력하려면 다음과 같이 입력하십시오.
tcpdump ip host bevo and bevo gil
국지 호스트와 네트워크 192.100.192상의 호스트 사이의 모든 트래픽을 출력하려면 다음과 같이 입력하십시오.
tcpdump net 192.100.192
소스와 목적지 모두가 국지 호스트가 아닌 트래픽을 출력하려면 다음과 같이 입력하십시오.
tcpdump ip and not net localnet
비국지 호스트가 참여한 각 TCP 대화의 시작 및 종료 패킷(SYN 및 FIN 패킷)을 출력하려면 다음과 같이 입력하십시오.
tcpdump \(tcp[13] \& 3 !=0 and not src and dst net localnet\)
반향(echo) 요청이나 응답이 아닌 모든 ICMP 패킷(핑 패킷이 아님)을 출력하려면 다음과 같이 입력하십시오.
tcpdump \(icmp[0] !=8 and icmp[0] !=0\)
패킷 정보를 즉시 인쇄하려면 다음과 같이 입력하십시오.
tcpdump -I
감지할 토큰 링 인터페이스를 지정하려면 다음과 같이 입력하십시오.
tcpdump -i tr0
패킷 정보를 TraceInfo에 출력하려면 다음과 같이 입력하십시오.
tcpdump -wTraceInfo
관련 정보
없음


 

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
301 기 타| linux_ansi 코드 사용법 [1] gooddew 5791 0 12-19
300 기 타| linux_FAQ gooddew 5121 0 12-19
299 기 타| linux_ppp gooddew 5144 0 12-19
298 기 타| 리눅스 보안 점검 gooddew 5321 0 12-19
297 기 타| RedHat기반-여러개의 이더넷카드 인식 및 네트웍 인터페이... gooddew 5390 0 12-19
296 기 타| Scanning tool nmap 사용하자 gooddew 6443 0 12-19
295 기 타| 센드메일 가이드 gooddew 5228 0 12-19
294 기 타| squid를 설정하기 gooddew 6518 0 12-19
293 기 타| tcp_wrapper 설정 gooddew 6254 0 12-19
» 기 타| 패킷 헤더(header)를 출력하는 tcpdump gooddew 7370 0 12-19
291 기 타| rm 명령어로 삭제한 파일/폴더 복구하기 [1] gooddew 7900 0 12-19
290 기 타| 네임서버 강좌 ver 0.2 gooddew 5526 0 12-19
289 기 타| 네트워킹 설정 하기 [1] gooddew 5811 0 12-19
288 기 타| 부팅시 X 윈도우로 바로 실행되게 하기 gooddew 6412 0 12-19
287 기 타| 부팅시 출력되는 메시지가 너무 빨리 지나가 볼수가 없때 [2] gooddew 6553 0 12-19
286 기 타| rdate 명령 활용법 gooddew 5767 0 12-19
285 기 타| 서버가 커있는 시간 확인하기 [2] gooddew 6314 0 12-19
284 기 타| 리눅스 특수화일명 삭제방법 [3] gooddew 6322 0 12-19
283 기 타| 윈도우용 압축파일 zip 을 리눅스에서 풀기 gooddew 8316 0 12-19
XE1.11.6 Layout1.4.8