วิธีการใช้คำสั่ง Netstat

ตัวอย่างสวิตช์และอื่น ๆ

คำสั่ง netstat คือ คำสั่ง Command Prompt ที่ ใช้เพื่อแสดงข้อมูลโดยละเอียดเกี่ยวกับวิธีที่คอมพิวเตอร์ของคุณสื่อสารกับคอมพิวเตอร์เครื่องอื่นหรืออุปกรณ์เครือข่าย

โดยเฉพาะคำสั่ง netstat สามารถแสดงรายละเอียดเกี่ยวกับการเชื่อมต่อเครือข่ายแต่ละเครือข่ายสถิติเครือข่ายโดยรวมและเฉพาะโพรโทคอลและอื่น ๆ ซึ่งทั้งหมดนี้อาจช่วยแก้ปัญหาเกี่ยวกับเครือข่ายบางประเภท

ความพร้อมใช้งานคำสั่งของ Netstat

คำสั่ง netstat สามารถใช้ได้จากภายใน Command Prompt ใน Windows ส่วนใหญ่ ได้แก่ Windows 10 , Windows 8 , Windows 7 , Windows Vista , Windows XP , ระบบปฏิบัติการ Windows Server และ Windows รุ่นเก่าบางรุ่นด้วย

หมายเหตุ: ความพร้อมใช้สวิตช์คำสั่ง netstat และ ไวยากรณ์ คำสั่ง netstat อื่น ๆ อาจแตกต่างจากระบบปฏิบัติการกับระบบปฏิบัติการ

ไวยากรณ์คำสั่งของ Netstat

netstat [ -a ] [ -b ] [ -e ] [ -f ] [ -n ] [ -o ] [ -p protocol ] [ -r ] [ -s ] [ -t ] [ -x ] [ -y ] [ time_interval ] [ /? ]

คำแนะนำ: ดู วิธีการอ่านไวยากรณ์คำสั่ง ถ้าคุณไม่แน่ใจว่าจะอ่านไวยากรณ์คำสั่ง netstat ตามที่แสดงไว้ด้านบน

ดำเนินการคำสั่ง netstat เพียงอย่างเดียวเพื่อแสดงรายการการเชื่อมต่อ TCP ทั้งหมดที่ใช้งานอยู่ซึ่งจะแสดง IP แอดเดรส ท้องถิ่น (คอมพิวเตอร์ของคุณ) ที่อยู่ IP ต่างประเทศ (คอมพิวเตอร์เครื่องอื่นหรืออุปกรณ์เครือข่าย) พร้อมกับลำดับ หมายเลขพอร์ตรวมทั้งสถานะ TCP

-a = สวิตช์นี้แสดงการเชื่อมต่อ TCP ที่ใช้งานการเชื่อมต่อ TCP กับสถานะการรับฟังรวมถึงพอร์ต UDP ที่กำลังรับฟัง

-b = สวิตช์ netstat นี้คล้ายคลึงกับสวิตช์ -o ที่ ระบุไว้ด้านล่าง แต่แทนที่จะแสดง PID จะแสดงชื่อไฟล์จริงของกระบวนการ การใช้ -b over -o อาจดูเหมือนว่าคุณประหยัดขั้นตอนหรือสอง แต่การใช้งานบางครั้งอาจช่วยยืดเวลาที่ netstat จะรันได้เต็มที่

-e = ใช้สวิตช์นี้กับคำสั่ง netstat เพื่อแสดงสถิติเกี่ยวกับการเชื่อมต่อเครือข่ายของคุณ ข้อมูลนี้ประกอบด้วยไบต์แพคเก็ต unicast แพ็คเก็ตที่ไม่ใช่แบบ unicast การละทิ้งข้อผิดพลาดและโปรโตคอลที่ไม่รู้จักที่ได้รับและส่งตั้งแต่การเชื่อมต่อ

-f = สวิตช์ -f จะบังคับให้คำสั่ง netstat แสดง ชื่อโดเมนที่ครบถ้วน (FQDN) สำหรับแต่ละที่อยู่ IP ต่างประเทศเมื่อเป็นไปได้

