Wireshark คืออะไร การวิเคราะห์ทราฟฟิกและการดักจับแพ็กเก็ต

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-05-08 เวลาอ่าน: 9 นาที

Wireshark เป็นเครื่องมือวิเคราะห์ทราฟฟิกเครือข่ายโอเพนซอร์สชั้นนำ ใช้สำหรับการดักจับและตรวจสอบแพ็กเก็ตแบบเรียลไทม์ เครื่องมือนี้รองรับโปรโตคอลเครือข่ายมากกว่าสองพันโปรโตคอลและทำงานบนแพลตฟอร์มหลักทั้งหมด จากข้อมูลใน Wireshark User Guide (2026) ยูทิลิตีนี้ใช้สำหรับการวินิจฉัยเครือข่าย การดีบัก API และการวิเคราะห์ความปลอดภัยในการพัฒนาแอปมือถือและเว็บ

ประเด็นสำคัญ

  • Wireshark เป็นเครื่องมือดักจับแพ็กเก็ตฟรีที่มีอินเทอร์เฟซแบบกราฟิกสำหรับการวิเคราะห์ทราฟฟิกเครือข่าย
  • การดักจับทราฟฟิก ทำผ่านอินเทอร์เฟซเครือข่ายในโหมด promiscuous ที่ระดับเลเยอร์เชื่อมโยงข้อมูล
  • การกรองแพ็กเก็ตตาม IP พอร์ต โปรโตคอลและเนื้อหาทำผ่านภาษา BPF และ display filters
  • การวิเคราะห์ HTTPS ต้องตั้งค่า SSLKEYLOGFILE หรือพร็อกซีกลางเพื่อถอดรหัสเซสชัน
  • การดีบักแอปมือถือ ทำได้ผ่านการรวม tcpdump บนอุปกรณ์กับ Remote Packet Capture

Wireshark คืออะไรและทำงานอย่างไร

Wireshark เป็นโปรแกรมโอเพนซอร์ส (GPLv2) ที่ดักจับแพ็กเก็ตข้อมูลที่ผ่านอินเทอร์เฟซเครือข่ายของคอมพิวเตอร์ โดยอิงจากไลบรารี libpcap (Unix) หรือ Npcap (Windows) สำหรับการดักจับที่ระดับเลเยอร์เชื่อมโยงข้อมูลของโมเดล OSI

หลักการดักจับแพ็กเก็ต

ในโหมดปกติ การ์ดเครือข่ายจะรับเฉพาะเฟรมที่ส่งถึงแอดเดรส MAC ของตัวเอง Wireshark สลับอินเทอร์เฟซไปที่โหมด promiscuous (ไม่เลือก) ซึ่งระบบจะประมวลผลเฟรมที่ผ่านทั้งหมดโดยไม่คำนึงถึงผู้รับ ข้อมูลที่ดักจับได้จะถูกส่งไปยังเคอร์เนลผ่าน raw socket จากนั้นไลบรารี libpcap จะคัดลอกไปยังยูสเซอร์สเปซเพื่อการวิเคราะห์

สถาปัตยกรรมการประมวลผล

Wireshark ใช้สถาปัตยกรรมแบบโมดูลาร์: โปรโตคอลแต่ละตัวถูกนำไปใช้เป็น dissector แยกต่างหาก — ปลั๊กอินที่แยกวิเคราะห์ข้อมูลไบนารีและแสดงผลในรูปแบบโครงสร้าง ณ ปี 2026 โปรแกรมมี dissector สำหรับ 2,874 โปรโตคอล รวมถึง HTTP/2, QUIC, gRPC และ MQTT dissector ทำงานผ่านระบบทรีโปรโตคอล — แต่ละแพ็กเก็ตถูกแยกวิเคราะห์ทีละเลเยอร์ ตั้งแต่เฟรม Ethernet ไปจนถึงเลเยอร์แอปพลิเคชัน

c
// ตัวอย่าง dissector อย่างง่ายสำหรับโปรโตคอลที่กำหนดเอง
static int dissect_custom(tvbuff_t *tvb, packet_info *pinfo,
        proto_tree *tree, void *data) {
    proto_item *ti = proto_tree_add_item(tree, hf_custom_field,
            tvb, 0, tvb_captured_length(tvb), ENC_NA);
    return 0;
}

ความสามารถหลักของ Wireshark

