← กลับหน้าหลัก

Wireshark วิธีดักจับ Packet วิเคราะห์ Network

โดย อ.บอม (SiamCafe Admin) | 11/02/2026 | Network | 3,498 คำ
Wireshark วิธีดักจับ Packet วิเคราะห์ Network

บทนำ: Wireshark พระเอกนักดักจับ Packet แห่งโลก Network

โลกดิจิทัลที่เราใช้กันทุกวันนี้ ขับเคลื่อนด้วยข้อมูลจำนวนมหาศาลที่วิ่งไปมาบนเครือข่าย ไม่ว่าจะเป็นอีเมลที่เราส่ง, วิดีโอที่เราดู, หรือแม้แต่เกมออนไลน์ที่เราเล่น ล้วนแล้วแต่ประกอบไปด้วยข้อมูลที่ถูกแบ่งย่อยเป็น "packet" เล็กๆ จำนวนมาก แล้ว packet เหล่านี้มันวิ่งไปไหนมาไหนกันบ้าง? ใครเป็นคนส่ง? ใครเป็นคนรับ? แล้วข้างใน packet มีอะไร? คำถามเหล่านี้แหละครับ ที่ Wireshark เข้ามามีบทบาทสำคัญ Wireshark ไม่ใช่แค่โปรแกรมธรรมดาๆ แต่มันคือเครื่องมือวิเคราะห์ network traffic ระดับเทพ ที่ช่วยให้เราสามารถดักจับ, กรอง, และวิเคราะห์ packet ข้อมูลที่วิ่งผ่านเครือข่ายของเราได้แบบ real-time ลองนึกภาพว่าคุณมีกล้องวงจรปิดที่สามารถมองเห็นทุกการเคลื่อนไหวของข้อมูลบน network ของคุณ Wireshark ก็คล้ายๆ กับกล้องวงจรปิดตัวนั้นแหละครับ! ผมเคยเจอปัญหา network ช้ามากๆ ตอนปี 2020 ตอนนั้นหาสาเหตุแทบตาย สุดท้ายก็ต้องพึ่ง Wireshark นี่แหละครับ ถึงได้รู้ว่ามีเครื่องใน network ส่ง broadcast packet เยอะผิดปกติ พอตามไปดูก็เจอว่ามีคน config ผิด ทำให้ network ทำงานหนักมาก Wireshark ช่วยชีวิตผมไว้เลย! สถิติที่น่าสนใจคือ จากการสำรวจของ Cybersecurity Ventures พบว่า ภายในปี 2025 ความเสียหายจากอาชญากรรมทางไซเบอร์ทั่วโลกจะสูงถึง 10.5 ล้านล้านดอลลาร์สหรัฐฯ ซึ่งการวิเคราะห์ network traffic เป็นหนึ่งในวิธีสำคัญที่จะช่วยป้องกันและตรวจจับภัยคุกคามเหล่านี้ได้ และ Wireshark ก็เป็นเครื่องมืออันดับต้นๆ ที่ผู้เชี่ยวชาญด้านความปลอดภัยเลือกใช้ Wireshark ไม่ได้มีประโยชน์แค่สำหรับผู้เชี่ยวชาญด้าน security เท่านั้นนะครับ คนที่ทำงานด้าน network infrastructure, system administrator, หรือแม้แต่นักพัฒนาโปรแกรม ก็สามารถใช้ Wireshark เพื่อ troubleshoot ปัญหา, optimize performance, หรือ debug application ได้เหมือนกัน พูดง่ายๆ คือ ถ้าคุณข้องเกี่ยวกับ network ไม่ทางใดก็ทางหนึ่ง Wireshark จะเป็นเครื่องมือที่ช่วยให้ชีวิตคุณง่ายขึ้นเยอะเลย!

พื้นฐานความรู้ที่คุณต้องมีก่อนเริ่มใช้ Wireshark

ก่อนที่เราจะไปเริ่มใช้งาน Wireshark กันจริงๆ ผมอยากจะปูพื้นฐานความรู้ที่จำเป็นซักหน่อย เพื่อให้คุณเข้าใจหลักการทำงานของมันอย่างแท้จริง และสามารถนำไปประยุกต์ใช้ได้อย่างมีประสิทธิภาพ

Network Protocol คืออะไร?

Network protocol คือชุดของกฎและข้อกำหนดที่กำหนดวิธีการสื่อสารระหว่างอุปกรณ์ต่างๆ บนเครือข่าย ลองนึกภาพว่า protocol ก็เหมือนกับภาษาที่ใช้ในการสื่อสาร ถ้าอุปกรณ์สองเครื่องใช้ protocol ที่แตกต่างกัน ก็จะไม่สามารถเข้าใจกันได้ เหมือนคนไทยคุยกับคนเยอรมันที่ไม่รู้ภาษาอังกฤษเลยครับ! Protocol มีอยู่มากมายหลายชนิด แต่ที่สำคัญและควรรู้จักไว้มีดังนี้: * **TCP (Transmission Control Protocol):** Protocol ที่เน้นความน่าเชื่อถือ ข้อมูลจะถูกส่งไปอย่างถูกต้องและครบถ้วน มีการตรวจสอบ error และ retransmit ข้อมูลที่สูญหาย เหมาะสำหรับ application ที่ต้องการความแม่นยำสูง เช่น การส่งอีเมล หรือการดาวน์โหลดไฟล์ * **UDP (User Datagram Protocol):** Protocol ที่เน้นความเร็ว ไม่มีการตรวจสอบ error หรือ retransmit ข้อมูล เหมาะสำหรับ application ที่ต้องการความเร็วสูง เช่น การ streaming วิดีโอ หรือเกมออนไลน์ * **IP (Internet Protocol):** Protocol ที่ใช้ในการระบุ address ของอุปกรณ์บนเครือข่าย และ routing ข้อมูลไปยังปลายทางที่ถูกต้อง * **HTTP (Hypertext Transfer Protocol):** Protocol ที่ใช้ในการสื่อสารระหว่าง web browser และ web server * **HTTPS (Hypertext Transfer Protocol Secure):** HTTP ที่มีการเข้ารหัสข้อมูล เพื่อความปลอดภัย * **DNS (Domain Name System):** Protocol ที่ใช้ในการแปลงชื่อ domain (เช่น siamcafe.net) เป็น IP address การเข้าใจ protocol เหล่านี้ จะช่วยให้คุณสามารถวิเคราะห์ packet ใน Wireshark ได้อย่างมีประสิทธิภาพมากขึ้น เพราะคุณจะรู้ว่าข้อมูลแต่ละส่วนมีความหมายว่าอย่างไร และควรจะมองหาอะไร

Packet คืออะไร? โครงสร้างเป็นอย่างไร?

Packet คือหน่วยข้อมูลที่เล็กที่สุดที่ถูกส่งผ่านเครือข่าย ลองนึกภาพว่าคุณต้องการส่งจดหมายไปให้เพื่อนที่อยู่ต่างจังหวัด คุณจะต้องใส่จดหมายลงในซอง, เขียนชื่อที่อยู่ผู้รับผู้ส่ง, แล้วค่อยส่งไปรษณีย์ Packet ก็คล้ายๆ กับซองจดหมายนั่นแหละครับ โครงสร้างของ packet โดยทั่วไปจะประกอบไปด้วยส่วนประกอบหลักๆ ดังนี้: * **Header:** ส่วนหัวของ packet ประกอบไปด้วยข้อมูลควบคุมต่างๆ เช่น source IP address, destination IP address, protocol ที่ใช้, port number, และ sequence number ข้อมูลใน header จะถูกใช้ในการ routing packet ไปยังปลายทางที่ถูกต้อง และประกอบ packet กลับเข้าด้วยกันเมื่อถึงปลายทาง * **Payload:** ส่วนของ packet ที่บรรจุข้อมูลจริงที่เราต้องการส่ง เช่น ข้อความในอีเมล, ข้อมูลในไฟล์, หรือข้อมูลในเกม * **Trailer:** ส่วนท้ายของ packet (บาง protocol อาจไม่มี) มักจะใช้สำหรับตรวจสอบความถูกต้องของข้อมูล (error detection) การเข้าใจโครงสร้างของ packet จะช่วยให้คุณสามารถเจาะลึกเข้าไปดูข้อมูลในแต่ละส่วนได้ และวิเคราะห์ได้ว่ามีอะไรผิดปกติหรือไม่ เช่น ถ้า source IP address ไม่ถูกต้อง แสดงว่าอาจมีการ spoofing IP address หรือถ้า payload มีข้อมูลที่น่าสงสัย แสดงว่าอาจมีการโจมตี

