วิธีใช้ Wireshark วิเคราะห์ปัญหา Network

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

Wireshark คืออะไร? ทำไมถึงสำคัญในการวิเคราะห์ปัญหา Network?

Wireshark คือ Network Protocol Analyzer หรือที่เรียกกันติดปากว่า “Packet Sniffer” เป็นเครื่องมือ Open-Source ที่ทรงพลัง ใช้ในการดักจับและวิเคราะห์ Traffic ที่วิ่งผ่าน Network ของคุณ ลองจินตนาการว่า Wireshark เป็นเหมือนกล้องวงจรปิดที่คอยบันทึกทุกการสื่อสารบน Network ไม่ว่าจะเป็นข้อมูลที่ส่งผ่านระหว่างคอมพิวเตอร์, เซิร์ฟเวอร์, Router หรืออุปกรณ์ IoT ต่างๆ

ความสำคัญของ Wireshark นั้นอยู่ที่ความสามารถในการให้ข้อมูลเชิงลึกเกี่ยวกับ Network Traffic ที่ปกติเราไม่สามารถมองเห็นได้ด้วยตาเปล่า ทำให้เราสามารถ:

  • ระบุแหล่งที่มาของปัญหา: ไม่ว่าจะเป็น Bandwidth Congestion, Latency สูง, หรือ Packet Loss
  • วิเคราะห์ Protocol: ตรวจสอบการทำงานของโปรโตคอลต่างๆ เช่น TCP, UDP, HTTP, DNS ว่าเป็นไปตามมาตรฐานหรือไม่
  • ตรวจจับ Malware: สังเกตพฤติกรรมที่น่าสงสัย เช่น การสื่อสารกับ IP Address ที่เป็นอันตราย หรือการส่งข้อมูลปริมาณมากผิดปกติ
  • Debug Application: ตรวจสอบว่า Application ส่งและรับข้อมูลถูกต้องหรือไม่
  • เรียนรู้การทำงานของ Network: Wireshark เป็นเครื่องมือที่ยอดเยี่ยมในการทำความเข้าใจว่า Network Protocol ทำงานอย่างไรในทางปฏิบัติ

ประสบการณ์จริงจาก อ.บอม:

สมัยที่ผมทำ SiamCafe.net เมื่อปี 1997 ปัญหา Network ที่เจอประจำคือ User บ่นว่า “เน็ตช้า” แต่บอกไม่ได้ว่าช้าเพราะอะไร Wireshark นี่แหละคือพระเอกตัวจริง ช่วยให้ผมเห็นว่า Traffic ส่วนใหญ่มาจากไหน, Protocol อะไรกิน Bandwidth เยอะสุด ทำให้แก้ปัญหาได้ตรงจุด ไม่ต้องเดาสุ่ม

เตรียมความพร้อมก่อนเริ่ม: ดาวน์โหลดและติดตั้ง Wireshark

เริ่มต้นการเดินทางสู่การเป็น Network Detective ด้วยการดาวน์โหลด Wireshark ได้ฟรีจากเว็บไซต์อย่างเป็นทางการ: wireshark.org เลือก Package ที่เหมาะสมกับระบบปฏิบัติการของคุณ (Windows, macOS, Linux) และทำการติดตั้งตามขั้นตอนที่ปรากฏบนหน้าจอ

ข้อควรระวังสำหรับ Windows Users: ในระหว่างการติดตั้ง Wireshark จะเสนอให้ติดตั้ง WinPcap หรือ Npcap ซึ่งเป็น Network Packet Capture Library ที่จำเป็นสำหรับการดักจับ Traffic บน Windows แนะนำให้ติดตั้ง Npcap เนื่องจากเป็น Version ที่ใหม่กว่า และได้รับการปรับปรุงให้มีประสิทธิภาพและความปลอดภัยที่ดีกว่า

ประสบการณ์จริงจาก อ.บอม:

ตอนที่ผมพัฒนา SquidNT Proxy (Thaiware Award 2005) ผมใช้ Wireshark ควบคู่ไปด้วยตลอด เพื่อตรวจสอบว่า Proxy Server ทำงานถูกต้องตาม RFC หรือไม่ ช่วยให้ผม Debug ปัญหาการ Cache และ Forward Traffic ได้อย่างละเอียด

เริ่มต้นใช้งาน Wireshark: ดักจับ Packet แรกของคุณ

เมื่อติดตั้ง Wireshark เรียบร้อยแล้ว ก็ถึงเวลาเริ่มดักจับ Packet แรกกันเลย:

  1. เปิดโปรแกรม Wireshark ขึ้นมา คุณจะพบกับหน้าจอ Interface Selection
  2. เลือก Network Interface ที่คุณต้องการดักจับ Traffic (เช่น Ethernet, Wi-Fi)
  3. ดับเบิลคลิกที่ Interface นั้น หรือคลิกที่ปุ่ม “Start capturing packets” เพื่อเริ่มการดักจับ
  4. Wireshark จะเริ่มแสดง Packet ที่วิ่งผ่าน Interface นั้นแบบ Real-time

