Network
สมัยผมเปิดร้านเน็ต SiamCafe SiamCafe Blog เมื่อ 20 กว่าปีก่อน เครื่องมือพวกนี้สำคัญมากนะ ไว้เช็คว่าเน็ตเวิร์คมันเป็นอะไร ทำไมเกมถึงแลค ทำไมเว็บเข้าไม่ได้ ต้องใช้เป็นถึงจะแก้ปัญหาให้ลูกค้าได้ไว
เครื่องมือพวกนี้มันติดมากับ Windows อยู่แล้ว ไม่ต้องลงโปรแกรมอะไรเพิ่ม เปิด Command Prompt (CMD) หรือ Terminal ก็ใช้ได้เลย
Ping มันเหมือนเราตะโกนถามว่า "เฮ้! อยู่ไหม?" แล้วรอฟังว่ามีใครตอบกลับมาบ้าง ถ้ามีคนตอบกลับมาก็แสดงว่าเครื่องนั้นมันยังเปิดอยู่และคุยกับเราได้
ทำไมต้อง Ping? เอาไว้เช็คว่าเครื่องที่เราต้องการติดต่อนั้น "มีชีวิต" อยู่หรือเปล่า และใช้ดูความเร็วในการเชื่อมต่อได้ด้วย ถ้า Ping แล้วใช้เวลานาน แสดงว่าเน็ตช้า หรืออาจจะมีปัญหาอะไรสักอย่าง
วิธี Ping แบบ Step-by-step:
ping [ชื่อเว็บไซต์ หรือ IP address] แล้วกด Enter
ping google.com
ถ้า Ping ไม่สำเร็จ จะขึ้น "Request timed out" หรือ "Destination host unreachable" แสดงว่าเครื่องปลายทางอาจจะปิดอยู่ หรือมีปัญหาเรื่องเน็ตเวิร์ค
Tracert (Trace Route) นี่เจ๋งกว่า Ping อีกนะ มันเหมือนเราตามรอยเท้าว่าข้อมูลของเราวิ่งผ่าน Router ตัวไหนบ้างกว่าจะไปถึงปลายทาง
ทำไมต้อง Tracert? เอาไว้ดูว่าปัญหาเน็ตช้ามันเกิดจากตรงไหนกันแน่ อาจจะเป็น Router ตัวใดตัวหนึ่งที่อยู่ระหว่างทางก็ได้
วิธี Tracert แบบ Step-by-step:
tracert [ชื่อเว็บไซต์ หรือ IP address] แล้วกด Enter
tracert google.com
ถ้ามี Router ตัวไหนที่ใช้เวลานานผิดปกติ หรือขึ้น "* * * Request timed out" แสดงว่า Router ตัวนั้นอาจจะมีปัญหา
Netstat นี่เหมือนเราแอบฟังว่าเครื่องเรากำลังคุยกับใครอยู่บ้าง มันจะแสดงรายการ Connections ทั้งหมดที่เครื่องเราเปิดอยู่
ทำไมต้อง Netstat? เอาไว้ดูว่ามีโปรแกรมอะไรแอบเชื่อมต่อเน็ตอยู่เบื้องหลังหรือเปล่า หรือเอาไว้ดูว่าเครื่องเราโดน Hack หรือเปล่า (ต้องดูเป็นนะ) SiamCafe Blog มีบทความสอนเรื่อง Security ด้วยนะ
วิธี Netstat แบบ Step-by-step:
netstat -an แล้วกด Enter
netstat -an
ผลลัพธ์มันจะเยอะหน่อย ต้องค่อยๆ ดูว่ามี IP Address หรือ Port อะไรที่มันแปลกๆ หรือเปล่า ถ้าไม่แน่ใจก็ลองเอาไป Google ดู
| เครื่องมือ | หน้าที่หลัก | ประโยชน์ | คำสั่ง |
|---|---|---|---|
| Ping | ตรวจสอบว่าเครื่องปลายทาง "มีชีวิต" อยู่หรือไม่ | เช็คสถานะเครื่อง, วัดความเร็วในการเชื่อมต่อ | ping [ชื่อเว็บไซต์ หรือ IP address] |
| Tracert | ตามรอยเส้นทางการเชื่อมต่อ | หาจุดที่ทำให้เน็ตช้า | tracert [ชื่อเว็บไซต์ หรือ IP address] |
| Netstat | แสดงรายการ Connections ทั้งหมด | ตรวจสอบการเชื่อมต่อที่ผิดปกติ | netstat -an |
Ping มันมี Option เสริมให้เล่นอีกเยอะนะ เอาไว้ปรับแต่งการทำงานให้ละเอียดขึ้น
ping -t [ชื่อเว็บไซต์ หรือ IP address]: Ping ไปเรื่อยๆ ไม่หยุด จนกว่าเราจะกด Ctrl+Cping -n [จำนวนครั้ง] [ชื่อเว็บไซต์ หรือ IP address]: Ping ตามจำนวนครั้งที่เรากำหนดping -l [ขนาด packet] [ชื่อเว็บไซต์ หรือ IP address]: กำหนดขนาด Packet ที่ส่งไป (หน่วยเป็น Byte)Tracert ก็มี Option เหมือนกัน แต่ไม่เยอะเท่า Ping
tracert -d [ชื่อเว็บไซต์ หรือ IP address]: ไม่ Resolve ชื่อ Host (แสดง IP Address อย่างเดียว) จะเร็วกว่าtracert -h [จำนวน hop] [ชื่อเว็บไซต์ หรือ IP address]: กำหนดจำนวน Hop สูงสุดที่จะ TraceNetstat นี่ Options เยอะมากกกกกก เอาเฉพาะที่ใช้บ่อยๆ ละกัน
netstat -a: แสดง Connections ทั้งหมด (ทั้ง Listening และ Established)netstat -n: แสดง Address และ Port เป็นตัวเลข (ไม่ Resolve ชื่อ)netstat -o: แสดง PID (Process ID) ของ Process ที่ใช้ Connection นั้นๆnetstat -b: แสดงชื่อ Executable ของ Process ที่ใช้ Connection นั้นๆ (ต้อง Run CMD ในฐานะ Administrator)แปลว่าเครื่องที่เรา Ping ไปนั้น ไม่ตอบกลับมา อาจจะเพราะเครื่องปิดอยู่ เน็ตเวิร์คมีปัญหา หรือ Firewall บล็อค
แปลว่ามี Router ตัวใดตัวหนึ่งที่อยู่ระหว่างทาง ไม่ตอบกลับมา อาจจะเพราะ Router มีปัญหา หรือ Firewall บล็อค
ลองเอา IP Address หรือ Port ที่แปลกๆ ไป Google ดู ถ้าเจอว่าเป็น Malware หรือ Hacker ก็จัดการตามวิธีที่ Google แนะนำ
ดูวิดีโอเพิ่มเติมเกี่ยวกับคำสั่ง Ping Tracert Netstat ใช:
สมัยผมทำร้านเน็ตฯ ปัญหาคลาสสิกคือ "พี่ๆ เน็ตหลุด!" ก่อนจะวิ่งไปดู เราต้อง ping ก่อนเลย เช็คว่า router เรายังอยู่ดีไหม ถ้า ping router ไม่เจอ ก็รู้เลยว่าสายมีปัญหา ไม่ต้องโทษเกมก่อน
อีกเคสที่เจอบ่อยคือ user โหลดบิตกันกระจาย ทำให้เน็ตช้า Ping ก็ช่วยเช็คได้ว่า latency สูงผิดปกติหรือเปล่า ถ้าสูงมากๆ ก็ค่อยไปไล่ดูว่าใครโหลดบิตอยู่
ping 192.168.1.1 -t # ping ไปเรื่อยๆ จนกว่าเราจะหยุด
ping google.com -n 10 # ping 10 ครั้ง แล้วหยุด
Tracert นี่เหมือนนักสืบ ตามรอย packet เลย สมัยก่อน เวลาเล่นเกมออนไลน์แล้วแลค เราจะใช้ tracert เช็คว่า packet มันไปติดอยู่ที่ HOP ไหน แล้วก็โทรไปโวย ISP (สมัยนั้นทำบ่อยมาก)
จำไว้ว่าแต่ละ HOP มันมี Time to Live (TTL) อยู่ ถ้า TTL หมดก่อนถึงปลายทาง เราก็จะได้ error "Request timed out" อันนี้แปลว่า router ตรงนั้นมีปัญหา หรือ firewall มันบล็อค
Netstat นี่เหมือนตำรวจจราจร ส่องดูว่าใครกำลังเชื่อมต่ออะไรอยู่ สมัยก่อนไวรัสระบาดหนักๆ ผมใช้ netstat ส่องดูว่าเครื่องไหนมันแอบ connect ไปที่แปลกๆ หรือเปล่า ถ้าเจอ port ที่ไม่คุ้นเคย ก็สันนิษฐานไว้ก่อนว่าโดนไวรัส
Netstat -an นี่ command ที่ใช้บ่อยที่สุด แสดงทุกการเชื่อมต่อ ทั้ง TCP และ UDP พร้อม port และสถานะ
netstat -an | find "ESTABLISHED" # ดูเฉพาะ connection ที่กำลัง active
อันนี้มีหลายสาเหตุครับ หนึ่งคือปลายทางอาจจะปิด ICMP ไว้ (ไม่ตอบ ping) สองคือ router ระหว่างทางอาจจะมีปัญหา หรือสามคือ firewall บล็อค ICMP Traffic ครับ
ดาวสามดวง (*) ใน tracert หมายความว่า packet เราไปถึง HOP นั้นแล้ว แต่ HOP นั้นไม่ตอบกลับภายในเวลาที่กำหนด อาจจะเป็นเพราะ network busy หรือ security policy ของ HOP นั้นๆ ครับ
TIME_WAIT คือสถานะที่ socket รออยู่หลังจากปิด connection เพื่อให้แน่ใจว่า packet ที่เหลือทั้งหมดถูกส่งไปถึงปลายทางแล้ว ถ้ามี TIME_WAIT เยอะๆ อาจจะแปลว่ามีการเปิดปิด connection บ่อยเกินไป หรือมี application ที่ leak socket ครับ
Ping แค่เช็คว่าปลายทาง reachable ไหม ส่วน tracert จะบอกเส้นทางที่ packet เดินทางไป และเวลาที่ใช้ในแต่ละ HOP ครับ Ping เหมือนถามว่า "ฮัลโหล อยู่ไหม?" ส่วน Tracert เหมือนถามว่า "ไปถึงยังไง? ใช้เวลานานไหม?"
Ping, Tracert, Netstat เป็นเครื่องมือสามัญประจำบ้านสำหรับคนทำ IT เลยครับ ฝึกใช้ให้คล่อง แล้วชีวิตจะง่ายขึ้นเยอะ สมัยผมทำร้านเน็ตฯ ได้สาม tools นี้แหละช่วยชีวิตไว้หลายครั้ง iCafeForex ก็เป็นอีกแหล่งความรู้ที่ผมแนะนำ
อย่าลืมไปอ่านบทความอื่นๆ ใน SiamCafe Blog นะครับ มีเรื่อง IT สนุกๆ อีกเยอะ!