Computer >> คอมพิวเตอร์ >  >> ระบบ >> Windows

แก้ไขปัญหา Port Exhaustion ใน Windows 11/10

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

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

พอร์ตหมดแรงใน Windows 11/10

แก้ไขปัญหา Port Exhaustion ใน Windows 11/10

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

อาการระบุพอร์ตหมดแรง:

1] ไม่สามารถลงชื่อเข้าใช้เครื่องด้วยข้อมูลรับรองโดเมน แต่การลงชื่อเข้าใช้ด้วยบัญชีท้องถิ่นใช้งานได้ เป็นไปได้ว่าบัญชีที่ใช้แล้วอาจใช้งานได้ แต่บัญชีใหม่จะล้มเหลว มันเกิดขึ้นเนื่องจากการแคช

2] การอัปเดตนโยบายกลุ่มจะเริ่มล้มเหลว ทุกครั้งที่คุณลองทำการเปลี่ยนแปลง คุณอาจได้รับข้อผิดพลาดว่า “ล้มเหลวเนื่องจากขาดการเชื่อมต่อเครือข่ายกับตัวควบคุมโดเมน” อาจเป็นเพียงชั่วคราว แต่เป็นสัญญาณ

3] ไม่สามารถเข้าถึงการแชร์ไฟล์หรือไดรฟ์เครือข่ายได้

4] เดสก์ท็อประยะไกลไปยังเซิร์ฟเวอร์ที่โฮสต์แอปพลิเคชันล้มเหลว

สัญญาณอื่นๆ รวมถึงรหัสเหตุการณ์ 4227, 4231 ในตัวแสดงเหตุการณ์สำหรับ TCP พร้อมข้อความว่าการจัดสรรพอร์ตแบบไดนามิกล้มเหลว คำสั่ง NetStat แสดงรายการจำนวนมากสำหรับสถานะ TIME_WAIT สำหรับแอปพลิเคชันเฉพาะ และอื่นๆ

ใช้ NetStat สำหรับ Windows 11/10 และ Windows Server

เปิด Command Prompt พร้อมรับสิทธิ์ยกระดับ

รันคำสั่ง:

netstat -anobq

ถัดไป ตรวจสอบ ID กระบวนการที่มีรายการสูงสุดเป็น BOUND

หากคุณใช้ PowerShell คุณสามารถใช้คำสั่งด้านล่างเพื่อระบุกระบวนการที่มีขอบเขตสูงสุด

Get-NetTCPConnection | Group-Object -Property State, OwningProcess | Select -Property Count, Name, @{Name="ProcessName";Expression={(Get-Process -PID ($_.Name.Split(',')[-1].Trim(' '))).Name}}, Group | Sort Count -Descendin

หลายครั้งที่ไคลเอนต์ปิดพอร์ตไม่ถูกต้อง แม้จะไม่ได้ใช้งาน พอร์ตเหล่านี้ก็ไม่ฟรี เป็นสาเหตุสำคัญประการหนึ่งที่ทำให้พอร์ตหมดแรง

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

@ECHO ON
set v=%1
:loop
set /a v+=1
ECHO %date% %time% >> netstat.txt
netstat -ano >> netstat.txt

PING 1.1.1.1 -n 1 -w 60000 >NUL

goto loop

ใช้ตัวจัดการงานเพื่อค้นหาหมายเลขอ้างอิงสูงสุด

แก้ไขปัญหา Port Exhaustion ใน Windows 11/10

วิธีที่เป็นธรรมชาติกว่าเล็กน้อยในการค้นหาแอปพลิเคชันดังกล่าวคือการใช้ตัวจัดการงาน แม้ว่า PowerShell และ Command Prompts จะมีข้อดีของตัวเอง แต่ถ้าคุณต้องการเห็นกระบวนการนี้อย่างรวดเร็ว วิธีนี้เป็นวิธีที่ดีกว่า

  • เปิดตัวจัดการงาน และสลับไปที่ แท็บรายละเอียด .
  • คลิกขวาที่คอลัมน์ใดก็ได้ แล้วคลิก “เลือกคอลัมน์ ."
  • เพิ่ม “Handles” จากตัวเลือกที่มี
  • คลิกที่ส่วนหัวของคอลัมน์แฮนเดิลเพื่อจัดเรียงตามจำนวนสูงสุด

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

ตัวสำรวจกระบวนการ

แก้ไขปัญหา Port Exhaustion ใน Windows 11/10

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

  1. คลิกขวาที่ส่วนหัวของคอลัมน์ แล้วเลือก "เลือกคอลัมน์"
  2. สลับไปที่แท็บประสิทธิภาพ และเพิ่ม Handle Count .
  3. จากเมนู ให้คลิก  มุมมอง> แสดงบานหน้าต่างด้านล่าง .
  4. คลิกที่เมนูอีกครั้ง เลือก มุมมอง> มุมมองบานหน้าต่างด้านล่าง> แฮนเดิล .
  5. เรียงลำดับแฮนเดิลจากมากไปหาน้อย
  6. มันจะเปิดเผยกระบวนการที่มีจำนวนแฮนเดิลสูงสุด
  7. คลิกเพื่อไฮไลต์หนึ่งในกระบวนการที่มีจำนวนแฮนเดิลสูงสุด
  8. แผงด้านล่างจะแสดงประเภทของที่จับทั้งหมด พอร์ตหรือซ็อกเก็ตมักจะมีป้ายกำกับ “File \Device\AFD”

ปิดกระบวนการด้วยหมายเลขอ้างอิงจำนวนมาก หากแอปพลิเคชันกลับมา อาจเป็นสาเหตุ และคุณจะต้องแก้ไขแอปพลิเคชันหรือขอให้นักพัฒนาซอฟต์แวร์ของ OEM แก้ไข หากคุณไม่สามารถแก้ไขได้เนื่องจากแอปพลิเคชันต้องการ คุณควรพิจารณาเพิ่มจำนวนพอร์ตที่คอมพิวเตอร์สามารถใช้ได้ คำสั่งด้านล่าง (ตัวอย่าง) สามารถเปลี่ยนช่วงและเพิ่มได้

netsh int ipv4 set dynamicport tcp start=10000 num=1000

พอร์ตเริ่มต้นขั้นต่ำที่สามารถตั้งค่าได้คือ 1025 พอร์ตสิ้นสุดสูงสุดต้องไม่เกิน 65535

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

แก้ไขปัญหา Port Exhaustion ใน Windows 11/10