อินเทอร์เฟซแบบกราฟิกของ Wireshark แบ่งออกเป็นสามแผง: รายการแพ็กเก็ต (packet list) รายละเอียดโปรโตคอล (packet details) และดัมป์เลขฐานสิบหก (packet bytes) แต่ละแผงจะอัปเดตแบบเรียลไทม์และรองรับการนำทางแบบโต้ตอบ — การคลิกที่แถวแพ็กเก็ตจะเปิดโครงสร้างทั้งหมด

รูปแบบและโปรโตคอลที่รองรับ

เครื่องมืออ่านไฟล์ดักจับในรูปแบบ pcap, pcapng, snoop และ NetMon สามารถส่งออกเป็น JSON, XML, CSV และข้อความธรรมดา ในบรรดาโปรโตคอลเลเยอร์แอปพลิเคชันหลัก ได้แก่ HTTP/HTTPS, DNS, DHCP, TCP, UDP, TLS, QUIC, WebSocket, MQTT, AMQP และ Protobuf สำหรับการพัฒนาแอปมือถือ การรองรับ gRPC และ HTTP/2 แบบมัลติเพล็กซ์สตรีมมีความสำคัญเป็นพิเศษ

เครื่องมือวิเคราะห์

ยูทิลิตีในตัวประกอบด้วย Follow Stream (การสร้างบทสนทนา TCP/UDP/TLS เต็มรูปแบบ), IO Graph (กราฟแบนด์วิดท์), สถิติบทสนทนา (Conversations) และลำดับชั้นโปรโตคอล (Protocol Hierarchy) ฟังก์ชัน Flow Graph แสดงภาพลำดับแพ็กเก็ตระหว่างโหนด ซึ่งช่วยให้ค้นหาสาเหตุของความล่าช้าในการดีบักการโต้ตอบระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ได้ง่ายขึ้น

วิธีดักจับทราฟฟิกด้วย Wireshark

การเริ่มดักจับ เริ่มจากการเลือกอินเทอร์เฟซเครือข่าย — Ethernet, Wi-Fi, Bluetooth PAN หรือ Loopback บน Windows อาจต้องติดตั้ง Npcap ในโหมด WinPcap API Compatible Mode สำหรับการดักจับบนอุปกรณ์มือถือ จะใช้ Remote Packet Capture ผ่านอุโมงค์ SSH

การดักจับบนอุปกรณ์ระยะไกล

บนอุปกรณ์ Android ทราฟฟิกจะถูกดักจับด้วย tcpdump หรือ PCAPdroid จากนั้นส่งไฟล์ไปยังคอมพิวเตอร์ทำงาน คำสั่งสำหรับการดักจับระยะไกลผ่าน ADB:

bash
# การดักจับทราฟฟิกบน Android ผ่าน ADB shell
adb shell tcpdump -i wlan0 -s 0 -w /sdcard/capture.pcap
# การคัดลอกไปยังคอมพิวเตอร์
adb pull /sdcard/capture.pcap .

การดักจับทราฟฟิก Loopback

บน Windows ทราฟฟิก localhost (127.0.0.1) ไม่ผ่านอินเทอร์เฟซทางกายภาพ ดังนั้น Wireshark จึงไม่เห็นโดยตรง วิธีแก้คือติดตั้ง Npcap พร้อมตัวเลือก Loopback Support หรือเปลี่ยนเส้นทางทราฟฟิกผ่าน RawCap บน Linux และ macOS อินเทอร์เฟซ loopback (lo) จะถูกดักจับโดยไม่ต้องตั้งค่าเพิ่มเติม

การกรองแพ็กเก็ตใน Wireshark

Wireshark มีฟิลเตอร์สองประเภท: capture filters (ใช้ก่อนการดักจับที่ระดับ libpcap) และ display filters (ใช้กับข้อมูลที่ดักจับแล้ว) capture filters ใช้ไวยากรณ์ BPF (Berkeley Packet Filter) ส่วน display filters ใช้ภาษาของ Wireshark เองที่มีการเติมคำอัตโนมัติ

Capture Filters (BPF)

ฟิลเตอร์ BPF เขียนในรูปแบบ tcpdump และทำงานในเคอร์เนล ซึ่งช่วยลดการสูญเสียแพ็กเก็ตเมื่อโหลดสูง ตัวอย่างฟิลเตอร์:

ฟิลเตอร์วัตถุประสงค์
tcp port 80เฉพาะทราฟฟิก HTTP บนพอร์ตมาตรฐาน
host 192.168.1.1แพ็กเก็ตจากโฮสต์เฉพาะ
not arpแพ็กเก็ตทั้งหมดยกเว้นคำขอ ARP

Display Filters

display filters ใช้ภายหลังและรองรับเงื่อนไขที่ซับซ้อนด้วยตัวดำเนินการตรรกะ and, or, not ตัวอย่าง: http.request.method == "POST" and ip.src == 192.168.0.100 จะกรองเฉพาะคำขอ POST จาก IP ที่ระบุ ฟิลเตอร์สามารถบันทึกเป็นรายการโปรดเพื่อใช้อีกครั้ง

การวิเคราะห์ทราฟฟิก HTTP และ HTTPS

ทราฟฟิก HTTP แสดงใน Wireshark ในรูปแบบที่อ่านง่าย: เมธอดคำขอ URI ส่วนหัวและเนื้อหาคำตอบ ฟังก์ชัน Follow TCP Stream รวบรวมบทสนทนาเต็มรูปแบบระหว่างไคลเอ็นต์และเซิร์ฟเวอร์ในหน้าต่างเดียว สำหรับ HTTPS จำเป็นต้องถอดรหัสเซสชัน TLS เนื่องจากเนื้อหาถูกเข้ารหัส

การถอดรหัส HTTPS ผ่าน SSLKEYLOGFILE

เบราว์เซอร์ Chrome และ Firefox รองรับตัวแปรสภาพแวดล้อม SSLKEYLOGFILE ซึ่งเขียนคีย์เซสชัน TLS ลงในไฟล์ข้อความ Wireshark ใช้ไฟล์นี้เพื่อถอดรหัสบันทึก การตั้งค่าทำผ่าน Preferences → Protocols → TLS → (Pre)-Master-Secret log filename

bash
# เปิด Chrome พร้อมบันทึกคีย์ TLS
export SSLKEYLOGFILE=/tmp/sslkeys.log
google-chrome .

# หลังจากดักจับ ให้ระบุเส้นทางใน Wireshark
# Edit → Preferences → Protocols → TLS → Log Filename

การวิเคราะห์ gRPC และ Protobuf

gRPC ใช้ HTTP/2 เป็นตัวขนส่งและ Protobuf ในการทำให้ข้อมูลเป็นซีเรียล Wireshark ถอดรหัสข้อความ gRPC หากระบุไฟล์ .proto พร้อมนิยามโครงสร้าง dissector Protobuf จะจับคู่ฟิลด์ไบนารีกับชื่อในไฟล์ proto ซึ่งสำคัญอย่างยิ่งในการดีบักสถาปัตยกรรมไมโครเซอร์วิส

การดีบักแอปมือถือด้วย Wireshark

การดีบักแอปมือถือ ผ่าน Wireshark ต้องพร็อกซีทราฟฟิกของอุปกรณ์ไปยังคอมพิวเตอร์ วิธีที่น่าเชื่อถือที่สุดคือการสร้างจุดเชื่อมต่อ Wi-Fi บนแล็ปท็อปและเปลี่ยนเส้นทางทราฟฟิกผ่าน NAT บน Android ยังมีวิธี VPN กับแอป PCAPdroid โดยไม่ต้องมีสิทธิ์ root

การตั้งค่าบน Android โดยไม่ใช้ root

PCAPdroid สร้างบริการ VPN ในเครื่องที่เปลี่ยนเส้นทางทราฟฟิกของแอปไปยัง Wireshark ผ่านสตรีม UDP แอปไม่ต้องการสิทธิ์ root และรองรับการกรองตามกระบวนการแต่ละกระบวนการ ไฟล์ pcap ที่ได้จะเปิดใน Wireshark เพื่อการวิเคราะห์เต็มรูปแบบ

bash
# การรับทราฟฟิกจาก PCAPdroid บนคอมพิวเตอร์
# PCAPdroid → Settings → PCAP dumper → UDP Exporter
nc -l -u 192.168.0.10 12345 > capture.pcap

การเปรียบเทียบ Wireshark กับทางเลือกอื่น

