Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> ซอฟต์แวร์

ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows

ในอีกบทความหนึ่ง เราได้อธิบายพอร์ตคอมพิวเตอร์และว่ามันใช้ทำอะไร นอกจากนั้น เราสามารถทำอะไรกับข้อมูลพอร์ตได้บ้าง? เนื่องจากトラフィกทั้งหมดเข้าและออกจากคอมพิวเตอร์ผ่านพอร์ต เราสามารถตรวจสอบพวกมันเพื่อดูว่ากำลังทำอะไรอยู่ พอร์ตอาจไม่ได้ฟังトラフィก? หรืออาจมีบางอย่างใช้พอร์ตที่ไม่ควร?

เราจะใช้คำสั่ง Windows netstat เพื่อดูพอร์ตที่กำลังฟังและ PID (Process ID) เรายังจะดูว่าสามารถทำอะไรกับข้อมูลนั้นได้บ้าง

ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows

Netstat คืออะไร?

คำสั่ง netstat เป็นการรวมคำว่า 'network' และ 'statistics' คำสั่ง netstat ทำงานในทุกเวอร์ชันของ Windows ตั้งแต่ Windows XP จนถึง Windows 10 มันยังใช้ใน OS อื่นๆ อย่าง Unix และ Linux แต่เราจะมุ่งเน้น Windows ที่นี่

Netstat ให้ข้อมูลดังนี้:

  • ชื่อโปรโตคอลที่พอร์ตใช้ (TCP หรือ UDP)
  • ที่อยู่ IP ท้องถิ่นและชื่อคอมพิวเตอร์ และหมายเลขพอร์ตที่ใช้
  • ที่อยู่ IP และหมายเลขพอร์ตที่เรากำลังเชื่อมต่อ
  • สถานะของการเชื่อมต่อ TCP สำหรับรายละเอียดเกี่ยวกับสถานะเหล่านี้ อ่านส่วน Event Processing ของ RFC 793

ใช้ Netstat ดูพอร์ตที่กำลังฟัง & PID

  • ใช้คีย์ Win Key + X ในเมนูที่เปิด เลือก Command Prompt
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows
  • ป้อนคำสั่ง
    netstat -a -n -o
    พารามิเตอร์ของ netstat นำหน้าด้วย Hyphen ไม่ใช่ Forward slash เหมือนคำสั่งอื่นๆ -a บอกให้มันแสดงการเชื่อมต่อที่ทำงานอยู่ทั้งหมดและพอร์ตที่คอมพิวเตอร์กำลังฟัง

    -n บอก netstat ให้แสดงที่อยู่ IP และพอร์ตเป็นตัวเลขอย่างเดียว เราบอกมันอย่าพยายาม Resolve ชื่อ ทำให้แสดงผลเร็วและสะอาดขึ้น -o บอก netstat ให้รวม PID ด้วย เราจะใช้ PID ต่อไปเพื่อหาว่ากระบวนการไหนใช้พอร์ตเฉพาะ
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows
  • ดูผลลัพธ์และจดที่อยู่ หมายเลขพอร์ต สถานะ และ PID สมมติเราอยากรู้ว่าอะไรใช้พอร์ต 63240 จดว่า PID คือ 8552 และกำลังเชื่อมต่อไปที่ IP 172.217.12.138 พอร์ต 443
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows

อะไรกำลังใช้พอร์ตนั้น?

  • เปิด Task Manager วิธีง่ายที่สุดคือ กด Ctrl + Shift + Esc
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows
  • คลิกแท็บ Details เพื่อให้หาง่ายขึ้น คลิกหัวคอลัมน์ PID ให้เรียง PID ตามตัวเลข
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows
  • เลื่อนลงไป PID 8552 และดูว่ามันคือกระบวนการอะไร ในกรณีนี้ คือ googledrivesync.exe แต่มันจริงไหม? บางครั้งไวรัสทำให้ตัวเองดูเหมือนกระบวนการที่ถูกต้อง
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows
  • ในเบราว์เซอร์เว็บ ไปที่ ipinfo.io ใส่ที่อยู่ IP 172.217.12.138 ตามที่เราเห็น ที่อยู่ IP ลงทะเบียนไว้กับ Google ดังนั้น googledrivesync.exe นี้จึงเป็นของจริง
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows

วิธีดูพอร์ต PID และชื่อกระบวนการใน PowerShell

PowerShell เป็นวิธีใหม่กว่าของ Microsoft ในการใช้ Command-line interface กับ Windows เราบอกว่าใหม่ แต่ก็มานานหลายเวอร์ชันแล้ว คุณควรเรียนรู้ PowerShell แม้จะเป็น Home user

คำสั่ง Windows ส่วนใหญ่ทำงานใน PowerShell ได้ นอกจากนี้เรายังรวมกับ Cmdlets ของ PowerShell ได้ (อ่านว่า command-lets) Joe จาก Winteltools.com จัดเตรียมสคริปต์สำหรับวิธีนี้

  • เปิด Notepad และใส่โค้ดต่อไปนี้:
$netstat = netstat -aon | Select-String -pattern "(TCP|UDP)" $processList = Get-Process foreach ($result in $netstat) { $splitArray = $result -split " " $procID = $splitArray[$splitArray.length – 1] $processName = $processList | Where-Object {$_.id -eq $procID} | select processname $splitArray[$splitArray.length – 1] = $procID + " " + $processName.processname $splitArray -join " " }
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows
  • บันทึกไฟล์เป็น get-NetstatProcessName.ps1 จดไว้ว่าบันทึกที่ไหน สำคัญมาก ต้องเปลี่ยน Save as type: เป็น All Files (*.*) ไม่งั้นมันจะบันทึกเป็น get-NetstatProcessName.ps1.txt และจะไม่ทำงานให้เรา
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows
  • เปิด PowerShell และไปที่ตำแหน่งที่บันทึกสคริปต์ ในกรณีนี้คือ
    cd C:\Scripts
    กด Enter เพื่อรันคำสั่ง
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows
  • รันสคริปต์ด้วย dot-sourcing เพื่อให้ทำงาน นั่นคือ ใช้ ./ นำหน้าชื่อไฟล์ คำสั่งจะเป็น
    ./get-NetstatProcessName.ps1
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows
  • ตอนนี้เราเห็นข้อมูล netstat แบบเดิม พร้อมชื่อกระบวนการ ไม่ต้องเปิด Task Manager อีกแล้ว
ใช้ Netstat ดูพอร์ตที่กำลังฟังและ PID ใน Windows

ไปหามันซะ

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

ถ้าคุณคิดว่า netstat เป็นยูทิลิตี้ที่ยอดเยี่ยง ลองดู Windows TCP/IP utilities อื่นๆ เช่น tracert, ipconfig, และ nslookup หรือใช้ Resource Monitor เพื่อดูการเชื่อมต่อเว็บไซต์และอินเทอร์เน็ตที่ซ่อนอยู่ ได้ดูรายละเอียดมากขึ้น มีอะไรมากมายที่คุณทำได้เพื่อดูว่าคอมพิวเตอร์ของคุณกำลังทำอะไรอยู่พอดี

คุณเคยใช้ netstat แก้ปัญหาไหม? บอกเราว่าคุณทำอะไร คำถามเกี่ยวกับการใช้ netstat? ถามเราในความคิดเห็นด้านล่างได้เลย