คำสั่ง netstat (ย่อมาจาก Network Statistics) เป็นหนึ่งในเครื่องมือที่สำคัญที่สุดสำหรับผู้ดูแลระบบ นักพัฒนาเครือข่าย หรือผู้ใช้ที่ต้องการตรวจสอบสถานะการเชื่อมต่อของระบบ เครื่องมือนี้สามารถใช้ในการตรวจสอบว่ามีการเชื่อมต่อไปยังปลายทางใดบ้าง ใช้พอร์ตไหน กำลังรอการเชื่อมต่อจากที่ใด หรือกำลังมีการรับส่งข้อมูลระหว่างระบบใดกับระบบใดอยู่
netstat คืออะไร
netstat คือเครื่องมือบรรทัดคำสั่ง (command line) ที่ใช้ตรวจสอบและวิเคราะห์สถานะของเครือข่ายที่เกี่ยวข้องกับเครื่องคอมพิวเตอร์หรือเซิร์ฟเวอร์ สามารถดูสถานะของพอร์ต TCP และ UDP ที่กำลังเปิดอยู่ แสดงการเชื่อมต่อแบบ active รวมถึงสามารถแสดงสถิติของเครือข่าย เช่น จำนวนแพ็กเก็ตที่ส่งหรือรับ ตาราง routing interface และอื่น ๆ
เครื่องมือนี้มีอยู่ในหลายระบบปฏิบัติการ เช่น Windows, Linux, macOS โดยอาจมีลักษณะการใช้งานหรือสวิตช์ที่แตกต่างกันบ้างตามระบบ
การใช้งาน netstat เบื้องต้น
คำสั่งพื้นฐานที่สุดคือการเรียก netstat โดยไม่ใส่พารามิเตอร์เพิ่มเติม ซึ่งจะได้ผลลัพธ์แสดงการเชื่อมต่อ TCP ที่มีอยู่ในขณะนั้น เช่น
netstat
จะได้ผลลัพธ์ที่แสดงประมาณนี้:
Proto Local Address Foreign Address State
TCP 127.0.0.1:5000 127.0.0.1:6000 ESTABLISHED
คำอธิบายแต่ละคอลัมน์:
- Proto: ประเภทของโปรโตคอล (TCP/UDP)
- Local Address: IP และพอร์ตของเครื่องท้องถิ่น
- Foreign Address: IP และพอร์ตของปลายทาง
- State: สถานะของการเชื่อมต่อ เช่น ESTABLISHED, LISTENING, TIME_WAIT เป็นต้น
3. ตัวเลือกยอดนิยมของ netstat
-a (all)
แสดงทุกการเชื่อมต่อ ทั้งที่ active และที่รอรับการเชื่อมต่อ (listening)
netstat -a
-n (numeric)
แสดงหมายเลข IP แทนชื่อ host เพื่อความรวดเร็ว
netstat -an
-o (เฉพาะ Windows)
แสดงหมายเลข process ID (PID) ที่เกี่ยวข้องกับการเชื่อมต่อ
netstat -ano
-p (Linux/macOS)
แสดงชื่อโปรเซสหรือโปรแกรมที่เปิดพอร์ตนั้น
netstat -ap
-r
แสดงตาราง routing (routing table)
netstat -r
-s
แสดงสถิติการใช้โปรโตคอล เช่น TCP, UDP, ICMP
netstat -s
4. ตัวอย่างการใช้งานในสถานการณ์จริง
ตรวจสอบว่าเครื่องกำลังฟังพอร์ตอะไรอยู่
Windows:
netstat -an | find "LISTEN"
Linux:
netstat -tuln
คำอธิบายสวิตช์:
- -t = TCP
- -u = UDP
- -l = listening
- -n = แสดง IP แบบตัวเลข
ดูการเชื่อมต่อทั้งหมดพร้อม PID
Windows:
netstat -ano
จากนั้นใช้คำสั่งนี้หาชื่อโปรเซสที่เกี่ยวข้อง:
tasklist | findstr [PID]
Linux:
netstat -tunap
ตรวจสอบว่ามีการเชื่อมต่อไปยัง IP ใดบ้าง
netstat -an | find "ESTABLISHED"
สามารถวิเคราะห์ได้ว่าเครื่องกำลังติดต่อกับเซิร์ฟเวอร์ภายนอกใดอยู่บ้าง

