คำแนะนำฉบับสมบูรณ์สำหรับการตรวจสอบ Open Ports บน Windows 2026

คู่มือตรวจสอบพอร์ตที่เปิดบน Windows ด้วยคำสั่ง netstat และ PowerShell

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

พอร์ตที่เปิดอยู่คืออะไร และเหตุใดจึงสำคัญ

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

นี่คือเหตุผลว่าทำไมสิ่งนี้จึงสำคัญในทางปฏิบัติ:

  • การตรวจสอบความปลอดภัย: พอร์ตที่เปิดอยู่โดยไม่คาดหวังอาจหมายความว่ากระบวนการที่ไม่ได้รับอนุญาต มัลแวร์ หรือบริการที่ตั้งค่าผิด กำลังเปิดเผยเครื่องของคุณ
  • การแก้ไขปัญหา: หากเว็บเซิร์ฟเวอร์ เซิร์ฟเวอร์เกม หรือเดสก์ทอประยะไกลของคุณไม่สามารถเข้าถึงได้ คำถามแรกคือว่าพอร์ตนั้นเปิดอยู่จริงหรือไม่
  • การตรวจสอบ Firewall: Windows Firewall ของคุณอาจบล็อกพอร์ตแม้ว่าบริการกำลังทำงาน หรืออนุญาตให้ใช้พอร์ตที่คุณคิดว่าปิดอยู่
เคล็ดลับ: "เปิด" และ "ไม่ถูกบล็อกโดย firewall" เป็นสองสิ่งที่แตกต่างกัน พอร์ตสามารถเปิดได้ในเครื่อง (บริการกำลังฟัง) แต่ยังคงถูกบล็อกจากภายนอกโดย firewall หรือเราเตอร์ของคุณ วิธีการด้านล่างครอบคลุมทั้งสองมุม

ใช้คำสั่ง Netstat เพื่อดูพอร์ตที่เปิดอยู่

คำสั่ง netstat เป็นวิธีในตัวที่เร็วที่สุดในการแสดงรายการพอร์ตทุกพอร์ตที่เครื่อง Windows ของคุณกำลังฟังอยู่ เปิด Command Prompt (ค้นหา "cmd" ในเมนู Start คลิกขวา และเลือก "Run as administrator") และเรียกใช้:

netstat -ano

แฟลกจะแบ่งออกเช่นนี้:

  • -a แสดงการเชื่อมต่อทั้งหมดที่ใช้งานอยู่และพอร์ตที่ฟังอยู่
  • -n แสดงที่อยู่และหมายเลขพอร์ตเป็นตัวเลขแทนที่จะแก้ไขชื่อโฮสต์ (เร็วกว่ามาก)
  • -o เพิ่ม Process ID (PID) เพื่อให้คุณสามารถระบุว่าโปรแกรมใดเป็นเจ้าของพอร์ตแต่ละพอร์ต

คอลัมน์ผลลัพธ์คือ: Proto , Local Address , Foreign Address , State และ PID ค้นหาแถวที่คอลัมน์ State บอกว่า LISTENING นั่นคือพอร์ตที่เปิดอยู่ของคุณ

เพื่อจำกัดให้เหลือเพียงพอร์ตที่ฟังอยู่:

netstat -ano | findstr LISTENING

เมื่อคุณมี PID ที่ต้องการตรวจสอบ ให้ค้นหาชื่อกระบวนการด้วย:

tasklist /fi "PID eq 1234"

แทนที่ 1234 ด้วย PID จริงจากผลลัพธ์ netstat นี่บอกคุณว่าไฟล์ปฏิบัติการใดกำลังฟังบนพอร์ตนั้นอย่างแน่นอน

เพื่อตรวจสอบว่าพอร์ตเฉพาะกำลังใช้งานอยู่หรือไม่ ให้รวม netstat กับ findstr:

netstat -ano | findstr :443
หมายเหตุ: Netstat แสดงเฉพาะพอร์ต TCP และ UDP ที่มีการผูกมัดอยู่บนเครื่องในเท่านั้น ไม่บอกคุณว่าพอร์ตเหล่านั้นสามารถเข้าถึงได้จากอินเทอร์เน็ตหรือไม่ สำหรับสิ่งนั้น คุณต้องใช้เครื่องมือตรวจสอบพอร์ตภายนอก (ครอบคลุมด้านล่าง)

การตรวจสอบพอร์ตด้วย PowerShell

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

Get-NetTCPConnection -State Listen | Select-Object LocalAddress, LocalPort, OwningProcess | Sort-Object LocalPort

นี่ส่งคืนรายการพอร์ต TCP ที่เรียงลำดับทุกพอร์ตในสถานะ LISTEN รวมถึงที่อยู่ในเครื่องและ PID เพื่อแก้ไข PID เป็นชื่อกระบวนการในคำสั่งเดียวกัน:

Get-NetTCPConnection -State Listen |
  Select-Object LocalPort,
    @{Name="Process";Expression={(Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).Name}} |
  Sort-Object LocalPort

คุณยังสามารถทดสอบว่าโฮสต์ระยะไกลมีพอร์ตเฉพาะเปิดอยู่หรือไม่ได้โดยตรงจาก PowerShell โดยใช้ Test-NetConnection :

Test-NetConnection -ComputerName example.com -Port 443

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

การตรวจสอบการตั้งค่า Windows Firewall สำหรับกฎพอร์ต

Windows Firewall ควบคุมว่าพอร์ตใดได้รับอนุญาตเข้าและออก บริการสามารถฟังบนพอร์ตในเครื่องได้ แต่หากไฟร์วอลล์บล็อกการรับส่งข้อมูลขาเข้าบนพอร์ตนั้น ไคลเอนต์ภายนอกจะไม่สามารถเข้าถึงได้ นี่คือวิธีการตรวจสอบกฎไฟร์วอลล์ของคุณ

ใช้ Windows Defender Firewall ที่มีความปลอดภัยขั้นสูง

  1. กด Win + R พิมพ์ wf.msc แล้วกด Enter
  2. คลิก Inbound Rules ในแผงด้านซ้ายเพื่อดูกฎที่ควบคุมการรับส่งข้อมูลเข้ามาในเครื่องของคุณ
  3. คลิก Outbound Rules เพื่อดูการรับส่งข้อมูลที่ออกจากเครื่องของคุณ
  4. เรียงลำดับตาม Enabled เพื่อดูกฎที่ใช้งานอยู่อย่างรวดเร็ว
  5. กฎแต่ละข้อแสดงโปรโตคอล (TCP/UDP) พอร์ตในเครื่อง พอร์ตระยะไกล และการดำเนิน (Allow/Block)

ใช้บรรทัดคำสั่ง

เพื่อแสดงรายการกฎไฟร์วอลล์ที่ใช้งานอยู่ทั้งหมดจากบรรทัดคำสั่ง:

netsh advfirewall firewall show rule name=all

เพื่อตรวจสอบว่าพอร์ตเฉพาะได้รับอนุญาตผ่านไฟร์วอลล์หรือไม่:

netsh advfirewall firewall show rule name=all | findstr "LocalPort"

เอกสารอย่างเป็นทางการของ Microsoft เกี่ยวกับ การกำหนดค่า Windows Firewall ครอบคลุมการสร้างและการจัดการกฎโดยละเอียดหากคุณต้องการเพิ่มหรือแก้ไขกฎ

ใช้ Port Scanner บน Windows

เครื่องมือในตัวมีประโยชน์สำหรับการตรวจสอบเครื่องของคุณเอง แต่บางครั้งคุณต้องสแกนโฮสต์อื่นบนเครือข่ายของคุณ หรือคุณต้องการภาพรวมด้านสายตาแทนผลลัพธ์บรรทัดคำสั่งดิบ Port scanner ที่เฉพาะเจาะจงเติมเต็มช่องว่างนั้น

Nmap เป็นมาตรฐานอุตสาหกรรมสำหรับการสแกนพอร์ต มันเป็นฟรี โอเพนซอร์ส และพร้อมใช้งานสำหรับ Windows จาก หน้าดาวน์โหลด Nmap อย่างเป็นทางการ โปรแกรมติดตั้ง Windows รวม Zenmap ซึ่งเป็นส่วนติดต่อกราฟิก การสแกนพื้นฐานของโฮสต์จะมีลักษณะเช่นนี้:

nmap -sV 192.168.1.1

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

สำคัญ: สแกนเฉพาะโฮสต์ที่คุณเป็นเจ้าของหรือมีอนุญาตที่ชัดเจนในการสแกน การสแกนพอร์ตบนเครือข่ายที่คุณไม่ควบคุมอาจละเมิด Computer Fraud and Abuse Act (CFAA) หรือกฎหมายที่เทียบเท่ากันในประเทศของคุณ

ทดสอบพอร์ตที่เปิดอยู่ของคุณจากภายนอก

นี่คือความแตกต่างที่สำคัญที่คู่มือส่วนใหญ่ข้าม พอร์ตสามารถฟังได้ในเครื่องบน Windows ของคุณ แต่ยังคงปรากฏปิดต่อโลกภายนอก สิ่งนี้เกิดขึ้นเมื่อเราเตอร์ของคุณไม่ได้ส่งต่อพอร์ตนั้น หรือเมื่อ ISP ของคุณบล็อกมัน เพื่อทราบว่าอินเทอร์เน็ตเห็นอะไรจริงๆ คุณต้องทดสอบจากจุดมองเห็นภายนอก

