TDCLOUD  ·  0%
Hướng Dẫn

Cách đổi port Remote Desktop (3389) trên VPS Windows Server

C
Cố Tổng
06/10/2026
3 lượt xem

Mặc định, Remote Desktop (RDP) trên mọi VPS Windows đều nhận kết nối ở port 3389. Vì ai cũng biết con số này, các công cụ dò mật khẩu tự động trên Internet gõ cửa port 3389 suốt ngày đêm. Bài viết này hướng dẫn bạn đổi port Remote Desktop sang một port khác trên VPS Windows Server 2012 R2, 2016, 2019 và 2022, theo đúng thứ tự để không tự khoá mình ra ngoài.

Bạn có thể chọn một trong hai cách: chạy 4 lệnh PowerShell (nhanh, khuyên dùng) hoặc thao tác bằng giao diện Registry Editor và Windows Firewall.

Tóm tắt các bước

  1. Chọn port mới và kiểm tra port đó đang trống.
  2. Ghi port mới vào registry (khoá RDP-Tcp, giá trị PortNumber).
  3. Mở port mới trên tường lửa Windows (TCP và UDP).
  4. Khởi động lại dịch vụ Remote Desktop.
  5. Kết nối lại bằng IP:port-mới và kiểm tra.

Quan trọng: luôn mở tường lửa (bước 3) trước khi khởi động lại dịch vụ (bước 4). Nếu làm ngược lại, dịch vụ chuyển sang port mới nhưng tường lửa vẫn chặn, bạn sẽ không vào lại được VPS bằng Remote Desktop.

Đổi port Remote Desktop có thực sự cần thiết?

Đổi port không làm VPS "bất khả xâm phạm", nhưng giúp ích rõ rệt:

  • Giảm lượng dò mật khẩu tự động: phần lớn bot chỉ quét port 3389. Khi đổi port, nhật ký đăng nhập thất bại (Event ID 4625) thường giảm hẳn.
  • Bớt tốn tài nguyên: mỗi lần bot thử đăng nhập đều tốn CPU và băng thông của VPS.

Đổi port không thay thế cho mật khẩu mạnh. Hãy dùng mật khẩu dài từ 12 ký tự trở lên, có chữ hoa, chữ thường, số và ký tự đặc biệt. Nếu cần đổi mật khẩu VPS, xem hướng dẫn quản lý VPS tại TDCLOUD.

Bước 1: Chọn port mới và kiểm tra port còn trống

Chọn một số trong khoảng 1025 – 49151, ví dụ 45821 như trong bài. Nên tránh:

  • Các port quen thuộc của dịch vụ khác: 21, 22, 25, 80, 443, 1433, 3306, 5900, 8080, 8443…
  • Các biến thể dễ đoán như 3390, 3388, 33890: bot cũng hay thử những port này.
  • Khoảng 49152 – 65535: Windows dùng dải này cho kết nối tạm thời (ephemeral port), dễ bị trùng.

Hãy ghi port mới ra giấy hoặc trình quản lý mật khẩu trước khi làm tiếp.

Kết nối vào VPS bằng Remote Desktop như bình thường (nếu chưa biết cách, xem hướng dẫn kết nối VPS Windows bằng Remote Desktop). Bấm chuột phải vào nút Start, chọn Windows PowerShell (Admin); trên Windows Server 2022 có thể chọn Terminal (Admin) hoặc tìm "PowerShell" rồi chọn Run as administrator. Sau đó chạy hai lệnh:

Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber | Select-Object PortNumber
netstat -ano | findstr :45821
PowerShell hiển thị port Remote Desktop hiện tại là 3389 và lệnh netstat xác nhận port 45821 còn trống
Lệnh đầu cho biết port đang dùng (3389). Lệnh netstat không in ra gì nghĩa là port 45821 còn trống.

Nếu lệnh netstat in ra một hoặc nhiều dòng, port đó đang bị chương trình khác dùng, hãy chọn số khác và kiểm tra lại.

Cách 1: Đổi port RDP bằng PowerShell (khuyên dùng)

Trong cửa sổ PowerShell đang chạy với quyền Administrator, chạy lần lượt 4 lệnh dưới đây. Thay 45821 bằng port bạn đã chọn ở cả 4 lệnh.

Bước 2: Ghi port mới vào registry

Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value 45821

Bước 3: Mở port mới trên tường lửa (TCP và UDP)