5. คำอธิบายสถานะของ TCP
สถานะที่พบได้บ่อย:
- LISTENING – โปรแกรมกำลังรอฟังการเชื่อมต่อ
- ESTABLISHED – การเชื่อมต่อถูกสร้างขึ้นและใช้งานอยู่
- TIME_WAIT – การเชื่อมต่อถูกปิดแล้วแต่ยังรอเพื่อให้แน่ใจว่าแพ็กเก็ตสุดท้ายถูกส่งแล้ว
- CLOSE_WAIT – อีกฝั่งปิดการเชื่อมต่อ แต่โปรแกรมเรายังไม่ได้ปิด
- SYN_SENT – ส่งคำขอเชื่อมต่อไปแล้ว รอการตอบกลับ
- SYN_RECEIVED – ได้รับการเชื่อมต่อและรอยืนยันกลับ
6. เปรียบเทียบกับเครื่องมือใหม่
ในระบบ Linux ปัจจุบัน netstat มักถูกแทนที่ด้วยคำสั่ง ss ที่ประมวลผลได้เร็วกว่า
ดูพอร์ต TCP/UDP ทั้งหมดที่เปิดอยู่:
ss -tuln
ดูโปรเซสที่เปิดพอร์ต:
ss -tulnp
นอกจากนี้ยังมีคำสั่ง lsof ที่สามารถใช้ร่วมกันได้ เช่น:
lsof -i :80
จะช่วยระบุว่า process ใดเปิดพอร์ต 80 อยู่
7. การใช้ netstat ร่วมกับคำสั่งอื่น
ใน Linux/macOS สามารถใช้ grep เพื่อกรองข้อมูล:
netstat -an | grep 443
ใน Windows ใช้ findstr:
netstat -an | findstr 443
8. การวิเคราะห์ความปลอดภัย
สามารถใช้ netstat วิเคราะห์พฤติกรรมแปลก ๆ เช่น:
- เครื่องเชื่อมต่อไปยังหลาย IP โดยไม่ทราบสาเหตุ อาจเป็น botnet หรือ malware
- พอร์ตที่ไม่ควรเปิด (เช่น พอร์ตของ remote desktop ที่ไม่จำเป็น)
การตรวจสอบเหล่านี้สามารถช่วยลดความเสี่ยงจากภัยคุกคามทางไซเบอร์
9. ใช้งานใน PowerShell
netstat สามารถใช้งานได้ใน PowerShell เช่นเดียวกับ Command Prompt และสามารถใช้ร่วมกับ pipeline ได้ เช่น
netstat -an | Where-Object { $_ -match "443" }
10. เขียนสคริปต์เพื่อตรวจสอบพอร์ต
ใน Linux/Bash สามารถเขียนสคริปต์เพื่อตรวจสอบพอร์ตอัตโนมัติได้ เช่น
PORT=22
netstat -tuln | grep ":$PORT " > /dev/null
if [ $? -eq 0 ]; then
echo "Port $PORT is open."
else
echo "Port $PORT is closed."
fi
11. ข้อจำกัดของ netstat
แม้ netstat จะมีประโยชน์มาก แต่ก็มีข้อจำกัด เช่น:
- ไม่สามารถแสดงผลแบบเรียลไทม์
- ไม่มีฟีเจอร์วิเคราะห์ลึกเท่าเครื่องมือรุ่นใหม่
- netstat อาจไม่ได้ติดตั้งใน Linux รุ่นใหม่ ต้องติดตั้งแพ็กเกจ net-tools เพิ่มเติม
12. สรุป
netstat เป็นเครื่องมือพื้นฐานที่ผู้ดูแลระบบควรรู้จัก ใช้สำหรับ:
- ตรวจสอบการเชื่อมต่อเครือข่าย
- วิเคราะห์พอร์ตที่เปิดอยู่
- ติดตามการเชื่อมต่อที่กำลังทำงาน
- ตรวจสอบการเชื่อมต่อผิดปกติ
- ใช้ร่วมกับเครื่องมืออื่นเพื่อการวิเคราะห์ที่แม่นยำ
ถึงแม้จะมีเครื่องมือที่ทันสมัยกว่า แต่ netstat ก็ยังคงมีบทบาทสำคัญในการดูแลระบบเครือข่ายในเบื้องต้น และเป็นจุดเริ่มต้นที่ดีสำหรับผู้ที่สนใจด้านเน็ตเวิร์กทุกระดับ

English