-n = ใช้สวิตช์ -n เพื่อป้องกันไม่ให้ netstat พยายามกำหนด ชื่อโฮสต์ สำหรับที่อยู่ IP ต่างประเทศ ขึ้นอยู่กับการเชื่อมต่อเครือข่ายปัจจุบันของคุณโดยใช้สวิตช์นี้อาจลดเวลาที่ใช้สำหรับ netstat เพื่อให้ทำงานได้อย่างเต็มที่

-o = ตัวเลือกที่มีประโยชน์สำหรับงานแก้ไขปัญหาจำนวนมาก -o สวิทช์จะแสดงตัวระบุกระบวนการ (PID) ที่เชื่อมโยงกับแต่ละการเชื่อมต่อที่แสดง ดูตัวอย่างด้านล่างเพื่อดูข้อมูลเพิ่มเติมเกี่ยวกับการใช้ netstat -o

-p = ใช้สวิตช์ -p เพื่อแสดงการเชื่อมต่อหรือสถิติเฉพาะ โพรโทคอล คุณไม่สามารถกำหนด โปรโตคอล มากกว่าหนึ่งรายการในครั้งเดียวและไม่สามารถเรียกใช้ netstat ด้วย -p โดยไม่กำหนด โปรโตคอล

protocol = เมื่อระบุ โพรโทคอล ด้วยตัวเลือก -p คุณสามารถใช้ tcp , udp , tcpv6 หรือ udpv6 ได้ ถ้าคุณใช้ -s กับ -p เพื่อดูสถิติตามโปรโตคอลคุณสามารถใช้ icmp , ip , icmpv6 หรือ ipv6 ได้ นอกเหนือจากสี่ตัวแรกที่ฉันกล่าวถึง

-r = รัน netstat โดยใช้ -r เพื่อแสดงตารางเส้นทาง IP เช่นเดียวกับการใช้คำสั่ง route เพื่อรันการ พิมพ์เส้นทาง

-s = ตัวเลือก s สามารถใช้กับคำสั่ง netstat เพื่อแสดงสถิติโดยละเอียดตามโปรโตคอล คุณสามารถ จำกัด สถิติที่แสดงในโปรโตคอลเฉพาะได้โดยใช้ตัวเลือก s และระบุ โปรโตคอล นั้น แต่ต้องแน่ใจว่าได้ใช้ โปรโตคอล s ก่อน -p เมื่อใช้สวิตช์ร่วมกัน

-t = ใช้สวิตช์ -t เพื่อแสดงสถานะ TCP offload ของกระแสลมในปัจจุบันแทนสถานะ TCP ที่แสดงโดยทั่วไป

-x = ใช้ตัวเลือก -x เพื่อแสดงเครื่องรับฟังการเชื่อมต่อและปลายทางที่ใช้ร่วมกันทั้งหมดของ NetworkDirect

-y = สวิตช์ -y สามารถใช้เพื่อแสดงเทมเพลตการเชื่อมต่อ TCP สำหรับการเชื่อมต่อทั้งหมด คุณไม่สามารถใช้ -y กับตัวเลือกอื่น ๆ ของ netstat

time_interval = นี่คือเวลาเป็นวินาทีที่คุณต้องการให้คำสั่ง netstat ทำงานใหม่โดยอัตโนมัติหยุดเฉพาะเมื่อคุณใช้ Ctrl-C เพื่อสิ้นสุดลูป

/? = ใช้ สวิตช์ความช่วยเหลือ เพื่อแสดงรายละเอียดเกี่ยวกับตัวเลือกหลายคำสั่งของ netstat

คำแนะนำ: ทำให้ข้อมูล netstat ทั้งหมดในบรรทัดคำสั่งทำงานได้ง่ายขึ้นโดยการแสดงผลสิ่งที่คุณเห็นบนหน้าจอไปยัง ไฟล์ข้อความ โดยใช้ตัว ดำเนินการเปลี่ยนเส้นทาง ดู วิธีการเปลี่ยนเส้นทางคำสั่งไปยังไฟล์ สำหรับคำแนะนำที่สมบูรณ์

ตัวอย่างคำสั่ง Netstat

netstat -f