New-NetFirewallRule -DisplayName 'RDP 45821 TCP' -Direction Inbound -Protocol TCP -LocalPort 45821 -Action Allow | Out-Null
New-NetFirewallRule -DisplayName 'RDP 45821 UDP' -Direction Inbound -Protocol UDP -LocalPort 45821 -Action Allow | Out-Null

Phần | Out-Null chỉ để ẩn bảng thông tin dài mà lệnh in ra, không ảnh hưởng kết quả. Remote Desktop dùng TCP để kết nối và có thể dùng thêm UDP để hình ảnh mượt hơn, vì vậy nên mở cả hai.

Bước 4: Khởi động lại dịch vụ Remote Desktop

Restart-Service TermService -Force

Ngay khi chạy lệnh này, phiên Remote Desktop hiện tại sẽ bị ngắt. Đây là điều bình thường: dịch vụ đã chuyển sang lắng nghe ở port mới. Nếu muốn chắc ăn hơn, bạn có thể khởi động lại cả VPS thay cho lệnh này.

Bốn lệnh PowerShell đổi port Remote Desktop sang 45821, mở tường lửa TCP và UDP rồi khởi động lại dịch vụ TermService
Thứ tự đúng: ghi registry, mở tường lửa, sau cùng mới khởi động lại dịch vụ.

Cách 2: Đổi port bằng Registry Editor và Windows Firewall

Nếu bạn không quen dòng lệnh, có thể làm hoàn toàn bằng giao diện. Kết quả giống hệt cách 1.

Bước 2: Sửa PortNumber trong Registry Editor

  1. Nhấn Windows + R, gõ regedit rồi Enter.
  2. Dán đường dẫn sau vào thanh địa chỉ phía trên rồi Enter:
    Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
  3. Ở khung bên phải, nhấp đúp vào PortNumber.
  4. Trong hộp thoại Edit DWORD (32-bit) Value, chọn Decimal trước (mặc định đang là Hexadecimal).
  5. Nhập port mới vào ô Value data, bấm OK.
Registry Editor mở khoá RDP-Tcp, sửa giá trị PortNumber sang 45821 ở chế độ Decimal
Nhớ chọn Decimal trước khi gõ số. Nếu để Hexadecimal, 45821 sẽ bị hiểu thành một port hoàn toàn khác.

Bước 3: Tạo rule cho port mới trong Windows Firewall

  1. Nhấn Windows + R, gõ wf.msc rồi Enter để mở Windows Defender Firewall with Advanced Security (trên Windows Server 2012 R2 tên là Windows Firewall with Advanced Security).
  2. Chọn Inbound Rules ở cột trái, rồi bấm New Rule… ở cột phải.
  3. Rule Type: chọn Port, bấm Next.
  4. Protocol and Ports: chọn TCP, chọn Specific local ports và nhập port mới, bấm Next.
  5. Action: chọn Allow the connection, bấm Next.
  6. Profile: giữ nguyên cả ba ô Domain, Private, Public, bấm Next.
  7. Name: đặt tên dễ nhận biết, ví dụ RDP 45821 TCP, bấm Finish.
  8. Lặp lại từ bước 2 nhưng chọn UDP, đặt tên RDP 45821 UDP.
New Inbound Rule Wizard của Windows Firewall, bước Protocol and Ports chọn TCP và nhập port 45821
Bước Protocol and Ports của trình tạo rule. Tạo hai rule: một cho TCP, một cho UDP.

Bước 4: Khởi động lại dịch vụ hoặc VPS

Mở Start → Power → Restart để khởi động lại VPS. Hoặc nhấn Windows + R, gõ services.msc, tìm Remote Desktop Services, bấm chuột phải chọn Restart. Phiên kết nối hiện tại sẽ bị ngắt.

Bước 5: Kết nối lại bằng port mới

Đợi khoảng 30 giây (hoặc 1–2 phút nếu bạn khởi động lại cả VPS), mở Remote Desktop Connection (Windows + R, gõ mstsc) và nhập vào ô Computer theo dạng IP:port, ví dụ 203.0.113.25:45821.

Remote Desktop Connection nhập địa chỉ 203.0.113.25:45821 để kết nối VPS bằng port mới
Thêm dấu hai chấm và port mới ngay sau IP, không có khoảng trắng.