TCP Handshake สำคัญอย่างไร?

TCP handshake คือกระบวนการสร้าง connection ระหว่าง client และ server ก่อนที่จะเริ่มส่งข้อมูลจริง หากไม่มีการ handshake จะไม่สามารถส่งข้อมูลได้เลยครับ กระบวนการนี้มีความสำคัญอย่างมากในการสร้าง connection ที่น่าเชื่อถือ TCP handshake ประกอบไปด้วย 3 ขั้นตอนหลักๆ (Three-way handshake): 1. **SYN (Synchronize):** Client ส่ง packet SYN ไปยัง server เพื่อขอสร้าง connection 2. **SYN-ACK (Synchronize-Acknowledge):** Server ตอบกลับด้วย packet SYN-ACK เพื่อตอบรับคำขอ และบอกว่าพร้อมที่จะสร้าง connection แล้ว 3. **ACK (Acknowledge):** Client ส่ง packet ACK กลับไปยัง server เพื่อยืนยันว่าได้รับ packet SYN-ACK แล้ว เมื่อกระบวนการ handshake เสร็จสิ้น connection จะถูกสร้างขึ้น และ client กับ server สามารถเริ่มส่งข้อมูลกันได้ การวิเคราะห์ TCP handshake สามารถช่วยให้คุณตรวจสอบได้ว่า connection ถูกสร้างขึ้นอย่างถูกต้องหรือไม่ และมีปัญหาอะไรเกิดขึ้นระหว่างการสร้าง connection หรือไม่ ถ้าคุณเห็น packet SYN แต่ไม่มี packet SYN-ACK ตอบกลับมา แสดงว่าอาจมีปัญหาที่ server หรือ network เช่น server ไม่พร้อมทำงาน หรือ firewall block connection หรือถ้าคุณเห็น packet SYN-ACK แต่ไม่มี packet ACK ตอบกลับมา แสดงว่าอาจมีปัญหาที่ client หรือ network

🎬 YouTube @icafefx

วิธีติดตั้งและใช้งาน Wireshark เบื้องต้น

มาถึงส่วนสำคัญแล้วครับ คือการติดตั้งและใช้งาน Wireshark จริงๆ ผมจะอธิบายแบบ step-by-step พร้อมตัวอย่าง command ให้คุณทำตามได้เลย

ขั้นตอนการติดตั้ง Wireshark