ตอนนี้คุณจะเห็นข้อมูลมากมายวิ่งผ่านหน้าจอ สิ่งที่เห็นคือ Packet แต่ละ Packet ที่ประกอบไปด้วยข้อมูล Header และ Payload Header จะมีข้อมูลเกี่ยวกับ Protocol, Source/Destination IP Address, Port Number ส่วน Payload คือข้อมูลจริงๆ ที่ถูกส่งผ่าน Network

ทำความเข้าใจ Interface ของ Wireshark

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

  • Packet List Pane: แสดงรายการ Packet ที่ถูกดักจับ แต่ละ Packet จะมีหมายเลข, Time Stamp, Source/Destination Address, Protocol และ Info
  • Packet Details Pane: แสดงรายละเอียดของ Packet ที่ถูกเลือกใน Packet List Pane ในรูปแบบของ Layer (Ethernet, IP, TCP/UDP, Application Layer)
  • Packet Bytes Pane: แสดงข้อมูลดิบของ Packet ในรูปแบบ Hexadecimal และ ASCII
  • Filter Toolbar: ใช้สำหรับ Filter Packet ที่ต้องการดู ทำให้การวิเคราะห์ง่ายขึ้น

Filter อย่างเซียน: เคล็ดลับการกรอง Packet

การ Filter Packet เป็นทักษะที่สำคัญมากในการใช้ Wireshark เพราะจะช่วยให้คุณโฟกัสไปที่ Traffic ที่คุณสนใจจริงๆ Wireshark มี Filter Syntax ที่หลากหลาย และสามารถนำมาประยุกต์ใช้ได้มากมาย

💡 บทความที่เกี่ยวข้อง: EA Semi-Auto

ตัวอย่าง Filter ที่ใช้บ่อย:

  • ip.addr == 192.168.1.100: แสดง Packet ที่มี IP Address 192.168.1.100 เป็น Source หรือ Destination
  • tcp.port == 80: แสดง Packet ที่ใช้ TCP Port 80 (HTTP)
  • http.request.method == "GET": แสดง HTTP GET Request
  • dns.flags.response == 1: แสดง DNS Response
  • icmp: แสดง ICMP Packet (Ping)

คุณสามารถ Combine Filter หลายๆ ตัวเข้าด้วยกันได้ โดยใช้ Operator เช่น and, or, not

ตัวอย่าง:

ip.addr == 192.168.1.100 and tcp.port == 80: แสดง Packet ที่มี IP Address 192.168.1.100 เป็น Source หรือ Destination และใช้ TCP Port 80

Command ตัวอย่าง TCPDump (สำหรับ Linux):

ถ้าคุณใช้ Linux คุณสามารถใช้ `tcpdump` ซึ่งเป็น command-line packet analyzer ที่คล้าย Wireshark ตัวอย่าง:

tcpdump -i eth0 -n -s 0 'tcp port 80 and host 192.168.1.100'

Command นี้จะดักจับ packet บน interface eth0 ที่ใช้ TCP port 80 และมี host 192.168.1.100 เกี่ยวข้อง

วิเคราะห์ Protocol: เจาะลึกการทำงานของ TCP, UDP, HTTP, DNS

Wireshark ไม่ได้เป็นแค่เครื่องมือดักจับ Packet แต่ยังเป็นเครื่องมือที่ช่วยให้คุณเข้าใจการทำงานของ Network Protocol ต่างๆ ได้อย่างลึกซึ้ง

TCP (Transmission Control Protocol):

TCP เป็น Connection-Oriented Protocol ที่มีการรับประกันความถูกต้องของข้อมูล และมีการควบคุม Flow Control และ Congestion Control Wireshark ช่วยให้คุณเห็น Sequence Number, Acknowledgment Number, Window Size และ Flag ต่างๆ ที่ใช้ในการควบคุมการสื่อสาร

UDP (User Datagram Protocol):

UDP เป็น Connectionless Protocol ที่ไม่มีการรับประกันความถูกต้องของข้อมูล แต่มีความเร็วที่สูงกว่า TCP Wireshark ช่วยให้คุณเห็น Source/Destination Port และ Length ของ Packet

HTTP (Hypertext Transfer Protocol):

HTTP เป็น Application Layer Protocol ที่ใช้ในการสื่อสารระหว่าง Web Browser และ Web Server Wireshark ช่วยให้คุณเห็น HTTP Request และ Response Header, Method (GET, POST), URL, Status Code และ Content Type