Trên macOS, iPhone, iPad hay Android, ứng dụng Windows App (tên cũ Microsoft Remote Desktop) cũng nhận cùng định dạng: nhập 203.0.113.25:45821 vào ô PC name.

Kiểm tra lại sau khi đổi

Khi đã vào được VPS, mở PowerShell và chạy:

netstat -an | findstr :45821
netstat -an | findstr :3389

Lệnh thứ nhất phải có dòng TCP 0.0.0.0:45821 ... LISTENING. Lệnh thứ hai không in ra gì, nghĩa là port 3389 đã không còn mở.

Kết quả netstat cho thấy Remote Desktop đang LISTENING trên port 45821 và port 3389 không còn được dùng
Remote Desktop đã lắng nghe trên port mới.

Tắt rule 3389 cũ (không bắt buộc)

Vì dịch vụ không còn lắng nghe ở 3389, rule cũ trên tường lửa không còn tác dụng. Nếu muốn dọn gọn, sau khi đã chắc chắn vào được bằng port mới, chạy:

Disable-NetFirewallRule -DisplayGroup "Remote Desktop"

Lệnh này chỉ tắt nhóm rule mặc định cho port 3389, không ảnh hưởng hai rule bạn vừa tạo. Lưu ý: nếu sau này bạn bật lại tuỳ chọn "Allow remote connections" trong System Properties, Windows có thể bật lại nhóm rule này.

Lỡ mất kết nối sau khi đổi port: xử lý thế nào?

Nếu không vào được bằng port mới, đừng lo, dữ liệu trên VPS không bị ảnh hưởng. Bạn vẫn vào được màn hình VPS qua VNC Console trong trang quản lý dịch vụ tại manager.tdcloud.vn, vì VNC không đi qua Remote Desktop hay tường lửa của Windows. Xem chi tiết tại hướng dẫn kết nối VPS qua VNC Console.

Sau khi đăng nhập qua VNC, mở PowerShell (Admin) và kiểm tra theo thứ tự:

  1. Tường lửa đã có rule chưa: chạy Get-NetFirewallRule -DisplayName 'RDP 45821*'. Nếu không có kết quả, chạy lại hai lệnh New-NetFirewallRule ở bước 3.
  2. Port trong registry có đúng không: chạy lại lệnh Get-ItemProperty ở bước 1. Nếu ra số lạ, có thể bạn đã nhập ở chế độ Hexadecimal, hãy sửa lại.
  3. Muốn quay về port 3389: chạy Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber -Value 3389, sau đó Enable-NetFirewallRule -DisplayGroup "Remote Desktop" và Restart-Service TermService -Force.

Câu hỏi thường gặp

Đổi port Remote Desktop có làm mất dữ liệu hay ứng dụng đang chạy không?

Không. Thao tác chỉ đổi cổng nhận kết nối. Các ứng dụng đang chạy trên VPS vẫn tiếp tục chạy, chỉ phiên Remote Desktop của bạn bị ngắt và cần đăng nhập lại.

Có cần khởi động lại VPS không?

Không bắt buộc. Lệnh Restart-Service TermService -Force là đủ. Khởi động lại cả VPS cũng cho kết quả tương tự, chỉ lâu hơn một chút.

Phần mềm diệt virus có tường lửa riêng thì sao?

Nếu bạn cài phần mềm bảo mật có tường lửa riêng, hãy mở port mới trong phần mềm đó trước khi khởi động lại dịch vụ, nếu không kết nối vẫn bị chặn.

Có cách nào an toàn hơn nữa không?

Ngoài đổi port, bạn có thể giới hạn Remote Desktop chỉ cho phép IP của mình: mở rule vừa tạo trong wf.msc, tab Scope, mục Remote IP address, thêm IP của bạn. Cách này chỉ phù hợp khi mạng của bạn có IP tĩnh.

Nếu gặp khó khăn trong quá trình đổi port, hãy liên hệ đội ngũ hỗ trợ TDCLOUD để được hướng dẫn trực tiếp. Bạn đang tìm VPS Windows Server để chạy ứng dụng, treo tool hay làm việc từ xa? Tham khảo các gói VPS giá rẻ và VPS tiêu chuẩn tại TDCLOUD.

Nếu bạn thấy bài viết này hữu ích...

Nhấp vào ngôi sao để đánh giá!

Chưa có đánh giá nào. Hãy là người đầu tiên!

Có thể bạn quan tâm