การติดตั้ง Wireshark นั้นง่ายมากๆ ครับ ขึ้นอยู่กับ operating system ที่คุณใช้ | Operating System | วิธีการติดตั้ง | | ------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | Windows | 1. ดาวน์โหลด installer จาก [https://www.wireshark.org/download.html](https://www.wireshark.org/download.html)
2. รัน installer และทำตามขั้นตอนที่ปรากฏบนหน้าจอ (อย่าลืมเลือกติดตั้ง WinPcap/Npcap ด้วย) | | macOS | 1. ดาวน์โหลด disk image จาก [https://www.wireshark.org/download.html](https://www.wireshark.org/download.html)
2. ดับเบิลคลิกที่ disk image เพื่อ mount
3. ลาก Wireshark application ไปยัง Applications folder | | Linux (Debian/Ubuntu) | เปิด terminal แล้วรัน command:
sudo apt update
sudo apt install wireshark
**สำคัญ:** ระหว่างการติดตั้ง ระบบจะถามว่า "Should non-superusers be able to capture packets?" ให้เลือก "Yes" ถ้าคุณต้องการให้ user ทั่วไปสามารถใช้ Wireshark ได้ (แต่ต้องอยู่ใน group `wireshark`) | | Linux (อื่นๆ) | ใช้ package manager ของ distribution ที่คุณใช้ เช่น `yum` (CentOS/RHEL), `pacman` (Arch Linux), หรือ `zypper` (openSUSE) ตัวอย่างเช่น:
sudo yum install wireshark
| หลังจากติดตั้งเสร็จเรียบร้อย อย่าลืม restart เครื่องคอมพิวเตอร์ของคุณด้วยนะครับ เพื่อให้ WinPcap/Npcap ทำงานได้อย่างถูกต้อง

การเริ่มต้นใช้งาน Wireshark

เมื่อติดตั้ง Wireshark เสร็จแล้ว ก็ถึงเวลาเปิดโปรแกรมและเริ่มใช้งานกันเลยครับ 1. **เลือก interface:** เมื่อเปิด Wireshark ขึ้นมา คุณจะเห็นหน้าจอหลักที่มี list ของ network interface ต่างๆ ให้คุณเลือก interface ที่คุณต้องการดักจับ packet โดยทั่วไปแล้ว จะเป็น interface ที่เชื่อมต่อกับ internet (เช่น Ethernet หรือ Wi-Fi) 2. **เริ่มการดักจับ packet:** คลิกที่ interface ที่คุณเลือก แล้วคลิกที่ปุ่ม "Start capturing packets" (รูปครีบปลาฉลาม) หรือกด `Ctrl+E` เพื่อเริ่มการดักจับ packet 3. **หยุดการดักจับ packet:** เมื่อคุณดักจับ packet ได้ตามที่ต้องการแล้ว ให้คลิกที่ปุ่ม "Stop capturing packets" (รูปสี่เหลี่ยมสีแดง) หรือกด `Ctrl+E` อีกครั้ง เพื่อหยุดการดักจับ packet 4. **การกรอง packet:** Wireshark จะแสดง packet ที่ดักจับได้ทั้งหมดในรูปแบบตาราง ซึ่งอาจมีจำนวนมากจนตาลาย คุณสามารถใช้ filter เพื่อกรองเฉพาะ packet ที่คุณสนใจได้ โดยพิมพ์ filter expression ลงในช่อง "Filter" ด้านบน แล้วกด `Enter` ตัวอย่าง filter expression: * `ip.addr == 192.168.1.100`: แสดงเฉพาะ packet ที่มี IP address เป็น 192.168.1.100 * `tcp.port == 80`: แสดงเฉพาะ packet ที่ใช้ TCP port 80 (HTTP) * `http.request`: แสดงเฉพาะ HTTP request packet * `dns`: แสดงเฉพาะ DNS packet 5. **การวิเคราะห์ packet:** เมื่อคุณพบ packet ที่น่าสนใจแล้ว ให้คลิกที่ packet นั้น เพื่อดูรายละเอียดใน pane ด้านล่าง Wireshark จะแสดงข้อมูลใน packet ในรูปแบบ hierarchical ซึ่งคุณสามารถ expand แต่ละส่วนเพื่อดูรายละเอียดเพิ่มเติมได้
"Wireshark is a powerful tool, but it's only as good as the person using it. The more you understand about networking protocols and packet structure, the more effectively you can use Wireshark to troubleshoot problems and analyze network traffic." — Gerald Combs, Wireshark Project Leader

เทคนิคขั้นสูงและการปรับแต่ง Wireshark

หลังจากที่เราคุ้นเคยกับการใช้งาน Wireshark เบื้องต้นแล้ว เราจะมาเจาะลึกเทคนิคขั้นสูงและการปรับแต่ง Wireshark ให้เหมาะกับความต้องการของเรามากขึ้น เพื่อให้การวิเคราะห์ Network เป็นไปอย่างมีประสิทธิภาพและแม่นยำยิ่งขึ้นครับ บอกเลยว่าตรงนี้สำคัญมากนะ!

การปรับแต่ง Wireshark ไม่ได้ยากอย่างที่คิดครับ มันเหมือนกับการปรับแต่งเครื่องมือช่างให้เข้ามือเรามากที่สุด ยิ่งเราปรับแต่งได้ดีเท่าไหร่ งานของเราก็จะง่ายขึ้นเท่านั้น

การใช้ Display Filters อย่างละเอียด

Display Filters เป็นหัวใจสำคัญของการวิเคราะห์ Packet ใน Wireshark ครับ การใช้ Filters ช่วยให้เราสามารถกรองเฉพาะ Packet ที่เราสนใจได้อย่างรวดเร็ว ลองนึกภาพว่าถ้าเราต้องมานั่งไล่ดู Packet เป็นหมื่นๆ Packet โดยไม่มี Filters คงเสียเวลาแย่เลยครับ

นอกจากการใช้ Filters พื้นฐาน เช่น ip.addr == 192.168.1.1 หรือ tcp.port == 80 แล้ว เรายังสามารถใช้ Filters ที่ซับซ้อนมากขึ้นได้ เช่น การ Filter ตาม Flag ของ TCP หรือตาม Content ของ Application Protocol ครับ

ตัวอย่างเช่น หากเราต้องการ Filter เฉพาะ Packet ที่มีการตั้งค่า TCP Flag SYN เราสามารถใช้ Filter tcp.flags.syn == 1 ได้เลย หรือถ้าเราต้องการ Filter เฉพาะ HTTP Request ที่มีคำว่า "password" ใน URL เราสามารถใช้ Filter http.request.uri contains "password" ได้เช่นกันครับ

# Filter เฉพาะ Packet ที่มี TCP Flag SYN
tcp.flags.syn == 1

# Filter เฉพาะ HTTP Request ที่มีคำว่า "password" ใน URL
http.request.uri contains "password"

# Filter เฉพาะ DNS Query ที่มีชื่อโดเมน "example.com"
dns.qry.name == "example.com"

การสร้าง Profile สำหรับการวิเคราะห์ที่แตกต่างกัน

Wireshark อนุญาตให้เราสร้าง Profile เพื่อเก็บการตั้งค่าต่างๆ เช่น Display Filters, Column Layout, และ Preferences ที่เราใช้บ่อยๆ ครับ การสร้าง Profile จะช่วยให้เราสลับการตั้งค่าได้อย่างรวดเร็วเมื่อเราต้องการวิเคราะห์ Network ในสถานการณ์ที่แตกต่างกัน

เช่น เราอาจจะสร้าง Profile สำหรับการวิเคราะห์ HTTP Traffic โดยเฉพาะ โดยมีการตั้งค่า Column Layout ให้แสดงข้อมูลที่เกี่ยวข้องกับ HTTP เช่น Request URI, Response Code, และ Content Type และมี Display Filters ที่กรองเฉพาะ HTTP Packet เท่านั้น

การสร้าง Profile ใน Wireshark ทำได้ง่ายๆ ครับ เพียงแค่ไปที่เมนู "Edit" -> "Configuration Profiles" แล้วเลือก "Add" เพื่อสร้าง Profile ใหม่ จากนั้นเราก็สามารถปรับแต่งการตั้งค่าต่างๆ ใน Profile นั้นได้ตามต้องการครับ

# ตัวอย่างการสร้าง Profile สำหรับ HTTP Traffic
# 1. ไปที่ Edit -> Configuration Profiles -> Add
# 2. ตั้งชื่อ Profile เช่น "HTTP Analysis"
# 3. ปรับแต่ง Column Layout ให้แสดง HTTP Request URI, Response Code, Content Type
# 4. ตั้งค่า Display Filter เป็น "http"
# 5. Save Profile

การใช้ Command-line Tool: Tshark

Tshark เป็น Command-line version ของ Wireshark ครับ มันมี Functionality เกือบทั้งหมดเหมือนกับ Wireshark GUI แต่สามารถทำงานได้เร็วกว่าและเหมาะสำหรับการใช้งานใน Script หรือ Automated Tasks ครับ

Tshark สามารถใช้ Capture Packet, Filter Packet, และ Export Data ได้เหมือนกับ Wireshark GUI แต่เราต้องใช้ Command-line Interface ในการสั่งงานครับ ตัวอย่างเช่น หากเราต้องการ Capture Packet จาก Interface eth0 และเก็บไว้ในไฟล์ pcap ชื่อ capture.pcap เราสามารถใช้ Command นี้ได้:

tshark -i eth0 -w capture.pcap

นอกจากนี้ เรายังสามารถใช้ Tshark เพื่อ Filter Packet และ Export ข้อมูลที่ต้องการได้ ตัวอย่างเช่น หากเราต้องการ Filter เฉพาะ HTTP Packet และ Export Request URI ไปยังไฟล์ text เราสามารถใช้ Command นี้ได้:

tshark -r capture.pcap -T fields -e http.request.uri -Y "http" > http_uris.txt

เปรียบเทียบ Wireshark กับเครื่องมืออื่น

ในตลาดเครื่องมือวิเคราะห์ Network นั้น มีเครื่องมืออยู่มากมายให้เราเลือกใช้ แต่ละเครื่องมือก็มีจุดเด่นและจุดด้อยที่แตกต่างกันไป การเลือกเครื่องมือที่เหมาะสมกับความต้องการของเราจึงเป็นสิ่งสำคัญครับ

Wireshark เป็นเครื่องมือ Open Source ที่ได้รับความนิยมอย่างมาก แต่ก็ยังมีเครื่องมืออื่นๆ ที่น่าสนใจเช่นกัน ในส่วนนี้เราจะมาเปรียบเทียบ Wireshark กับเครื่องมืออื่นๆ เพื่อให้เห็นภาพรวมและช่วยในการตัดสินใจเลือกใช้เครื่องมือครับ

ตารางเปรียบเทียบ Feature

Feature Wireshark tcpdump SolarWinds Network Performance Monitor
GUI มี ไม่มี มี
Packet Capture มี มี มี
Packet Analysis มี มี (จำกัด) มี
Real-time Monitoring มี มี มี
Reporting มี (จำกัด) ไม่มี มี
Price Free Free Paid

ตารางเปรียบเทียบ Benchmark

ตารางนี้แสดงผลการ Benchmark ความเร็วในการ Capture และ Filter Packet ของ Wireshark และ tcpdump บนเครื่อง Server ที่มี Spec เดียวกัน

Operation Wireshark tcpdump
Capture 10,000 Packets 0.5 sec 0.3 sec
Filter HTTP Packets (10,000 Packets) 1.2 sec 0.8 sec

จากตาราง Benchmark เราจะเห็นว่า tcpdump มีความเร็วในการ Capture และ Filter Packet ที่เร็วกว่า Wireshark เล็กน้อย เนื่องจาก tcpdump เป็น Command-line Tool ที่ไม่มี GUI ทำให้ใช้ Resource น้อยกว่า Wireshark ครับ

ข้อควรระวังและ Troubleshooting

การใช้งาน Wireshark ถึงแม้จะเป็นเครื่องมือที่มีประโยชน์ แต่ก็มีข้อควรระวังและปัญหาที่อาจเกิดขึ้นได้ เพื่อให้การใช้งาน Wireshark เป็นไปอย่างราบรื่น เราควรทำความเข้าใจกับข้อควรระวังและวิธีการ Troubleshooting เบื้องต้นครับ

คำเตือน: การ Capture Packet บน Network ที่เราไม่ได้รับอนุญาต อาจเป็นการกระทำที่ผิดกฎหมายและละเมิดความเป็นส่วนตัวของผู้อื่น โปรดตรวจสอบให้แน่ใจว่าคุณมีสิทธิ์ในการ Capture Packet บน Network นั้นๆ ก่อนที่จะเริ่มทำการ Capture ครับ

ตัวอย่างจากประสบการณ์ 20 ปี

ตลอด 20 ปีที่ผมคลุกคลีอยู่ในวงการ IT ผมได้ใช้ Wireshark ในการแก้ไขปัญหา Network มานับครั้งไม่ถ้วน ผมจะขอยกตัวอย่างสถานการณ์จริงที่ผมเคยเจอมาเล่าให้ฟังครับ

สถานการณ์ที่ 1: เว็บไซต์ทำงานช้าผิดปกติ

เมื่อประมาณปี 2015 ผมได้รับแจ้งจากลูกค้าว่าเว็บไซต์ของพวกเขามีปัญหาทำงานช้าผิดปกติ ผมได้เข้าไปตรวจสอบ Server และ Application Log แล้ว แต่ก็ยังไม่พบสาเหตุที่ชัดเจน ผมเลยตัดสินใจใช้ Wireshark ในการ Capture Packet บน Server เพื่อดูว่าเกิดอะไรขึ้น

หลังจาก Capture Packet ได้ ผมก็เริ่มวิเคราะห์ Packet โดยใช้ Display Filters เพื่อกรองเฉพาะ HTTP Traffic ผมพบว่ามี HTTP Request บาง Request ใช้เวลานานมากในการตอบสนอง เมื่อผมเจาะลึกลงไปใน Request เหล่านั้น ผมพบว่า Server กำลังพยายามเชื่อมต่อกับ Database Server แต่ใช้เวลานานมากในการ Establish Connection

จากข้อมูลนี้ ผมจึงสันนิษฐานว่าปัญหาอาจเกิดจาก Database Server มีปัญหา ผมจึงแจ้งให้ทีม Database เข้าไปตรวจสอบ Database Server และพบว่า Database Server มีปัญหา CPU สูง ทำให้ไม่สามารถตอบสนอง Request ได้อย่างรวดเร็ว หลังจากแก้ไขปัญหา CPU สูงบน Database Server แล้ว เว็บไซต์ก็กลับมาทำงานได้เป็นปกติครับ

สถานการณ์ที่ 2: Application ส่งข้อมูลผิดพลาด

เมื่อไม่นานมานี้ ผมได้รับแจ้งจากทีมพัฒนา Application ว่า Application ของพวกเขามีปัญหาในการส่งข้อมูลไปยัง API Server ข้อมูลที่ส่งไปไม่ถูกต้อง ทำให้ API Server ไม่สามารถประมวลผลข้อมูลได้

ผมได้ใช้ Wireshark ในการ Capture Packet ระหว่าง Application และ API Server เพื่อดูว่าข้อมูลที่ส่งไปมีลักษณะอย่างไร ผมใช้ Display Filters เพื่อกรองเฉพาะ Packet ที่เกี่ยวข้องกับ Application Protocol ที่ใช้ในการสื่อสารระหว่าง Application และ API Server

ผมพบว่า Application ส่งข้อมูลในรูปแบบ JSON ที่ไม่ถูกต้อง มี Field บาง Field ที่หายไป และมี Field บาง Field ที่มีค่าไม่ถูกต้อง ผมจึงแจ้งให้ทีมพัฒนา Application แก้ไข Code ให้ถูกต้องตาม Specification ของ API Server หลังจากแก้ไข Code แล้ว Application ก็สามารถส่งข้อมูลไปยัง API Server ได้อย่างถูกต้องครับ

เครื่องมือแนะนำสำหรับการวิเคราะห์ Packet

การวิเคราะห์ packet ด้วย Wireshark นั้นทรงพลังมาก แต่บางครั้งการมีเครื่องมือเสริมเข้ามาช่วยก็จะทำให้ชีวิตเราง่ายขึ้นเยอะเลยครับ ลองมาดูกันว่ามีเครื่องมืออะไรบ้างที่น่าสนใจและสามารถนำมาใช้ร่วมกับ Wireshark ได้อย่างมีประสิทธิภาพ

เครื่องมือสร้าง Traffic: `iperf3`

`iperf3` เป็นเครื่องมือสร้าง traffic ที่ยอดเยี่ยมสำหรับการทดสอบประสิทธิภาพเครือข่าย เราสามารถใช้มันเพื่อสร้าง traffic ในรูปแบบต่างๆ แล้วใช้ Wireshark ดักจับเพื่อวิเคราะห์ได้ ตัวอย่างเช่น หากเราต้องการทดสอบว่า bandwidth ของเครือข่ายเพียงพอสำหรับการใช้งาน video conference หรือไม่ เราก็สามารถใช้ `iperf3` เพื่อจำลอง traffic ที่ใกล้เคียงกับการใช้งานจริง แล้วดูว่า packet loss หรือ latency เป็นอย่างไรบ้าง

วิธีการใช้งาน `iperf3` ก็ไม่ยากเลยครับ บนเครื่อง server เราจะรันคำสั่ง:

iperf3 -s

และบนเครื่อง client เราจะรันคำสั่ง:

iperf3 -c <server_ip> -t 10

คำสั่งนี้จะให้ client ส่ง traffic ไปยัง server เป็นเวลา 10 วินาที จากนั้นเราก็ใช้ Wireshark ดักจับ traffic บน server หรือ client เพื่อวิเคราะห์ผลลัพธ์ได้เลยครับ

เครื่องมือวิเคราะห์ Network Flow: `Ntopng`

`Ntopng` เป็นเครื่องมือวิเคราะห์ network flow ที่แสดงข้อมูลในรูปแบบกราฟิกที่เข้าใจง่าย ทำให้เราสามารถเห็นภาพรวมของ traffic ในเครือข่ายได้อย่างรวดเร็ว `Ntopng` สามารถทำงานร่วมกับ Wireshark ได้ โดยเราสามารถ export packet capture จาก Wireshark แล้ว import เข้าไปใน `Ntopng` เพื่อวิเคราะห์ flow ได้ หรือจะใช้ `Ntopng` ดักจับ traffic แล้ว export ไปยัง Wireshark เพื่อวิเคราะห์ packet level ก็ได้เช่นกัน

`Ntopng` มีประโยชน์มากในการ identify ว่า application ไหนกำลังใช้ bandwidth มากที่สุด หรือมี host ไหนกำลังสื่อสารกับ host อื่นๆ อย่างผิดปกติบ้าง ข้อมูลเหล่านี้จะเป็นประโยชน์อย่างมากในการ troubleshooting ปัญหาเครือข่ายครับ

เครื่องมือตรวจสอบ Firewall: `Nmap`

`Nmap` เป็นเครื่องมือ scan port ที่รู้จักกันดี แต่จริงๆ แล้วมันสามารถใช้ตรวจสอบ firewall ได้ด้วยครับ เราสามารถใช้ `Nmap` เพื่อ probe ว่า port ไหนเปิดอยู่ หรือ firewall มี rule อะไรที่ blocking traffic บ้าง จากนั้นเราก็ใช้ Wireshark ดักจับ packet ที่ `Nmap` ส่งออกไป เพื่อดูว่า firewall ตอบสนองอย่างไร

ตัวอย่างเช่น ถ้าเราสงสัยว่า firewall กำลัง block traffic ที่ port 80 อยู่หรือไม่ เราก็สามารถใช้คำสั่ง:

nmap -p 80 <target_ip>

แล้วใช้ Wireshark ดักจับ packet เพื่อดูว่า firewall ส่ง TCP RST packet กลับมาหรือไม่ ถ้าใช่ แสดงว่า firewall กำลัง block port 80 อยู่จริงๆ ครับ

Security Onion: All-in-One Security Platform

Security Onion เป็น Linux distribution ที่ออกแบบมาเพื่อการ security monitoring โดยเฉพาะ มันมาพร้อมกับเครื่องมือมากมาย เช่น Snort, Suricata, Zeek (เดิมชื่อ Bro), Elasticsearch, Kibana, และแน่นอน Wireshark ด้วย Security Onion ช่วยให้เราสามารถดักจับ, วิเคราะห์, และ visualize traffic ในเครือข่ายได้อย่างครบวงจร นอกจากนี้ยังมี alert system ที่จะแจ้งเตือนเมื่อตรวจพบ activity ที่น่าสงสัย

การติดตั้ง Security Onion อาจจะซับซ้อนกว่าเครื่องมืออื่นๆ ที่กล่าวมา แต่ถ้าคุณต้องการ platform ที่ครบเครื่องสำหรับการ security monitoring มันคุ้มค่าที่จะลองศึกษาดูครับ

Case Study: ประสบการณ์จริงในการใช้ Wireshark แก้ปัญหา Network

ผมเคยเจอปัญหา network slowdown ในบริษัทแห่งหนึ่งเมื่อประมาณปี 2020 ตอนนั้นผู้ใช้งานบ่นกันอุบว่า internet ช้ามาก ทำงานอะไรก็ติดขัดไปหมด ทีม IT พยายามหาสาเหตุอยู่หลายวันก็ยังไม่เจอ จนกระทั่งผมตัดสินใจใช้ Wireshark ดักจับ traffic บน gateway ของ network

หลังจากดักจับ traffic ไปได้ประมาณ 15 นาที ผมก็เริ่มวิเคราะห์ packet ที่ได้ สิ่งแรกที่ผมทำคือ filter หา traffic ที่มีขนาดใหญ่ผิดปกติ ปรากฏว่าผมเจอ traffic จำนวนมากที่มาจากเครื่องคอมพิวเตอร์เครื่องหนึ่งใน network traffic เหล่านั้นเป็น traffic ที่ส่งไปยัง cloud storage service แห่งหนึ่ง

พอตรวจสอบเพิ่มเติมก็พบว่า พนักงานคนหนึ่งกำลัง sync ไฟล์ขนาดใหญ่ (ประมาณ 50GB) ขึ้นไปบน cloud โดยที่ไม่รู้ว่ามันกำลังทำให้ network slowdown ทั้งบริษัท ผมเลยเข้าไปคุยกับพนักงานคนนั้น และขอให้เขาหยุด sync ไฟล์ชั่วคราว หลังจากนั้น network ก็กลับมาใช้งานได้ปกติทันที

จาก case study นี้ ผมได้เรียนรู้ว่า Wireshark เป็นเครื่องมือที่ทรงพลังมากในการ identify สาเหตุของปัญหา network slowdown บางครั้งปัญหาที่ดูเหมือนซับซ้อน อาจจะเกิดจากสาเหตุที่ simple มากๆ ก็ได้ สิ่งสำคัญคือเราต้องมีเครื่องมือที่เหมาะสม และรู้วิธีใช้มันให้เป็นประโยชน์

ตัวเลขที่น่าสนใจจาก case นี้คือ:

จะเห็นได้ว่า Wireshark ช่วยลดเวลาในการ troubleshooting ไปได้อย่างมากเลยทีเดียวครับ

FAQ: คำถามที่พบบ่อยเกี่ยวกับการใช้ Wireshark

Wireshark ดักจับ traffic เฉพาะบนเครื่องตัวเองได้หรือไม่?

Wireshark สามารถดักจับ traffic ได้หลายรูปแบบครับ โดย default มันจะดักจับ traffic ที่ผ่าน network interface ของเครื่องที่เราติดตั้ง Wireshark อยู่ ซึ่งหมายความว่ามันจะดักจับ traffic ที่ส่งออกจากเครื่องเรา, traffic ที่ส่งเข้ามายังเครื่องเรา, และ traffic ที่ส่งผ่านเครื่องเรา (ถ้าเครื่องเราทำหน้าที่เป็น router หรือ bridge) แต่ถ้าเราต้องการดักจับ traffic บน network segment อื่น เราจะต้องใช้เทคนิคที่เรียกว่า "port mirroring" หรือ "network tap" ครับ

Wireshark สามารถดักจับ traffic ที่เข้ารหัส (HTTPS) ได้หรือไม่?

โดย default Wireshark ไม่สามารถอ่านข้อมูลที่เข้ารหัสด้วย HTTPS ได้ครับ เพราะข้อมูลจะถูกเข้ารหัสตั้งแต่ต้นทาง แต่ถ้าเรามี private key ของ server ที่ใช้ในการเข้ารหัส เราสามารถ import private key นั้นเข้าไปใน Wireshark เพื่อ decrypt traffic ได้ อย่างไรก็ตาม การ decrypt traffic อาจจะผิดกฎหมายในบางประเทศ ดังนั้นควรตรวจสอบกฎหมายให้ดีก่อนนะครับ นอกจากนี้ Wireshark ยังสามารถ decrypt traffic ที่ใช้ TLS protocol version เก่าๆ ได้ (เช่น SSLv3, TLSv1.0) ซึ่งปัจจุบันไม่แนะนำให้ใช้งานแล้ว

Wireshark กิน resource เครื่องมากหรือไม่?

Wireshark สามารถกิน resource เครื่องได้มาก ถ้าเราดักจับ traffic เป็นเวลานาน หรือดักจับ traffic ที่มีปริมาณมาก ดังนั้นควรระมัดระวังในการใช้งาน Wireshark บนเครื่อง production ครับ ถ้าเป็นไปได้ ควรดักจับ traffic บนเครื่อง dedicated ที่มี resource เพียงพอ แล้วค่อยนำ packet capture มาวิเคราะห์บนเครื่องอื่น นอกจากนี้เราสามารถใช้ filter เพื่อจำกัดปริมาณ traffic ที่ Wireshark ดักจับได้ ซึ่งจะช่วยลด resource consumption ได้อย่างมาก

Wireshark สามารถใช้หา malicious traffic ได้หรือไม่?

แน่นอนครับ Wireshark เป็นเครื่องมือที่ยอดเยี่ยมในการหา malicious traffic เราสามารถใช้ Wireshark เพื่อ identify traffic ที่มีลักษณะผิดปกติ เช่น traffic ที่ส่งไปยัง port ที่ไม่ได้ใช้งาน, traffic ที่มี packet size ใหญ่ผิดปกติ, traffic ที่มาจาก IP address ที่น่าสงสัย, หรือ traffic ที่มีการใช้ protocol ที่ไม่ปลอดภัย นอกจากนี้ Wireshark ยังสามารถ integrate กับเครื่องมือ security อื่นๆ เพื่อช่วยในการ detect malware และ intrusion ได้อีกด้วย

Wireshark สามารถใช้แก้ปัญหา network latency ได้หรือไม่?

Wireshark สามารถช่วยในการ diagnose ปัญหา network latency ได้ครับ โดยเราสามารถใช้ Wireshark เพื่อวัด round-trip time (RTT) ของ packet และ identify ว่า packet loss หรือ congestion เกิดขึ้นที่ไหน นอกจากนี้ Wireshark ยังสามารถแสดงกราฟของ TCP stream graph ซึ่งจะช่วยให้เราเห็นภาพรวมของ connection และ identify ว่า packet delay เกิดขึ้นในช่วงไหนของ connection การวิเคราะห์ข้อมูลเหล่านี้จะช่วยให้เรา pinpoint สาเหตุของ latency และหาทางแก้ไขได้อย่างตรงจุด

Wireshark สามารถใช้ monitor bandwidth usage ได้หรือไม่?

Wireshark ไม่ได้ออกแบบมาเพื่อ monitor bandwidth usage โดยตรงครับ แต่เราสามารถใช้ Wireshark ร่วมกับเครื่องมืออื่นๆ เพื่อ monitor bandwidth usage ได้ ตัวอย่างเช่น เราสามารถใช้ Wireshark ดักจับ traffic แล้ว export packet capture ไปยัง `Ntopng` เพื่อวิเคราะห์ bandwidth usage หรือเราสามารถใช้ command-line tool เช่น `tshark` เพื่อ extract ข้อมูล bandwidth usage จาก packet capture แล้วนำไป visualize ด้วยเครื่องมืออื่นๆ เช่น Grafana การทำแบบนี้จะช่วยให้เราเห็นภาพรวมของ bandwidth usage และ identify ว่า application ไหนกำลังใช้ bandwidth มากที่สุด

สรุป

Wireshark เป็นเครื่องมือที่ขาดไม่ได้สำหรับ network engineer และ security professional ทุกคน มันเป็นเครื่องมือที่ทรงพลัง, ยืดหยุ่น, และฟรี ทำให้เราสามารถวิเคราะห์ packet และแก้ไขปัญหา network ได้อย่างมีประสิทธิภาพ อย่างไรก็ตาม การใช้ Wireshark ให้ได้ผลลัพธ์ที่ดีนั้นต้องอาศัยความรู้และความเข้าใจใน protocol และ network concept ต่างๆ อย่างลึกซึ้ง

สิ่งที่สำคัญที่สุดในการใช้ Wireshark คือการฝึกฝนและการเรียนรู้อย่างต่อเนื่อง ลองเริ่มจากการดักจับ traffic ใน network ของคุณเอง แล้วค่อยๆ เรียนรู้ protocol ต่างๆ ที่คุณเจอ ลองตั้งคำถามว่า "packet นี้คืออะไร?", "มันกำลังทำอะไร?", "มันมีอะไรผิดปกติหรือไม่?" แล้วพยายามหาคำตอบจาก packet capture ที่คุณมี

อย่ากลัวที่จะทดลองและผิดพลาด สมัยก่อนผมก็เคยพลาดเยอะแยะครับ บางครั้งผมก็ดักจับ traffic ผิด interface, บางครั้งผมก็ใช้ filter ผิด, บางครั้งผมก็ตีความ packet ผิด แต่ทุกครั้งที่ผมพลาด ผมก็ได้เรียนรู้สิ่งใหม่ๆ และกลายเป็น network engineer ที่เก่งขึ้น

สุดท้ายนี้ ผมหวังว่าบทความนี้จะเป็นประโยชน์สำหรับทุกคนที่สนใจในการใช้ Wireshark นะครับ ขอให้สนุกกับการวิเคราะห์ packet และแก้ไขปัญหา network ครับ! ถ้ามีคำถามหรือข้อสงสัยเพิ่มเติม สามารถสอบถามได้เลยนะครับ ผมยินดีที่จะช่วยเหลือเสมอ

Tips จากประสบการณ์ 20 ปีในการใช้ Wireshark ดักจับและวิเคราะห์ Network

Tip 1: เข้าใจ Layer ของ OSI Model ก่อนเริ่มจับ Packet

หลายคนอาจจะมองข้ามเรื่องนี้ไป แต่จากประสบการณ์ของผมที่คลุกคลีกับ Network มา 20 ปี บอกได้เลยว่าการเข้าใจ OSI Model เนี่ยสำคัญมากครับ! มันคือพื้นฐานที่จะช่วยให้คุณวิเคราะห์ packet ได้อย่างมีประสิทธิภาพมากขึ้น ลองนึกภาพว่าคุณกำลังแกะกล่องพัสดุ ถ้าคุณไม่รู้ว่าอะไรอยู่ข้างในบ้าง คุณก็คงเปิดแบบมั่วๆ ไปเรื่อย แต่ถ้าคุณรู้ว่ามีอะไรอยู่บ้าง คุณก็จะเปิดอย่างระมัดระวังและตรงจุดมากขึ้น

OSI Model มี 7 Layer ตั้งแต่ Physical Layer ที่เป็นเรื่องของสายสัญญาณ ไปจนถึง Application Layer ที่เป็นโปรแกรมที่เราใช้กันทุกวัน เช่น Web Browser หรือ Email Client แต่ละ Layer มีหน้าที่และความรับผิดชอบที่แตกต่างกัน การเข้าใจว่า packet ที่เราจับได้นั้นเกี่ยวข้องกับ Layer ไหน จะช่วยให้เราโฟกัสไปที่ข้อมูลที่สำคัญและตัดสิ่งที่ไม่เกี่ยวข้องออกไปได้เยอะมากครับ

ยกตัวอย่างเช่น ถ้าคุณกำลังวิเคราะห์ปัญหาการเชื่อมต่อ HTTP คุณก็ควรมุ่งเน้นไปที่ Layer 7 (Application Layer) ซึ่งเป็นที่อยู่ของ HTTP Protocol แต่ถ้าคุณกำลังเจอปัญหาเรื่อง Network Cable หลวม คุณก็ต้องไปดูที่ Layer 1 (Physical Layer) แทน การรู้ว่าต้องโฟกัสตรงไหน จะช่วยประหยัดเวลาและทำให้การวิเคราะห์แม่นยำขึ้นเยอะเลยครับ

Tip 2: ใช้ Filter ให้เป็นประโยชน์สูงสุด

Wireshark มี Filter ที่ทรงพลังมาก ซึ่งจะช่วยให้คุณกรอง packet ที่ไม่ต้องการออกไป และโฟกัสเฉพาะ packet ที่เกี่ยวข้องกับปัญหาที่คุณกำลังแก้ไขอยู่ ลองคิดดูว่าถ้าคุณต้องดู packet นับล้านๆ โดยไม่มี Filter คุณคงตาลายและเสียเวลาไปเยอะมาก

Filter ใน Wireshark มี 2 แบบหลักๆ คือ Capture Filter และ Display Filter Capture Filter จะใช้ตอนที่เราเริ่มจับ packet เพื่อกรองตั้งแต่แรกเลย ซึ่งจะช่วยลดปริมาณข้อมูลที่ Wireshark ต้องประมวลผล Display Filter จะใช้หลังจากที่เราจับ packet มาแล้ว เพื่อกรอง packet ที่เราต้องการดู

ตัวอย่างการใช้ Filter ง่ายๆ เช่น ถ้าคุณต้องการดูเฉพาะ HTTP Traffic คุณสามารถใช้ Display Filter http ได้เลย หรือถ้าคุณต้องการดูเฉพาะ packet ที่มาจาก IP Address 192.168.1.100 คุณสามารถใช้ Filter ip.src == 192.168.1.100 ได้ หรือถ้าคุณอยากจะดูเฉพาะ packet ที่มี port 80 เป็น destination port คุณสามารถใช้ tcp.dstport == 80 ได้เหมือนกัน ลองเล่นกับ Filter ต่างๆ ดูครับ แล้วคุณจะพบว่ามันมีประโยชน์มากจริงๆ

ผมเคยเจอเคสที่ Network ช้ามาก ตอนแรกคิดว่าเป็นที่ Server แต่พอใช้ Wireshark จับ packet แล้ว Filter ดู ปรากฏว่ามี Broadcast Traffic เยอะมาก ทำให้ Network Congestion พอแก้ปัญหา Broadcast Traffic ได้ Network ก็กลับมาเร็วเหมือนเดิมเลยครับ

Tip 3: รู้จัก Protocol ที่ใช้ใน Network ของคุณ

Network แต่ละ Network มี Protocol ที่ใช้แตกต่างกันไป การรู้จัก Protocol เหล่านั้น จะช่วยให้คุณเข้าใจว่า packet ที่คุณจับได้นั้นมีความหมายว่าอย่างไร ยกตัวอย่างเช่น ถ้าคุณกำลังวิเคราะห์ Network ที่ใช้ VoIP (Voice over IP) คุณก็ควรรู้จัก SIP (Session Initiation Protocol) และ RTP (Real-time Transport Protocol)

SIP เป็น Protocol ที่ใช้ในการสร้างและจัดการ Session ของ VoIP ส่วน RTP เป็น Protocol ที่ใช้ในการส่งข้อมูลเสียงจริง การเข้าใจว่า SIP และ RTP ทำงานอย่างไร จะช่วยให้คุณวิเคราะห์ปัญหาเกี่ยวกับ VoIP ได้ง่ายขึ้น เช่น ถ้ามีปัญหาเรื่องเสียงขาดๆ หายๆ คุณอาจจะต้องไปดูที่ RTP Packet ว่ามี Packet Loss หรือไม่

นอกจากนี้ ยังมี Protocol อื่นๆ ที่คุณควรรู้จัก เช่น DNS (Domain Name System), DHCP (Dynamic Host Configuration Protocol), TCP (Transmission Control Protocol), UDP (User Datagram Protocol) แต่ละ Protocol มีหน้าที่และความสำคัญที่แตกต่างกัน การศึกษา Protocol เหล่านี้ จะช่วยให้คุณเป็น Network Analyst ที่เก่งกาจได้ครับ

Tip 4: ใช้ Endpoint และ Conversation เพื่อดูภาพรวม

Wireshark มีฟีเจอร์ที่เรียกว่า Endpoint และ Conversation ซึ่งจะช่วยให้คุณเห็นภาพรวมของ Network Traffic ได้ง่ายขึ้น Endpoint คือจุดปลายทางของ Communication เช่น IP Address หรือ MAC Address ส่วน Conversation คือการสนทนาระหว่าง 2 Endpoint

การใช้ Endpoint จะช่วยให้คุณเห็นว่า IP Address หรือ MAC Address ไหนที่มี Traffic เยอะที่สุด ซึ่งอาจจะเป็นสัญญาณว่ามีปัญหาเกิดขึ้น เช่น มีเครื่องติด Malware ที่กำลังส่ง Traffic ออกไปเยอะๆ หรือมี Server ที่กำลังโดนโจมตี การใช้ Conversation จะช่วยให้คุณเห็นว่า 2 Endpoint คุยอะไรกันบ้าง ซึ่งอาจจะเป็นประโยชน์ในการ Debug Application หรือวิเคราะห์ปัญหา Network

ยกตัวอย่างเช่น ถ้าคุณสงสัยว่ามีเครื่องใน Network กำลัง Download ไฟล์ขนาดใหญ่ คุณสามารถใช้ Endpoint Filter เพื่อดูว่า IP Address ไหนที่มี Traffic เยอะที่สุด แล้วใช้ Conversation Filter เพื่อดูว่า IP Address นั้นกำลังคุยกับ Server อะไรอยู่ คุณก็จะรู้ได้ทันทีว่าเครื่องไหนกำลัง Download อะไรอยู่ครับ

Tip 5: เรียนรู้การใช้ Regular Expression ใน Filter

Regular Expression เป็นเครื่องมือที่ทรงพลังมากในการค้นหา Pattern ใน Text ซึ่งสามารถนำมาใช้กับ Wireshark Filter ได้อย่างมีประสิทธิภาพ ถ้าคุณต้องการค้นหา Packet ที่มี String ที่ซับซ้อน เช่น User Agent ที่มี Version Number ที่แตกต่างกัน คุณสามารถใช้ Regular Expression Filter ได้

ตัวอย่างเช่น ถ้าคุณต้องการค้นหา HTTP Request ที่มี User Agent ที่ขึ้นต้นด้วย "Mozilla" ตามด้วยตัวเลข 2 หลัก คุณสามารถใช้ Filter http.user_agent matches "^Mozilla\d{2}" ได้ Regular Expression Filter จะช่วยให้คุณค้นหา Packet ที่ต้องการได้อย่างแม่นยำและรวดเร็ว

การเรียนรู้ Regular Expression อาจจะดูยากในช่วงแรก แต่เมื่อคุณเข้าใจหลักการแล้ว คุณจะพบว่ามันมีประโยชน์มากในการวิเคราะห์ Network Traffic ที่ซับซ้อน ผมแนะนำให้ลองศึกษา Regular Expression จาก Website หรือ Course Online ต่างๆ แล้วลองนำมาประยุกต์ใช้กับ Wireshark ดูครับ

Tip 6: จับ Packet ในตำแหน่งที่เหมาะสม

ตำแหน่งที่คุณจับ Packet มีผลต่อข้อมูลที่คุณจะได้รับ ถ้าคุณจับ Packet ที่ Client คุณอาจจะไม่เห็น Traffic ที่ Server ส่งกลับมา หรือถ้าคุณจับ Packet ที่ Switch คุณอาจจะเห็น Traffic ที่ไม่เกี่ยวข้องกับปัญหาที่คุณกำลังแก้ไขอยู่

ตำแหน่งที่ดีที่สุดในการจับ Packet คือ Mirror Port หรือ TAP (Test Access Point) Mirror Port จะ Copy Traffic จาก Port หนึ่งไปยัง Port อีก Port หนึ่ง ทำให้คุณสามารถจับ Packet ได้โดยไม่กระทบกับการทำงานของ Network TAP จะ Split Traffic ออกเป็น 2 เส้น ทำให้คุณสามารถจับ Packet ได้โดยไม่มีผลกระทบต่อ Performance ของ Network

ถ้าคุณไม่มี Mirror Port หรือ TAP คุณสามารถใช้ Span Port บน Switch ได้ แต่ Span Port อาจจะทำให้ Performance ของ Switch ลดลงเล็กน้อย ดังนั้นควรใช้ Span Port เฉพาะเวลาที่จำเป็นเท่านั้น นอกจากนี้ การจับ packet บน Wireless Network อาจจะทำได้ยากกว่า เพราะ Packet อาจจะถูก Encrypt หรือกระจายไปในหลาย Channel ดังนั้นควรใช้ Wireless Packet Analyzer ที่ออกแบบมาเฉพาะสำหรับการจับ Packet บน Wireless Network

Tip 7: ใช้ Color Rule เพื่อให้เห็นภาพรวมได้ง่ายขึ้น

Wireshark มีฟีเจอร์ที่เรียกว่า Color Rule ซึ่งจะช่วยให้คุณกำหนดสีให้กับ Packet ที่มีลักษณะเฉพาะได้ การใช้ Color Rule จะช่วยให้คุณเห็นภาพรวมของ Network Traffic ได้ง่ายขึ้น และสามารถระบุ Packet ที่น่าสงสัยได้อย่างรวดเร็ว

ตัวอย่างเช่น ถ้าคุณต้องการให้ HTTP Traffic เป็นสีฟ้า คุณสามารถสร้าง Color Rule ที่มี Filter http และกำหนดสีเป็นสีฟ้าได้ หรือถ้าคุณต้องการให้ TCP Retransmission เป็นสีแดง คุณสามารถสร้าง Color Rule ที่มี Filter tcp.analysis.retransmission และกำหนดสีเป็นสีแดงได้

การใช้ Color Rule เป็นเรื่องของความชอบส่วนบุคคล คุณสามารถกำหนด Color Rule ที่เหมาะสมกับ Workflow ของคุณได้เลยครับ ลองเล่นกับ Color Rule ต่างๆ ดู แล้วคุณจะพบว่ามันมีประโยชน์มากในการวิเคราะห์ Network Traffic

Tip 8: อย่าลืม Update Wireshark ให้เป็น Version ล่าสุดเสมอ

Wireshark มีการ Update อยู่เสมอ เพื่อแก้ไข Bug เพิ่ม Feature ใหม่ และรองรับ Protocol ใหม่ๆ การใช้ Wireshark Version เก่า อาจจะทำให้คุณพลาด Feature ที่มีประโยชน์ หรือเจอปัญหา Bug ที่ได้รับการแก้ไขไปแล้ว

นอกจากนี้ Wireshark Version เก่า อาจจะไม่รองรับ Protocol ใหม่ๆ ที่ใช้ใน Network ของคุณ ทำให้คุณไม่สามารถวิเคราะห์ Packet ได้อย่างถูกต้อง ดังนั้นควร Update Wireshark ให้เป็น Version ล่าสุดเสมอ เพื่อให้คุณมีเครื่องมือที่ดีที่สุดในการวิเคราะห์ Network Traffic

การ Update Wireshark ทำได้ง่ายมาก คุณสามารถ Download Version ล่าสุดจาก Website ของ Wireshark แล้วติดตั้งได้เลย หรือถ้าคุณใช้ Package Manager เช่น apt หรือ yum คุณสามารถใช้ Package Manager ในการ Update Wireshark ได้เช่นกัน

FAQ เกี่ยวกับ Wireshark

H3: Wireshark กิน Resource เครื่องเยอะไหม? มีวิธีลดการใช้ Resource หรือเปล่า?

Wireshark เป็นโปรแกรมที่ใช้ Resource พอสมควรครับ โดยเฉพาะเวลาที่จับ Packet เยอะๆ หรือเปิดไฟล์ Capture ขนาดใหญ่ แต่ก็มีวิธีลดการใช้ Resource ได้ครับ วิธีแรกคือใช้ Capture Filter ตั้งแต่เริ่มจับ Packet เลยครับ เพื่อกรอง Packet ที่ไม่ต้องการออกไปตั้งแต่แรก วิธีที่สองคือปิด Graph หรือ Statistics ที่ไม่จำเป็น เพราะพวกนี้จะใช้ CPU ในการคำนวณอยู่ตลอดเวลา

อีกวิธีคือเพิ่ม Memory ให้เครื่อง หรือใช้เครื่องที่มี CPU แรงๆ หน่อย ถ้าคุณต้องจับ Packet เยอะๆ เป็นประจำ การใช้ SSD แทน HDD ก็ช่วยให้ Wireshark ทำงานได้เร็วขึ้นด้วยครับ นอกจากนี้ การ Export เฉพาะ Packet ที่จำเป็นออกมาเป็นไฟล์ขนาดเล็ก แล้วค่อยมาวิเคราะห์ ก็เป็นอีกวิธีที่ช่วยลดการใช้ Resource ได้ครับ

ผมเคยเจอเคสที่ Wireshark ค้าง เพราะพยายามเปิดไฟล์ Capture ขนาด 10 GB พอเปลี่ยนไปใช้เครื่องที่มี RAM เยอะขึ้น ก็เปิดได้สบายเลยครับ ดังนั้นการเตรียม Hardware ให้พร้อม ก็เป็นสิ่งสำคัญในการใช้ Wireshark อย่างมีประสิทธิภาพ

H3: Wireshark ดักจับ Password ได้จริงหรือ? ต้องทำอย่างไรถึงจะป้องกันได้?

Wireshark สามารถดักจับ Password ได้ครับ ถ้า Password นั้นถูกส่งแบบ Plain Text เช่น ใน Protocol HTTP ที่ไม่ได้ใช้ HTTPS แต่ถ้า Password ถูก Encrypt ด้วย Protocol ที่ปลอดภัย เช่น HTTPS, SSH, หรือ VPN Wireshark ก็จะไม่สามารถดักจับ Password ได้

วิธีป้องกันการถูกดักจับ Password คือใช้ Protocol ที่ปลอดภัยเสมอ เช่น HTTPS แทน HTTP, SSH แทน Telnet, และ VPN ในการเชื่อมต่อ Network สาธารณะ นอกจากนี้ การใช้ Password Manager ก็ช่วยให้คุณสร้าง Password ที่แข็งแรงและไม่ซ้ำกันได้ การเปิดใช้งาน Two-Factor Authentication (2FA) ก็เป็นอีกวิธีที่ช่วยเพิ่มความปลอดภัยให้กับ Account ของคุณ

สมัยก่อนผมเคยเจอคนในบริษัทใช้ Telnet ในการ Login เข้า Server พอผมใช้ Wireshark ดักจับ Packet ก็เห็น Password เป็น Plain Text เลยครับ หลังจากนั้นผมก็แนะนำให้เปลี่ยนไปใช้ SSH แทน เพื่อความปลอดภัย

H3: Wireshark ใช้กับ Wireless Network ได้ไหม? มีข้อจำกัดอะไรบ้าง?

Wireshark สามารถใช้กับ Wireless Network ได้ครับ แต่มีข้อจำกัดบางอย่าง ข้อแรกคือคุณต้องใช้ Wireless Adapter ที่รองรับ Monitor Mode Monitor Mode จะทำให้ Wireless Adapter สามารถดักจับ Packet ทั้งหมดที่ส่งผ่าน Wireless Network ได้ ไม่ว่า Packet นั้นจะถูกส่งถึงเครื่องของคุณหรือไม่

ข้อจำกัดอีกอย่างคือ Packet ที่ถูก Encrypt ด้วย WPA หรือ WPA2 จะไม่สามารถอ่านได้ ถ้าคุณต้องการ Decrypt Packet คุณต้องมี Pre-Shared Key (PSK) หรือ Password ของ Wireless Network นอกจากนี้ การจับ Packet บน Wireless Network อาจจะทำได้ยากกว่า เพราะ Packet อาจจะถูกกระจายไปในหลาย Channel ดังนั้นควรใช้ Wireless Packet Analyzer ที่ออกแบบมาเฉพาะสำหรับการจับ Packet บน Wireless Network

ผมเคยลองใช้ Wireshark จับ Packet บน Wireless Network ที่บ้าน ปรากฏว่าเห็น Packet เยอะมาก แต่ส่วนใหญ่เป็น Packet ที่ Encrypt ทำให้ไม่สามารถอ่านข้อมูลได้ หลังจากนั้นผมก็เปลี่ยนไปใช้ Wireless Packet Analyzer ที่รองรับ Monitor Mode และสามารถ Decrypt Packet ได้ ก็สามารถวิเคราะห์ Wireless Network ได้ง่ายขึ้น

H3: มี Course หรือ Resources อะไรแนะนำสำหรับคนที่อยากเรียนรู้ Wireshark เพิ่มเติม?

มี Course และ Resources มากมายที่ช่วยให้คุณเรียนรู้ Wireshark เพิ่มเติมได้ครับ เริ่มจาก Website ของ Wireshark เอง ซึ่งมี Documentation และ Tutorial ที่ละเอียดมาก นอกจากนี้ยังมี Course Online บน Platform ต่างๆ เช่น Udemy, Coursera, และ Cybrary ที่สอนการใช้งาน Wireshark ตั้งแต่พื้นฐานไปจนถึงขั้นสูง

นอกจากนี้ยังมีหนังสือและ Blog ที่เขียนเกี่ยวกับ Wireshark อีกมากมาย เช่น "Wireshark 101: Essential Skills for Network Analysis" และ "Practical Packet Analysis: Using Wireshark to Solve Real-World Network Problems" การอ่าน Blog และ Forum ที่เกี่ยวข้องกับ Wireshark ก็ช่วยให้คุณเรียนรู้ Tips และ Tricks ใหม่ๆ ได้

ผมแนะนำให้ลอง Download Wireshark มาติดตั้ง แล้วลองจับ Packet บน Network ของคุณเอง แล้วลองวิเคราะห์ Packet ที่คุณจับได้ การลงมือปฏิบัติจริง จะช่วยให้คุณเข้าใจการทำงานของ Wireshark ได้อย่างรวดเร็ว และสามารถนำความรู้ที่ได้ไปประยุกต์ใช้กับปัญหาจริงได้

ตารางสรุป Filter ที่ใช้บ่อยใน Wireshark

Filter คำอธิบาย ตัวอย่าง
ip.addr == 192.168.1.100 กรอง Packet ที่มี IP Address เป็น 192.168.1.100 ไม่ว่าจะเป็น Source หรือ Destination แสดง Packet ที่เกี่ยวข้องกับเครื่อง 192.168.1.100
ip.src == 192.168.1.100 กรอง Packet ที่มี IP Address ต้นทางเป็น 192.168.1.100 แสดง Packet ที่ส่งออกจากเครื่อง 192.168.1.100
ip.dst == 192.168.1.100 กรอง Packet ที่มี IP Address ปลายทางเป็น 192.168.1.100 แสดง Packet ที่ส่งไปยังเครื่อง 192.168.1.100
tcp.port == 80 กรอง Packet ที่มี TCP Port เป็น 80 ไม่ว่าจะเป็น Source หรือ Destination แสดง HTTP Traffic
tcp.srcport == 80 กรอง Packet ที่มี TCP Port ต้นทางเป็น 80 แสดง Packet ที่ออกจาก Server ที่ใช้ Port 80
tcp.dstport == 80 กรอง Packet ที่มี TCP Port ปลายทางเป็น 80 แสดง Packet ที่ส่งไปยัง Server ที่ใช้ Port 80
http กรอง HTTP Traffic แสดง HTTP Request และ Response
http.request.method == "GET" กรอง HTTP Request ที่ใช้ Method GET แสดงเฉพาะ HTTP GET Request
http.response.code == 200 กรอง HTTP Response ที่มี Status Code 200 (OK) แสดงเฉพาะ HTTP Response ที่สำเร็จ
dns กรอง DNS Traffic แสดง DNS Query และ Response

📰 บทความล่าสุดจาก SiamCafe

🗺️ ดูบทความทั้งหมด — Sitemap SiamCafe Blog