ในตัวอย่างแรกนี้ฉันจะรัน netstat เพื่อแสดงการเชื่อมต่อ TCP ที่ใช้งานอยู่ทั้งหมด แต่ฉันต้องการที่จะเห็นคอมพิวเตอร์ที่ฉันเชื่อมต่ออยู่ในรูปแบบ FQDN [ -f ] แทนที่จะเป็นที่อยู่ IP แบบง่ายๆ

นี่คือตัวอย่างของสิ่งที่คุณอาจเห็น:

Active Connections Proto ที่อยู่ภายใน Address State Address ต่างประเทศ TCP 127.0.0.1:5357 VM-Windows-7: 49229 TIME_WAIT TCP 127.0.0.1:49225 VM-Windows-7: 12080 TIME_WAIT TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT TCP 192.168 .1.14: 49196 a795sm.avast.com: http CLOSE_WAIT TCP 192.168.1.14:49197 a795sm.avast.com: http CLOSE_WAIT TCP 192.168.1.14:49230 TIM-PC: wsd TIME_WAIT TCP 192.168.1.14:49231 TIM-PC: icslap ESTABLISHED TCP 192.168.1.14:49232 TIM-PC: netbios-ssn TIME_WAIT TCP 192.168.1.14:49233 TIM-PC: netbios-ssn TIME_WAIT TCP [:: 1]: 2869 VM-Windows-7: 49226 จัดตั้ง TCP [:: 1] : 49226 VM-Windows-7: ตั้งค่าการจับคู่

ที่คุณสามารถดูฉันมี 11 การเชื่อมต่อ TCP ที่ใช้งานอยู่ในขณะที่ฉันรัน netstat โพรโทคอลเดียว (ในคอลัมน์ Proto ) อยู่ในรายการ TCP ซึ่งคาดว่าเนื่องจากไม่ได้ใช้ -a

นอกจากนี้คุณยังสามารถดูที่อยู่ IP สามชุดในคอลัมน์ ที่อยู่ใน ระบบ - ที่อยู่ IP จริงของฉันที่ 192.168.1.14 และ ที่อยู่ย้อนกลับ ของ IPv4 และ IPv6 ของฉันพร้อมกับพอร์ตที่แต่ละการเชื่อมต่อใช้อยู่ คอลัมน์ Foreign Address (ที่อยู่ต่างประเทศ) แสดง FQDN ( 75.125.212.75 ไม่สามารถแก้ไขได้ด้วยเหตุผลบางประการ) พร้อมกับพอร์ตนั้นเช่นกัน

คอลัมน์ รัฐ จะแสดงสถานะ TCP ของการเชื่อมต่อนั้น ๆ

netstat -o

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

นี่คือสิ่งที่คอมพิวเตอร์ของฉันแสดง:

Active Connections Proto ที่อยู่ภายใน Address State Address ต่างประเทศ PID TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT 2948 TCP 192.168.1.14:49196 a795sm: http CLOSE_WAIT 2948 TCP 192.168.1.14:49197 a795sm: http CLOSE_WAIT 2948

คุณอาจสังเกตเห็นคอลัมน์ PID ใหม่ ในกรณีนี้ PID จะเหมือนกันซึ่งหมายความว่าโปรแกรมเดียวกันในคอมพิวเตอร์ของฉันเปิดการเชื่อมต่อเหล่านี้

เพื่อตรวจสอบว่าโปรแกรมใดแสดงโดย PID ของ 2948 ในคอมพิวเตอร์ของฉันสิ่งที่ฉันต้องทำคือเปิด Task Manager คลิกที่แท็บ Processes และจด ชื่อรูปภาพที่ อยู่ถัดจาก PID ที่ฉันกำลังมองหาในคอลัมน์ PID . 1

การใช้คำสั่ง netstat ด้วยตัวเลือก -o จะมีประโยชน์มากเมื่อติดตามว่าโปรแกรมใดใช้ แบนด์วิธ ร่วมกันมากเกินไป นอกจากนี้ยังสามารถช่วยค้นหาปลายทางที่ มัลแวร์ บางประเภทหรือแม้แต่ชิ้นส่วนที่ถูกต้องตามกฎหมายของซอฟต์แวร์อาจส่งข้อมูลโดยไม่ได้รับอนุญาตจากคุณ

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

netstat -s -p tcp -f

