วันพฤหัสบดีที่ 10 ตุลาคม พ.ศ. 2556
Tcpdump คำสั่ง Debug ปัญหาใน network
สำหรับใครก็ตามที่ทำงานทางด้าน network คงคุ้นเคยกับโปรแกรม Wireshark ( ชื่อเดิม Ethereal ) เป็นอย่างดี เนื่องจากเป็นโปรแกรมที่ต้องมีเอาไว้ใช้ดูรายละเอียดของข้อมูลใน packet tcp ว่าเป็นยังไง ถูกต้องไหม
ใน Linux ก็มี tool คล้ายๆกัน แถมยังเป็นคำสั่งพื้นฐานที่ติดมาให้โดย default อยู่แล้ว ถือได้ว่าสะดวกมาก
คำสั่งนั้นก็คือ tcpdump นั่นเอง
Option ต่างๆของคำสั่ง tcpdump
-i ชื่อ interface : Capture ทุก packet ที่วิ่งผ่าน interface
-n : ไม่ต้อง resolve hostnames.
-nn : ไม่ต้อง resolve hostnames หรือ port names.
-X : แสดง packet contents ทั้งในรูปฐาน 16 และ ASCII.
-XX : เหมือน -X, แต่แสดง ethernet header ด้วย.
-v, -vv, -vvv : เพิ่มรายละเอียดของ packet.
-c : ระบุจำนวน packets เมื่อครบแล้วหยุด.
-S : แสดง absolute sequence numbers.
-e : แสดง ethernet header.
-q : แสดง protocol information น้อยลง.
-E : ถอดรหัส IPSEC traffic โดยระบุ encryption key.
-s : ตั้งค่าความยาวของ packet (bytes).
ตัวอย่างการใช้งาน
## Capture ทุก packet ที่วิ่งผ่าน eth0
tcpdump -i eth0
## Capture ทุก packet ที่วิ่งผ่าน eth0 ที่ส่งมาหรือส่งไป ip 192.168.1.1
tcpdump -i eth0 host 192.168.1.1
## Capture ทุก packet ที่วิ่งผ่าน eth0 ที่ส่งผ่าน port 80
tcpdump -i eth0 port 192.168.1.1
## Capture ทุก packet ที่วิ่งผ่าน eth0 ที่ส่งผ่าน port 80 ของ host 192.168.1.1
tcpdump -i eth0 port 192.168.1.1 and host 192.168.1.1
## ถ้ามีหลายเงื่อนไข
tcpdump -i eth0 ‘host 203.192.33.106 and (port 1812 or 1813)’
## Cature เป็นไฟล์
tcpdump -i eth0 -w (file name)
## Cature ทั้งหมด ทั้ง header และ data เป็นไฟล์
tcpdump -i eth0 -s 65535 -w (file name)
## อ่านไฟล์ ที่ Capture
tcpdump -r (file name)
ที่มา : http://www.webserverthai.com
ป้ายกำกับ:
คำสั่งพื้นฐาน,
Linux,
script