เปลี่ยน Port Remote Desktop (RDP) บน Windows Server
Remote Desktop (RDP) บน Windows Server ใช้พอร์ต TCP 3389 เป็นค่าเริ่มต้น ซึ่งเป็นพอร์ตที่บอตบนอินเทอร์เน็ตสแกนหาอยู่ตลอดเวลา เมื่อเปิด Event Viewer ของเซิร์ฟเวอร์ที่เปิด 3389 สู่สาธารณะ มักจะเห็นการพยายามล็อกอินที่ล้มเหลว (Event ID 4625) จำนวนมากทุกวัน การย้าย RDP ไปใช้พอร์ตอื่นช่วยลดการสแกนแบบอัตโนมัติและทำให้ Log สะอาดขึ้นได้มาก
อย่างไรก็ตาม การเปลี่ยนพอร์ตไม่ใช่มาตรการรักษาความปลอดภัยหลัก เป็นเพียงการลดสัญญาณรบกวน ควรใช้ร่วมกับรหัสผ่านที่แข็งแรง การเปิด Network Level Authentication (NLA) และถ้าเป็นไปได้ ให้จำกัดให้เชื่อมต่อได้เฉพาะ IP ของสำนักงาน บทความนี้อธิบายวิธีเปลี่ยนพอร์ตอย่างปลอดภัยโดยไม่ทำให้ตัวเองเข้าเซิร์ฟเวอร์ไม่ได้
สิ่งที่ต้องเตรียม
- Windows Server 2019 หรือ 2022 ที่เข้าใช้งานผ่าน RDP ได้อยู่แล้ว
- บัญชีที่อยู่ในกลุ่ม Administrators
- ช่องทางสำรองในการเข้าเครื่อง เช่น Console ผ่านหน้าเว็บ (ดู การ Remote เข้า Console Server ผ่าน Web UI) เผื่อกรณีเชื่อมต่อพอร์ตใหม่ไม่ได้
- หมายเลขพอร์ตใหม่ที่จะใช้ แนะนำให้เลือกในช่วง 1024-65535 ที่ไม่มีโปรแกรมอื่นใช้อยู่ เช่น 3390 หรือ 43389 หลีกเลี่ยงพอร์ตที่บริการอื่นใช้กันทั่วไป เช่น 8080, 8443, 5985
หมายเหตุ: ลำดับขั้นตอนในบทความนี้สำคัญมาก ต้องเปิด Firewall สำหรับพอร์ตใหม่ ก่อน เปลี่ยนพอร์ตและรีสตาร์ตบริการ ถ้าสลับลำดับ จะถูกตัดการเชื่อมต่อและเข้าพอร์ตใหม่ไม่ได้ ต้องไปแก้ผ่าน Console แทน
ขั้นตอนที่ 1: ตรวจสอบพอร์ตปัจจุบันและพอร์ตที่จะใช้
เปิด Windows PowerShell แบบ Run as Administrator แล้วดูพอร์ต RDP ปัจจุบัน
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber
ผลลัพธ์จะมีบรรทัด PortNumber : 3389 จากนั้นตรวจว่าพอร์ตใหม่ (ตัวอย่างนี้ใช้ 3390) ยังไม่มีโปรแกรมใดใช้อยู่
Get-NetTCPConnection -LocalPort 3390 -ErrorAction SilentlyContinue
ถ้าคำสั่งไม่แสดงอะไรเลย แปลว่าพอร์ตว่าง ใช้ได้
ขั้นตอนที่ 2: เปิด Windows Firewall สำหรับพอร์ตใหม่
RDP ใช้ทั้ง TCP และ UDP (UDP ช่วยให้ภาพลื่นขึ้นบนเครือข่ายที่ช้า) ให้สร้างกฎรับเข้าทั้งสองโปรโตคอล
New-NetFirewallRule -DisplayName "RDP TCP 3390" -Direction Inbound -Protocol TCP -LocalPort 3390 -Action Allow
New-NetFirewallRule -DisplayName "RDP UDP 3390" -Direction Inbound -Protocol UDP -LocalPort 3390 -Action Allow
แต่ละคำสั่งจะแสดงรายละเอียดกฎที่สร้าง โดยมี Enabled : True และ Action : Allow
ถ้าต้องการจำกัดให้เชื่อมต่อได้เฉพาะ IP ของสำนักงาน ให้เพิ่มพารามิเตอร์ -RemoteAddress เช่น
New-NetFirewallRule -DisplayName "RDP TCP 3390 Office" -Direction Inbound -Protocol TCP -LocalPort 3390 -RemoteAddress 203.0.113.10 -Action Allow
หากเซิร์ฟเวอร์มี Security Group หรือ Firewall ภายนอกจากฝั่งผู้ให้บริการ ให้เปิดพอร์ตนั้นเพิ่มด้วย รายละเอียดการจัดการกฎ Firewall ดูเพิ่มได้ที่ เปิด Port บน Windows Defender Firewall
ขั้นตอนที่ 3: เปลี่ยนพอร์ตใน Registry
ค่าพอร์ตของ RDP เก็บอยู่ใน Registry ที่ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp ค่า PortNumber (ชนิด DWORD) แก้ได้ด้วย PowerShell
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value 3390
คำสั่งนี้ไม่แสดงผลลัพธ์ถ้าสำเร็จ ตรวจซ้ำด้วยคำสั่งในขั้นตอนที่ 1 ควรเห็น PortNumber : 3390
ถ้าถนัดใช้หน้าจอ ให้เปิด regedit ไปที่ Key ข้างต้น ดับเบิลคลิก PortNumber เลือก Decimal ก่อน แล้วพิมพ์ 3390 จากนั้นกด OK (ถ้าลืมเลือก Decimal ค่าจะถูกตีความเป็นเลขฐานสิบหก และได้พอร์ตผิด)
ขั้นตอนที่ 4: รีสตาร์ตบริการ Remote Desktop
พอร์ตใหม่จะมีผลหลังรีสตาร์ตบริการ Remote Desktop Services (TermService) หรือรีบูตเครื่อง การรีสตาร์ตบริการจะตัดการเชื่อมต่อ RDP ปัจจุบันทันที ให้ตรวจอีกครั้งว่าทำขั้นตอนที่ 2 แล้ว จากนั้นรัน
Restart-Service -Name TermService -Force
หน้าต่าง RDP จะหลุด ซึ่งเป็นเรื่องปกติ ถ้าไม่สะดวกรีสตาร์ตบริการ ใช้ Restart-Computer แทนได้
ขั้นตอนที่ 5: เชื่อมต่อด้วยพอร์ตใหม่
ที่เครื่องของคุณ เปิด Remote Desktop Connection (mstsc) แล้วใส่ที่อยู่ในรูปแบบ IP:พอร์ต เช่น
mstsc /v:203.0.113.25:3390
บน macOS ที่ใช้แอป Windows App (ชื่อเดิม Microsoft Remote Desktop) ให้ใส่ 203.0.113.25:3390 ในช่อง PC name ได้เช่นกัน
ขั้นตอนที่ 6: ปิดกฎ Firewall ของพอร์ตเดิม
เมื่อเข้าพอร์ตใหม่ได้แล้ว จึงค่อยปิดกฎเดิมของ 3389 เพื่อไม่ให้มีช่องที่ไม่ได้ใช้เปิดค้างไว้ กฎที่ Windows สร้างมาให้อยู่ในกลุ่ม Remote Desktop
Get-NetFirewallRule -DisplayGroup "Remote Desktop" | Select-Object DisplayName, Enabled
Disable-NetFirewallRule -DisplayGroup "Remote Desktop"
ข้อควรรู้: ถ้าภายหลังมีการเปิด Remote Desktop ใหม่ผ่าน Server Manager หรือ Settings ระบบอาจเปิดกฎกลุ่มนี้กลับมา ให้ตรวจซ้ำหลังเปลี่ยนการตั้งค่า
ตรวจสอบผลลัพธ์
- บนเซิร์ฟเวอร์ ตรวจว่ามีบริการรอรับการเชื่อมต่อที่พอร์ตใหม่
ควรเห็นอย่างน้อยหนึ่งบรรทัดที่มีGet-NetTCPConnection -LocalPort 3390 -State ListenLocalPort 3390และสถานะListen - จากเครื่อง Windows ภายนอก ทดสอบว่าพอร์ตเข้าถึงได้
บรรทัดTest-NetConnection -ComputerName 203.0.113.25 -Port 3390TcpTestSucceeded : Trueแปลว่าเข้าถึงได้ - ทดสอบว่าพอร์ต 3389 ไม่ตอบแล้ว ผลของคำสั่งเดียวกันกับพอร์ต 3389 ควรเป็น
False
ปัญหาที่พบบ่อย
เชื่อมต่อพอร์ตใหม่ไม่ได้หลังรีสตาร์ตบริการ
สาเหตุที่พบมากที่สุดคือยังไม่ได้เปิด Firewall ของ Windows หรือ Firewall ภายนอกจากฝั่งผู้ให้บริการ ให้เข้าผ่าน Console แล้วตรวจกฎด้วย Get-NetFirewallRule -DisplayName "RDP*" หรือถ้าต้องการย้อนกลับชั่วคราว ให้ตั้ง PortNumber กลับเป็น 3389 เปิดกลุ่มกฎ Enable-NetFirewallRule -DisplayGroup "Remote Desktop" แล้วรีสตาร์ต TermService
ตั้งค่าใน regedit แล้วได้พอร์ตแปลก
เกิดจากใส่ค่าในโหมด Hexadecimal เช่นพิมพ์ 3390 ในโหมด Hex จะได้พอร์ต 13200 ให้แก้ใหม่โดยเลือก Decimal หรือใช้คำสั่ง PowerShell ในขั้นตอนที่ 3
เชื่อมต่อได้จากบางเครือข่ายเท่านั้น
เครือข่ายองค์กรบางแห่งอนุญาตให้ออกได้เฉพาะพอร์ตมาตรฐาน ถ้าจากออฟฟิศเข้าไม่ได้แต่จากเน็ตมือถือเข้าได้ ให้ตรวจกับผู้ดูแลเครือข่ายฝั่งออฟฟิศ หรือเลือกพอร์ตที่เครือข่ายนั้นอนุญาต
ยังเห็นการพยายามล็อกอินล้มเหลวจำนวนมาก
บอตบางตัวสแกนทุกพอร์ต การเปลี่ยนพอร์ตจึงลดได้แต่ไม่หมด ทางแก้ที่ได้ผลกว่าคือจำกัด -RemoteAddress ในกฎ Firewall ให้เหลือเฉพาะ IP ที่ใช้งานจริง และตั้ง Account Lockout Policy ใน Local Security Policy (secpol.msc) ที่ Account Policies > Account Lockout Policy
หากทำตามขั้นตอนแล้วยังเชื่อมต่อไม่ได้ หรือไม่แน่ใจว่าควรใช้พอร์ตใด ติดต่อทีมงาน THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/
- Categories:
- Cloud
- Tags:
- Cloud
- Cloud Server
Related Posts
หมวดหมู่ที่น่าสนใจ
- Account Settings
- AD Server
- AI
- Alibaba Cloud
- Anti-Spam Gateway
- AWS Amazon Web Services
- Campaign
- CentOS/AlmaLinux
- Cloud
- Cloud Backup
- Cloud Communication
- Cloud Migration
- Cloud Security
- Cloud Server Management
- Cloud Solution
- Cloud Solution for Government
- Cloud Solutions by Industry
- Cloud Storage
- Cloud VPS App Plus +
- Cloud VPS DirectAdmin
- Cloud VPS Plesk
- CSR
- Cyber Security
- Cybersecurity
- Data Sovereignty
- Database Server
- DDoS
- Digital Tranformation
- Digital Transformation
- Direct Mail
- Directadmin
- Domainname
- Ecommerce
- ERP
- Generative AI
- Getting Started
- Google Cloud
- Google G Suite
- Huawei Cloud
- IT News
- Linux Server
- Managed Cloud Services
- Managed Service Provider
- Manual
- Microsoft
- Microsoft 365
- Microsoft Azure
- News
- On-premise
- Private Mail Server
- Promotion
- Recommend Solution (Enterprise)
- Server
- Sovereign Cloud
- THAI DATA CLOUD Platform
- Ubuntu
- Ubuntu
- Uncategorized
- VMware
- VPS Server
- Web Design
- Web Hosting
- Web Hosting (DirectAdmin)
- Web Hosting (Plesk)
- Web Technologies
- Windows Server
- Wordpress
- Zimbra
- เรื่องราวความประทับใจ
- โซลูชันสำหรับธุรกิจการผลิตและยานยนต์
- โซลูชันสำหรับธุรกิจการศึกษา
- โซลูชันสำหรับธุรกิจการเงิน
- โซลูชันสำหรับธุรกิจขนส่งและกระจายสินค้า
- โซลูชันสำหรับธุรกิจค้าปลีก
- โซลูชันสำหรับธุรกิจท่องเที่ยว
- โซลูชันสำหรับธุรกิจบริการสุขภาพและโรงพยาบาล
- โซลูชันสำหรับธุรกิจประกันภัย
- โซลูชันสำหรับธุรกิจพลังงานและสาธารณูปโภค
- โซลูชันสำหรับธุรกิจสื่อสารมวลชนและเอ็นเตอร์เทนเมนท์
- โซลูชันสำหรับธุรกิจอสังหาริมทรัพย์
- โซลูชันสำหรับธุรกิจเทคโนโลยี