ในตัวอย่างที่สามนี้ฉันต้องการดูสถิติเฉพาะโพรโทคอล [ -s ] แต่ไม่ใช่ทั้งหมดเพียงสถิติ TCP [ -p tcp ] ฉันยังต้องการที่อยู่ต่างประเทศที่แสดงในรูปแบบ FQDN [ -f ]

นี่คือสิ่งที่คำสั่ง netstat ดังที่แสดงไว้ด้านบนที่ผลิตบนคอมพิวเตอร์ของฉัน:

สถิติ TCP สำหรับ IPv4 เปิดใช้งานล่าสุด = 77 เปิดใช้งานแบบ Passive = 21 การเชื่อมต่อล้มเหลว = 2 รีเซ็ตการเชื่อมต่อ = 25 การเชื่อมต่อปัจจุบัน = 5 Segments Received = 7313 Segments Sent = 4824 Segments Retransmitted = 5 การเชื่อมต่อที่ใช้งาน Proto Local Address State Address ต่างประเทศ TCP 127.0.0.1: 2869 VM-Windows-7: 49235 TIME_WAIT TCP 127.0.0.1:2869 VM-Windows-7: 49238 จัดตั้ง TCP 127.0.0.1:49238 VM-Windows-7: icslap ก่อตั้ง TCP TCP 192.168.1.14:49194 75.125.212.75:http CLOSE_WAIT TCP 192.168.1.14:49196 a795sm.avast.com: http CLOSE_WAIT TCP 192.168.1.14:49197 a795sm.avast.com: http CLOSE_WAIT

ตามที่คุณเห็นสถิติต่างๆของโปรโตคอล TCP จะปรากฏขึ้นเช่นเดียวกับการเชื่อมต่อ TCP ทั้งหมดที่ใช้งานอยู่ในขณะนั้น

netstat -e -t 5

ในตัวอย่างสุดท้ายนี้ผมได้รันคำสั่ง netstat เพื่อแสดงสถิติพื้นฐานของเครือข่ายพื้นฐาน [ -e ] และฉันต้องการให้สถิติเหล่านี้อัปเดตอย่างต่อเนื่องในหน้าต่างคำสั่งทุกๆ 5 วินาที [ -t 5 ]

นี่คือสิ่งที่ผลิตบนหน้าจอ:

สถิติอินเทอร์เฟซที่ได้รับส่งไบต์ 22132338 1846834 แพ็คเก็ต Unicast 19113 9869 แพ็คเก็ตที่ไม่ใช่แบบ unicast 0 0 ทิ้ง 0 0 ข้อผิดพลาด 0 0 โปรโตคอลที่ไม่รู้จัก 0 สถิติอินเทอร์เฟซที่ได้รับส่ง Bytes 22134630 1846834 Unicast packets 19128 9869 Unistast packets 0 0 Discards 0 0 ข้อผิดพลาด 0 0 Unknown โปรโตคอล 0 ^ C

ข้อมูลต่างๆที่คุณสามารถดูได้ที่นี่และที่แสดงไว้ในไวยากรณ์ด้านบนด้านบนจะปรากฏขึ้น

ฉันเพียงให้คำสั่ง netstat รันครั้งพิเศษโดยอัตโนมัติอย่างที่คุณเห็นในสองตารางในผลลัพธ์ หมายเหตุ ^ C ที่ด้านล่างแสดงว่าฉันใช้คำสั่งยกเลิกการใช้งาน Ctrl-C เพื่อหยุดการเรียกใช้คำสั่งอีกครั้ง

คำสั่งที่เกี่ยวข้องกับ Netstat

คำสั่ง netstat มักใช้กับคำสั่ง Command Prompt ของเครือข่ายอื่น ๆ เช่น nslookup, ping , tracert , ipconfig และอื่น ๆ

[1] คุณอาจต้องเพิ่มคอลัมน์ PID ด้วยตนเองเพื่อ Task Manager คุณสามารถทำได้โดยการเลือกกล่องกาเครื่องหมาย "PID (Process Identifier)" จากมุมมอง -> เลือกคอลัมน์ในตัวจัดการงาน นอกจากนี้คุณอาจต้องคลิกที่ปุ่ม "แสดงกระบวนการจากผู้ใช้ทั้งหมด" ในแท็บกระบวนการหาก PID ที่คุณต้องการไม่อยู่ในรายการ