นี่คือสิ่งที่เครื่องมือตรวจสอบพอร์ตออนไลน์ทำ มันเริ่มต้นการเชื่อมต่อ TCP ไปยังที่อยู่ IP ของคุณจากเซิร์ฟเวอร์ระยะไกล และรายงานว่าการเชื่อมต่อได้รับการยอมรับ (Open) ปฏิเสธ (Closed) หรือหมดเวลา (Timeout) ไม่จำเป็นต้องติดตั้งซอฟต์แวร์ และมันข้ามไฟร์วอลล์ในเครื่องของคุณทั้งหมดเพื่อแสดงมุมมองภายนอกจริง

เครื่องมือตรวจสอบพอร์ตออนไลน์ทดสอบพอร์ตที่เปิดอยู่บน Windows

ดูพอร์ตที่เปิดอยู่บนเครื่อง Windows ของคุณอย่างแน่นอน

เครื่องมือตรวจสอบพอร์ตออนไลน์ฟรีของเราทดสอบการเชื่อมต่อ TCP กับ IP หรือโดเมนใดๆ จากเซิร์ฟเวอร์ภายนอก เพื่อให้คุณได้มุมมองจริงจากภายนอกเมื่อตรวจสอบพอร์ตที่เปิดอยู่บน Windows ตรวจสอบพอร์ตเดียวหรือตรวจสอบเป็นชุดได้ถึง 10 พอร์ตในคราวเดียว พร้อมผลลัพธ์ในหน่วยมิลลิวินาที

ตรวจสอบพอร์ตที่เปิดอยู่ของคุณ →

อ้างอิงพอร์ตทั่วไปอย่างรวดเร็ว

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

พอร์ต โปรโตคอล บริการ การใช้งานทั่วไปบน Windows
80 TCP HTTP เว็บเซิร์ฟเวอร์ (IIS, Apache) เซิร์ฟเวอร์ dev ในเครื่อง
443 TCP HTTPS เว็บเซิร์ฟเวอร์ที่ปลอดภัย Windows Update
3389 TCP RDP Remote Desktop Protocol การบริหารจัดการระยะไกล
445 TCP SMB การแชร์ไฟล์ การแชร์เครือข่าย Windows
22 TCP SSH OpenSSH (สร้างเข้ามาใน Windows 10/11)
21 TCP FTP การถ่ายโอนไฟล์ บริการ IIS FTP
25 TCP SMTP การส่งอีเมล การส่งเซิร์ฟเวอร์เมล
3306 TCP MySQL การเชื่อมต่อฐานข้อมูล MySQL/MariaDB
5432 TCP PostgreSQL การเชื่อมต่อฐานข้อมูล PostgreSQL
135 TCP RPC Windows Remote Procedure Call, DCOM
พอร์ต 3389 (RDP) เป็นหนึ่งในพอร์ตที่ถูกโจมตีด้วยกำลังบ้าคลั่งมากที่สุดบนอินเทอร์เน็ต หากคุณเปิด RDP ต่อสาธารณะอินเทอร์เน็ต ให้พิจารณาย้ายไปยังพอร์ตที่ไม่ใช่มาตรฐานหรือจำกัดการเข้าถึงโดยที่อยู่ IP ในกฎไฟร์วอลล์ของคุณ

ปิดพอร์ตที่คุณไม่ต้องการ

การตรวจสอบพอร์ต Windows ที่ดีไม่ใช่เพียงเรื่องการค้นหาว่าเปิดอยู่ มันเกี่ยวกับการตัดสินใจว่าควรเปิดอะไรและปิดทุกอย่างอื่นๆ นี่คือวิธีการปฏิบัติจริง:

  1. เรียกใช้ netstat -ano และแสดงรายการพอร์ต LISTENING ทั้งหมด แมป PID แต่ละรายการไปยังชื่อกระบวนการโดยใช้คำสั่ง tasklist ที่แสดงไว้ก่อนหน้านี้
  2. ระบุบริการที่คุณไม่ต้องการ ตัวอย่างเช่น หากคุณไม่ได้ใช้ IIS ก็ไม่มีเหตุผลว่าทำไมพอร์ต 80 หรือ 443 ควรเปิดในเครื่อง หยุดบริการผ่าน services.msc
  3. ตรวจสอบกฎขาเข้า Windows Firewall เปิด wf.msc และปิดใช้งานกฎใดๆ ที่อนุญาตการรับส่งข้อมูลไปยังพอร์ตที่คุณระบุว่าไม่จำเป็น
  4. ตรวจสอบเราเตอร์ของคุณ กฎการส่งต่อพอร์ตบนเราเตอร์ของคุณสามารถเปิดเผยพอร์ตแม้ว่า Windows Firewall จะบล็อกมันที่ระดับ OS ก็ตาม เข้าสู่แผงควบคุมผู้ดูแลเราเตอร์ของคุณและตรวจสอบพอร์ตที่ส่งต่อ
  5. ทดสอบอีกครั้งจากภายนอก หลังจากทำการเปลี่ยนแปลง ให้เรียกใช้การตรวจสอบพอร์ตภายนอกอีกครั้งเพื่อยืนยันว่าพอร์ตไม่สามารถเข้าถึงได้อีกต่อไป

