Đổi port Remote Desktop trên Windows Server an toàn
Hướng dẫn VPS Hosting & Máy chủ · cập nhật 06/08/2026
Đổi port Remote Desktop trên Windows Server là sửa một giá trị trong Registry và mở cổng mới trên tường lửa, mất khoảng 10 phút. Việc này giảm lượng dò quét tự động nhắm vào cổng 3389 mặc định.
Làm sai thứ tự là mất kết nối máy chủ. Nếu bạn đổi Registry rồi khởi động lại mà chưa mở cổng mới trên tường lửa, máy sẽ nghe ở cổng mới còn tường lửa chỉ cho qua cổng cũ, không phiên nào vào được nữa. Với máy chủ đặt ở xa và không có KVM IP, đó là mất quyền truy cập hoàn toàn. Luôn mở cổng trên tường lửa TRƯỚC, và giữ một phiên Remote Desktop đang mở trong lúc thử phiên mới.
Cổng 3389 là cổng đầu tiên mà mọi bot dò quét trên Internet gõ vào. Đổi sang cổng khác không thay được mật khẩu yếu, nhưng cắt được phần lớn lưu lượng brute force tự động và làm nhật ký đăng nhập sạch hơn nhiều.
- Chọn số cổng mới và kiểm tra chưa dịch vụ nào chiếm.
- Mở cổng đó trên Windows Firewall cho cả TCP và UDP.
- Sửa giá trị
PortNumbertrong Registry. - Khởi động lại dịch vụ Remote Desktop hoặc cả máy chủ.
- Mở phiên thử ở cổng mới trong lúc phiên cũ vẫn đang chạy.
- Cấu hình chuyển tiếp cổng trên router nếu máy chủ nằm sau NAT.
Chọn số port Remote Desktop nào cho an toàn
Chọn một cổng trong khoảng 49152 tới 65535, đây là dải cổng động mà không dịch vụ chuẩn nào chiếm. Tránh các cổng quen thuộc như 3390, 3391 vì bot đã bổ sung chúng vào danh sách dò từ lâu. Tránh luôn cổng đang có dịch vụ khác nghe, nếu không dịch vụ Remote Desktop sẽ không khởi động được.
Kiểm tra cổng đã bị chiếm chưa bằng PowerShell, chạy với quyền quản trị:
Get-NetTCPConnection -LocalPort 52389 -ErrorAction SilentlyContinue
Không có dòng nào trả về nghĩa là cổng đang trống. Trong bài này lấy 52389 làm ví dụ, bạn thay bằng số của mình ở mọi lệnh phía dưới.
Mở cổng trên tường lửa trước khi đổi Registry
Đây là bước phải làm đầu tiên, không được đảo thứ tự. Windows Firewall chỉ có sẵn luật cho cổng 3389, nên khi dịch vụ chuyển sang cổng mới mà chưa có luật tương ứng thì mọi kết nối tới bị chặn ngay ở tường lửa, trước cả khi tới được dịch vụ.
Mở PowerShell với quyền quản trị rồi chạy hai lệnh sau, tạo luật cho TCP và UDP:
$portvalue = 52389
New-NetFirewallRule -DisplayName 'RDP-Port-Moi-TCP-In' -Profile 'Any' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue
New-NetFirewallRule -DisplayName 'RDP-Port-Moi-UDP-In' -Profile 'Any' -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue
Kiểm lại luật vừa tạo có đúng không:
Get-NetFirewallRule -DisplayName 'RDP-Port-Moi-*' | Get-NetFirewallPortFilter
Cách đổi port Remote Desktop bằng Registry Editor
Giá trị điều khiển cổng nghe của Remote Desktop nằm ở một khoá duy nhất trong Registry. Bạn mở khoá đó, đổi kiểu hiển thị sang thập phân rồi nhập số cổng mới. Cách này làm bằng giao diện, hợp khi bạn muốn nhìn thấy giá trị hiện tại trước lúc sửa.
1. Sao lưu khoá Registry
Trước khi sửa, xuất khoá ra file để có đường lùi. Chạy trong Command Prompt quyền quản trị:
reg export "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" C:\rdp-tcp-backup.reg
2. Mở Registry Editor
Bấm Windows + R, gõ regedit rồi bấm Enter.
3. Tới đúng khoá
Đi theo đường dẫn:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
4. Sửa giá trị PortNumber
Bấm đúp vào PortNumber ở khung bên phải. Ở mục Base, chọn Decimal. Nếu để nguyên Hexadecimal, giá trị 3389 hiện thành d3d và bạn dễ nhập nhầm.
Nhập số cổng mới vào ô Value data rồi bấm OK.
5. Khởi động lại dịch vụ
Không cần khởi động lại cả máy chủ. Khởi động lại riêng dịch vụ Remote Desktop bằng PowerShell quyền quản trị:
Restart-Service -Name TermService -Force
Lệnh này ngắt phiên Remote Desktop hiện tại của bạn. Nếu bạn đang ngồi từ xa và chưa chắc cổng mới thông, hãy khởi động lại máy chủ thay vì chạy lệnh này, để có khoảng thời gian máy tự lên lại.
Đổi port bằng PowerShell trong một lượt
Cách này gộp mở tường lửa và sửa Registry vào một khối lệnh, hợp khi bạn phải làm trên nhiều máy chủ. Thứ tự trong khối vẫn giữ nguyên nguyên tắc: hai lệnh tường lửa chạy trước, lệnh sửa Registry chạy sau. Mở PowerShell với quyền quản trị rồi dán cả khối.
$portvalue = 52389
New-NetFirewallRule -DisplayName 'RDPPORTLatest-TCP-In' -Profile 'Any' -Direction Inbound -Action Allow -Protocol TCP -LocalPort $portvalue
New-NetFirewallRule -DisplayName 'RDPPORTLatest-UDP-In' -Profile 'Any' -Direction Inbound -Action Allow -Protocol UDP -LocalPort $portvalue
Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "PortNumber" -Value $portvalue
Đọc lại giá trị vừa ghi để chắc chắn đã vào đúng khoá:
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name "PortNumber"
Sau đó khởi động lại máy chủ để thiết lập có hiệu lực.
Kiểm tra cổng mới đã thông trước khi đóng phiên cũ
Đừng đóng phiên Remote Desktop đang mở cho tới khi phiên ở cổng mới vào được. Cách an toàn là mở một cửa sổ Remote Desktop thứ hai trỏ tới cổng mới, trong lúc cửa sổ cũ vẫn còn. Vào được thì mới đóng phiên cũ và xoá luật tường lửa cho cổng 3389.
Trên máy chủ, kiểm tra dịch vụ đã nghe đúng cổng chưa:
netstat -ano | findstr :52389
Từ máy của bạn, thử kết nối bằng địa chỉ IP kèm dấu hai chấm và số cổng, ví dụ 203.0.113.10:52389. Kiểm tra cổng có mở từ bên ngoài không bằng PowerShell trên máy trạm:
Test-NetConnection -ComputerName 203.0.113.10 -Port 52389
Dòng TcpTestSucceeded : True nghĩa là đường đã thông. Vào được rồi thì tắt luật cho cổng cũ:
Get-NetFirewallRule -DisplayName '*Remote Desktop*' | Where-Object {$_.Enabled -eq 'True'} | Disable-NetFirewallRule
Lấy lại quyền truy cập khi mất kết nối
Nếu đã lỡ đổi Registry mà chưa mở tường lửa và giờ không vào được, bạn còn ba đường vào tuỳ hạ tầng đang có. Không đường nào trong đó làm được qua Remote Desktop, nên phải dùng kênh khác.
| Đường vào | Điều kiện | Việc cần làm |
|---|---|---|
| KVM IP hoặc console máy ảo | Máy chủ vật lý có iLO, iDRAC, hoặc VPS có console web | Vào màn hình máy, mở PowerShell, thêm luật tường lửa cho cổng mới |
| PowerShell Remoting | Cổng 5985 hoặc 5986 đang mở và WinRM đang bật | Chạy Enter-PSSession từ máy khác trong mạng rồi thêm luật |
| Yêu cầu kỹ thuật can thiệp | Máy chủ thuê tại nhà cung cấp | Gửi ticket nêu rõ cổng mới cần mở |
Máy chủ thuê tại BizMaC dùng được KVM IP để vào thẳng màn hình máy khi mất Remote Desktop, làm theo hướng dẫn sử dụng KVM IP. Không tự vào được thì gửi yêu cầu hỗ trợ qua ticket kèm số cổng mới để kỹ thuật mở giúp.
Những việc nên làm cùng lúc với đổi port Remote Desktop
Đổi cổng chỉ cắt được lưu lượng dò quét tự động, không chặn được ai đã biết cổng mới. Bốn việc dưới đây mới thật sự giảm rủi ro cho Remote Desktop, và nên làm ngay trong cùng lần bảo trì để khỏi phải dừng máy thêm lần nữa.
- Giới hạn luật tường lửa cho cổng mới chỉ nhận từ dải IP văn phòng, thay vì mở ra toàn Internet.
- Đặt chính sách khoá tài khoản sau vài lần nhập sai mật khẩu.
- Bật Network Level Authentication để máy chủ đòi xác thực trước khi dựng phiên đồ hoạ.
- Dựng VPN rồi đóng hẳn Remote Desktop khỏi Internet, đây là cách kín nhất.
Nếu máy chủ nằm sau router, tạo luật chuyển tiếp cổng từ cổng mới bên ngoài về đúng cổng đó trên IP nội bộ của máy. Một mẹo nhỏ là đặt cổng ngoài khác cổng trong, ví dụ ngoài 58120 chuyển về trong 52389, để lộ ra ngoài càng ít thông tin càng tốt.