DNS (Domain Name System):

DNS เป็น Protocol ที่ใช้ในการแปลง Domain Name เป็น IP Address Wireshark ช่วยให้คุณเห็น DNS Query และ Response, Record Type (A, CNAME, MX) และ Time to Live (TTL)

ตารางเปรียบเทียบ Protocol สำคัญ

Protocol Type Connection Reliability Use Case
TCP Transport Connection-Oriented Guaranteed Delivery Web Browsing, Email, File Transfer
UDP Transport Connectionless No Guarantee Streaming, Online Gaming, DNS
HTTP Application Connection-Oriented (usually over TCP) Reliant on TCP Web Communication
DNS Application UDP or TCP Reliability via Retries Domain Name Resolution

แก้ไขปัญหา Network ด้วย Wireshark: กรณีศึกษา

กรณีศึกษาที่ 1: เว็บไซต์โหลดช้า

User รายงานว่าเว็บไซต์โหลดช้ามาก สิ่งแรกที่ต้องทำคือใช้ Wireshark ดักจับ Traffic ที่เกิดขึ้นขณะที่ User เข้าเว็บไซต์นั้น จากนั้น Filter Packet โดยใช้ http.host == [ชื่อเว็บไซต์] เพื่อดูเฉพาะ Traffic ที่เกี่ยวข้องกับเว็บไซต์นั้น

ตรวจสอบ Time Sequence Diagram (TCP Stream Graph) เพื่อดูว่ามี Latency สูงหรือไม่ หรือมี Packet Loss เกิดขึ้นหรือไม่ ถ้าพบว่ามี Latency สูง อาจเป็นเพราะ Server อยู่ไกล หรือ Network มีปัญหา ถ้าพบ Packet Loss อาจเป็นเพราะ Network Congestion หรืออุปกรณ์ Network มีปัญหา

อย่าลืมเช็ค Network Interface Teaming NIC Bonding ทำยังไง ด้วย เผื่อเป็นที่ Server Bandwidth ไม่พอ

กรณีศึกษาที่ 2: ระบบ Network ล่ม

ระบบ Network ล่มแบบไม่มีปี่มีขลุ่ย สิ่งแรกที่ต้องทำคือใช้ Wireshark ดักจับ Traffic บน Switch Core หรือ Router Gateway เพื่อดูว่ามี Traffic ที่ผิดปกติหรือไม่ Filter Packet โดยใช้ broadcast หรือ multicast เพื่อดูว่ามี Broadcast Storm หรือ Multicast Flood เกิดขึ้นหรือไม่

ถ้าพบ Broadcast Storm หรือ Multicast Flood อาจเป็นเพราะมีอุปกรณ์ Network ตัวใดตัวหนึ่งทำงานผิดปกติ หรือมี Loop เกิดขึ้นใน Network ตรวจสอบ Configuration ของ Switch และ Router เพื่อหา Loop หรือ Spanning Tree Protocol (STP) มีปัญหา

ลองพิจารณา Port Mirroring บน Switch สำหรับ Network Monitoring เพื่อวิเคราะห์ปัญหาได้ง่ายขึ้น

กรณีศึกษาที่ 3: ตรวจสอบความปลอดภัยของ Network

ต้องการตรวจสอบว่ามีใครพยายาม Hack ระบบ Network หรือไม่ ใช้ Wireshark ดักจับ Traffic และ Filter Packet โดยใช้ tcp.flags.syn == 1 and tcp.flags.ack == 0 เพื่อดู SYN Scan ซึ่งเป็นการ Scan Port ที่ใช้ในการหาช่องโหว่ของระบบ

ถ้าพบ SYN Scan จาก IP Address ที่ไม่คุ้นเคย อาจเป็นเพราะมี Hacker พยายาม Scan Port ของระบบ ป้องกันโดยการ Block IP Address นั้นบน Firewall หรือ IDS/IPS และตรวจสอบ 802.1X Network Authentication ตั้งค่ายังไง เพื่อเพิ่มความปลอดภัย

สรุป: Wireshark เครื่องมือสารพัดประโยชน์สำหรับ Network

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

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

📖 อ่านเพิ่มเติม: ชุมชน IT แห่งแรกของไทย

Fast deliveryDiscount and points
Equipment insuranceDiscount and points
Installment and creditDiscount and points
Earn bonuses, rewardsDiscount and points

@2022 จำหน่ายการ์ดแลนสำหรับ Server และเครื่องพิมพ์ใบเสร็จ

จำหน่ายการ์ดแลนสำหรับ Server และเครื่องพิมพ์ใบเสร็จ
Logo
iCafeForex.com - สอนเทรด Forex | SiamCafe.net
Shopping cart