คำเตือนด้านไซเบอร์ CISA เผยแพร่การแจ้งเตือนเป็นประจำเกี่ยวกับพอร์ตเฉพาะที่ถูกใช้ประโยชน์ในการทำงาน การตรวจสอบรายการนั้นเป็นระยะๆ เป็นนิสัยที่ดีหากคุณจัดการเซิร์ฟเวอร์ Windows

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

สิ่งนี้เกิดจากสาเหตุหนึ่งในสามอย่าง Windows Firewall มีกฎขาเข้าที่บล็อกพอร์ต เราเตอร์ของคุณไม่มีกฎการส่งต่อพอร์ตสำหรับพอร์ตนั้น หรือ ISP ของคุณบล็อกพอร์ตที่ระดับเครือข่าย ตรวจสอบแต่ละชั้นตามลำดับ พอร์ตที่ ISP บล็อกทั่วไป ได้แก่ 25 (SMTP) 80 และ 443 บนการเชื่อมต่อที่อยู่อาศัย

การเปิดเผย RDP โดยตรงต่ออินเทอร์เน็ตเป็นความเสี่ยงด้านความปลอดภัยที่สำคัญ บอท อัตโนมัติจะสแกนพอร์ต 3389 ที่เปิดอยู่อย่างต่อเนื่องและพยายามเข้าสู่ระบบด้วยการโจมตี brute-force หากคุณต้องการการเข้าถึงระยะไกล ให้ใช้ VPN เพื่อไปยังเครือข่ายของคุณก่อน จำกัดการเข้าถึง RDP ไปยังที่อยู่ IP เฉพาะใน Windows Firewall หรือใช้พอร์ตที่ไม่ใช่มาตรฐานรวมกับรหัสผ่านที่แข็งแรงและการตรวจสอบสิทธิ์ระดับเครือข่าย (NLA)

Netstat แสดงพอร์ต UDP เมื่อคุณใช้แฟลก -a ค้นหาแถวที่มีป้ายกำกับ UDP ในคอลัมน์ Proto อย่างไรก็ตาม UDP ไม่มี handshake การเชื่อมต่อเหมือน TCP ดังนั้นจึงยากกว่ามากที่จะทดสอบจากระยะไกล เครื่องมือตรวจสอบพอร์ตออนไลน์ส่วนใหญ่ รวมถึงเครื่องมือที่ใช้ TCP ทดสอบเฉพาะการเชื่อมต่อ TCP สำหรับการสแกน UDP Nmap ที่มีแฟลก -sU เป็นตัวเลือกที่ปฏิบัติได้ แม้ว่าจะต้องมีสิทธิ์ผู้ดูแลระบบก็ตาม

เปิด wf.msc คลิก "Inbound Rules" จากนั้นคลิก "New Rule" ทางด้านขวา เลือก "Port" เลือก TCP หรือ UDP ป้อนหมายเลขพอร์ต เลือก "Allow the connection" ใช้กับโปรไฟล์ที่เหมาะสม (Domain, Private, Public) และตั้งชื่อกฎ สำหรับแฟนบรรทัดคำสั่ง ให้ใช้: netsh advfirewall firewall add rule name="MyPort" dir=in action=allow protocol=TCP localport=8080

Timeout หมายความว่าเครื่องมือตรวจสอบพอร์ตส่งคำขอการเชื่อมต่อ TCP แต่ไม่ได้รับการตอบกลับภายในระยะเวลารอ (โดยปกติสองสามวินาที) โดยปกติหมายความว่า firewall กำลังทิ้งแพ็กเก็ตอย่างเงียบๆ แทนที่จะปฏิเสธอย่างแข็งขัน ผลลัพธ์ "Closed" หมายความว่าโฮสต์ส่งกลับการรีเซ็ต TCP ซึ่งปฏิเสธการเชื่อมต่ออย่างแข็งขัน Timeout เป็นเรื่องปกติมากขึ้นกับการกำหนดค่า firewall ที่เข้มงวดซึ่งทิ้งแทนที่จะปฏิเสธการรับส่งข้อมูล