Wireshark เป็นเครื่องมืออเนกประสงค์ แต่สำหรับงานเฉพาะมีโซลูชันที่เชี่ยวชาญกว่า tcpdump มีประสิทธิภาพกว่าสำหรับการดักจับฝั่งเซิร์ฟเวอร์แบบไม่มีกราฟิก Charles Proxy สะดวกกว่าสำหรับการวิเคราะห์ทราฟฟิก HTTPS ส่วน Fiddler เหมาะสำหรับการตรวจสอบทราฟฟิกเว็บพร้อมความสามารถในการแก้ไขคำขอทันที

Charles Proxy vs Wireshark

Charles Proxy ทำหน้าที่เป็นเซิร์ฟเวอร์พร็อกซีกลางที่มีความสามารถในการดักจับ HTTPS ผ่านการรับรอง SSL ของตัวเอง ต่างจาก Wireshark ตรงที่ Charles ไม่ต้องตั้งค่า SSLKEYLOGFILE และสามารถไม่เพียงดูเท่านั้นแต่ยังแก้ไขทราฟฟิกได้ — แทนที่คำตอบ จำลองความล่าช้า และทำคำขอซ้ำ

Fiddler Everywhere

Fiddler เป็นเครื่องมือพร็อกซีอีกตัวที่นิยมในระบบนิเวศ .NET มีตัวแก้ไขคำขอในตัว รองรับ AutoResponder สำหรับ mock และคอมโพเซอร์สำหรับสร้างคำขอแบบกำหนดเอง Fiddler เหมาะกว่าสำหรับการวิเคราะห์ทราฟฟิกเว็บของเบราว์เซอร์ ส่วน Wireshark เหมาะสำหรับการวิเคราะห์เครือข่ายระดับต่ำ

เครื่องมือประเภทHTTPS ไม่ต้องใช้คีย์การแก้ไขทราฟฟิก
Wiresharkตัวดักจับไม่ (ต้องใช้ SSLKEYLOGFILE)ดูอย่างเดียว
Charlesพร็อกซีใช่ (ใบรับรองกำหนดเอง)ใช่
Fiddlerพร็อกซีใช่ (ใบรับรองกำหนดเอง)ใช่
tcpdumpตัวดักจับไม่ดูอย่างเดียว

เคล็ดลับปฏิบัติสำหรับการทำงานกับ Wireshark

Wireshark ต้องเข้าใจหลักการพื้นฐานของการดักจับทราฟฟิก สถานการณ์หนึ่งที่พบบ่อยคือการค้นหาแหล่งที่มาของความล่าช้าในแอปมือถือผ่านฟิลเตอร์ tcp.analysis.ack_rtt หากต้องการหาคำขอ HTTP ที่ช้า ให้ใช้เงื่อนไข http.time มากกว่า 1

การค้นหาคำขอที่ช้า

หากต้องการหาคำขอ HTTP ที่ช้า ให้กรอง http.time มากกว่า 1 — Wireshark จะแสดงคำขอที่มีเวลาตอบสนองมากกว่า 1 วินาที รวมกับ ip.addr เพื่อวิเคราะห์เซิร์ฟเวอร์เฉพาะ IO Graph ที่ช่วง 1 วินาทีจะแสดงจุดสูงสุดของโหลดได้ชัดเจน

การส่งออกและการรายงาน

Wireshark รองรับการส่งออกเป็น CSV, JSON และ XML ผ่านเมนู File สำหรับการวิเคราะห์อัตโนมัติ ให้ใช้ tshark — เวอร์ชันคอนโซลที่ทำงานในไปป์ไลน์ CI/CD Tshark รองรับฟิลเตอร์และรูปแบบเอาต์พุตเดียวกันกับเวอร์ชันกราฟิก

เคล็ดลับปฏิบัติสำหรับการทำงานกับ Wireshark

Wireshark ต้องเข้าใจหลักการพื้นฐานของการดักจับทราฟฟิก สถานการณ์หนึ่งที่พบบ่อยคือการค้นหาแหล่งที่มาของความล่าช้าในแอปมือถือผ่านฟิลเตอร์ tcp.analysis.ack_rtt หากต้องการหาคำขอ HTTP ที่ช้า ให้ใช้เงื่อนไข http.time มากกว่า 1

การค้นหาคำขอที่ช้า

หากต้องการหาคำขอ HTTP ที่ช้า ให้กรอง http.time มากกว่า 1 — Wireshark จะแสดงคำขอที่มีเวลาตอบสนองมากกว่า 1 วินาที รวมกับ ip.addr เพื่อวิเคราะห์เซิร์ฟเวอร์เฉพาะ IO Graph ที่ช่วง 1 วินาทีจะแสดงจุดสูงสุดของโหลดได้ชัดเจน

