リモートデスクトップのポート番号を変える|Microsoftの手順と締め出されない順番

Windowsのリモートデスクトップは、既定ではポート3389で接続を待ちます。VPSでMT5を動かす時、この番号を変える方法があります。ただし、番号を変えるだけでは、接続元の制限やNLA(ネットワークレベル認証)の代わりにはなりません。また、順番を間違えると、自分もVPSに入れなくなります。この記事では、Microsoft Learnの手順をもとに、ポート番号の変え方と、締め出されないための順番、筆者のPCで設定を読み取った結果を紹介します。

(確認:Microsoft Learn「お使いのコンピューターでリモート デスクトップ リッスン ポートを変更する」(適用対象にWindows 11・Windows 10・Windows Server 2016〜2025)。筆者のPCで2026年10月21日に設定を読み取っただけで、ポート番号は変えていません)

Microsoftの手順

  1. 前提:接続先のコンピューターの管理者の権限、リモートデスクトップが有効になっていること、テストに使うクライアント(リモート デスクトップ接続など)
  2. PowerShellを管理者として開き、今のポートを確かめる(HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp の PortNumber)
  3. Set-ItemProperty で PortNumber を新しい番号に変える(レジストリエディターで変える方法も書かれていて、その手順では最後にコンピューターを再起動する)
  4. Windowsファイアウォールに、新しいポートを許可する受信の規則を足す。ページの例は、TCPとUDPの2つの規則を New-NetFirewallRule で作るもの(例では -Profile Public)。ほかのファイアウォールを使う場合は、そちらでも新しい番号を許可する
  5. 次に接続する時は、ホスト名(またはIPアドレス)のあとに「:新しいポート番号」を付けて接続し、確かめる

締め出されないための順番(筆者の考え)

VPSにリモートデスクトップで入った状態で番号を変えると、つながっている接続が切れた後、新しい番号で入れなければ、戻せなくなります。次の順で進めると安全です。

  1. VPS会社のコンソール(ブラウザから画面を操作する機能)に入れることを先に確かめる(リモートデスクトップで締め出された時の戻し方)
  2. VPS会社の管理画面にファイアウォール(パケットフィルター)がある場合は、そこでも新しい番号を許可する
  3. Windowsファイアウォールに新しい番号の規則を足す。このPC・VPSのネットワークのプロファイル(パブリックかプライベートか)と、規則のプロファイルが合っているかを確かめる
  4. PortNumber を変えて、再起動する
  5. 新しい番号で入れることを確かめてから、古い3389の規則を無効にする
  6. MT5が自動で起動し、EAが動いているかを確かめる(MT5を自動で起動する方法)

コード:今の設定を読み取る(PowerShell)

# リモートデスクトップのリッスン ポートと、そのポートを許可しているファイアウォールの受信規則を読み取る(読み取りのみ)
$rdp  = Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name PortNumber
$deny = (Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server' -Name fDenyTSConnections).fDenyTSConnections
"リッスン ポート(PortNumber): $($rdp.PortNumber)"
"リモートデスクトップ: $(if ($deny -eq 0) { '有効' } else { '無効(fDenyTSConnections = 1)' })"
"--- このポートの受信規則 ---"
try {
    Get-NetFirewallPortFilter -Protocol TCP -ErrorAction Stop |
        Where-Object { $_.LocalPort -contains "$($rdp.PortNumber)" } |
        Get-NetFirewallRule |
        ForEach-Object { "{0} | 有効={1} | プロファイル={2}" -f $_.DisplayName, $_.Enabled, $_.Profile }
} catch {
    "受信規則は読めませんでした($($_.Exception.Message.Trim()))。管理者として実行すると表示されます"
}

筆者のPCの結果

リッスン ポート(PortNumber): 3389
リモートデスクトップ: 無効(fDenyTSConnections = 1)
--- このポートの受信規則 ---
受信規則は読めませんでした(Access is denied.)。管理者として実行すると表示されます

筆者のPC(自宅のPC)は、ポート番号は既定の3389で、リモートデスクトップは無効でした。ファイアウォールの規則は、管理者でないPowerShellでは「アクセスが拒否されました」で読めませんでした(最初はエラーを表示しない書き方にしていたため、何も出ずに空のように見えました。読めなかったことが分かるように、表示を足しています)。VPSで確かめる時は、管理者として実行します。

番号を変える意味と、優先すること

Microsoftの手順のページには、ポート番号を変えることの安全上の効果については書かれていません。接続を受け付ける入口があることには変わりがないため、筆者は次の順で優先すると考えています。

  1. 接続元を、自分のIPアドレス(固定IP)だけに絞る(Windowsファイアウォールでリモートデスクトップの接続元を絞る方法、VPSのRDPを固定IPだけに許可する方法)
  2. NLAを有効にし、強く固有のパスワードを使う(VPSのRDP接続の安全対策)
  3. そのうえで、必要なら番号を変える

この記事で確かめていないこと

  • 実際にVPSでポート番号を変えた時の動き(変えていません)
  • ポート番号を変えることで、外からの接続の試みがどれだけ減るか
  • 各VPS会社の管理画面のファイアウォールの設定方法

まとめ

  • リモートデスクトップのポートは、レジストリの PortNumber で決まる。変えたら、ファイアウォールに新しい番号の規則を足し、「ホスト名:番号」で接続して確かめる(Microsoft Learn)
  • VPSでは、コンソールに入れることを先に確かめ、新しい番号で入れてから古い規則を止める
  • 番号を変えるより先に、接続元の制限とNLAを整える

本記事は、Microsoftの手順と、設定の読み取り方の説明です。設定の変更は、自分の環境でバックアップと戻し方を用意してから行ってください。