การส่งออกและการรายงาน

Wireshark รองรับการส่งออกเป็น CSV, JSON และ XML ผ่านเมนู File สำหรับการวิเคราะห์อัตโนมัติ ให้ใช้ tshark — เวอร์ชันคอนโซลที่ทำงานในไปป์ไลน์ CI/CD Tshark รองรับฟิลเตอร์และรูปแบบเอาต์พุตเดียวกันกับเวอร์ชันกราฟิก

คำถามที่พบบ่อย

Wireshark แตกต่างจาก tcpdump อย่างไร?

Wireshark มีอินเทอร์เฟซแบบกราฟิกพร้อมการแสดงภาพแพ็กเก็ต ฟิลเตอร์ในตัวและสถิติ tcpdump เป็นยูทิลิตีคอนโซลที่ไม่มี GUI สะดวกสำหรับการดักจับฝั่งเซิร์ฟเวอร์ผ่าน SSH Wireshark อ่านไฟล์ของ tcpdump ได้และในทางกลับกัน

วิธีดักจับทราฟฟิก HTTPS ใน Wireshark?

การถอดรหัสต้องใช้ไฟล์คีย์เซสชัน TLS (SSLKEYLOGFILE) Chrome และ Firefox ส่งออกคีย์เมื่อเปิดใช้งานพร้อมตัวแปรสภาพแวดล้อม ระบุเส้นทางของไฟล์ในการตั้งค่า Protocols → TLS ใน Wireshark

ทำไม Wireshark ไม่เห็นทราฟฟิก localhost บน Windows?

ทราฟฟิก loopback บน Windows ไม่ผ่านไดรเวอร์ Npcap โดยค่าเริ่มต้น วิธีแก้คือติดตั้ง Npcap พร้อมเปิดตัวเลือก Loopback Support หรือใช้ยูทิลิตี RawCap เพื่อดักจับทราฟฟิกในเครื่อง

ใช้ Wireshark สำหรับแอปมือถือได้หรือไม่?

ได้ โดยพร็อกซีทราฟฟิกไปยังคอมพิวเตอร์ Android รองรับการดักจับผ่าน PCAPdroid (ไม่ต้อง root) หรือ tcpdump (ต้อง root) iOS ต้องใช้ RVI (Remote Virtual Interface) ผ่าน macOS หรือ jailbreak ในการดักจับ

วิธีกรองแพ็กเก็ตตามเนื้อหาใน Wireshark?

display filter frame contains ค้นหาสตริงหรือลำดับเลขฐานสิบหกในแพ็กเก็ตทั้งหมด ตัวอย่าง: frame contains "password" จะหาแพ็กเก็ตที่มีสตริงย่อย password ในฟิลด์ใดก็ได้ สำหรับการค้นหาตามฟิลด์ที่แม่นยำ ใช้ http.request.uri contains "api"

สรุป

  • Wireshark เป็นเครื่องมือหลักในการวิเคราะห์ทราฟฟิกเครือข่ายในการพัฒนา รองรับมากกว่า 2800 โปรโตคอล
  • การดักจับแพ็กเก็ต ทำในโหมด promiscuous ผ่านไลบรารี libpcap หรือ Npcap ที่ระดับการเข้าถึงช่องสัญญาณ
  • การกรองแบ่งเป็น capture filters (BPF ที่ระดับเคอร์เนล) และ display filters (ภาษา Wireshark พร้อมเติมคำอัตโนมัติ)
  • การถอดรหัส HTTPS มีให้ผ่าน SSLKEYLOGFILE สำหรับเบราว์เซอร์ Chrome และ Firefox
  • การดีบักแอปมือถือ ทำผ่าน PCAPdroid (Android) หรือ Remote Virtual Interface (iOS) โดยไม่ต้องใช้ root
  • gRPC และ Protobuf รองรับผ่านการโหลดไฟล์ .proto เพื่อดีซีเรียลไลซ์ข้อมูลไบนารี
  • Flow Graph และ IO Graph ช่วยแสดงภาพความล่าช้าและหาจุดคอขวดในการโต้ตอบระหว่างไคลเอ็นต์และเซิร์ฟเวอร์

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม