ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Windowsサーバー

Windows リモートデスクトップのポート番号を変更する方法(レジストリ PortNumber・ファイアウォール・PowerShell)

5 ステップ 7 分で読めます 4 回閲覧 0
目次

Windows のリモートデスクトップは既定で 3389 番ポートを使用しており、このポートはスキャナーや総当たり攻撃ツールから常に狙われています。リモートデスクトップのポート変更は、スキャンやログオン失敗ログを減らす最も手軽な対策の一つです。本記事では Windows Server 2016 / 2019 / 2022 で、レジストリ PortNumber または PowerShell を使って RDP ポートを変更し、Windows ファイアウォールで開放、サービスを再起動して反映させるまでの手順を解説します。

手順の順番が重要です。必ず先にファイアウォールで新しいポートを開放し、その後ポートを変更してサービスを再起動してください。逆にすると旧ポートは使えず新ポートは遮断され、VNC コンソールからしか復旧できなくなります。

ステップ1:新しいリモートデスクトップポートを決める

10000〜65535 の範囲で未使用のポート(例:33890、52025)を選びます。サーバー上で使用されていないことを確認します。

netstat -ano | findstr :33890

何も表示されなければ空いています。80、443、1433、3306 などの代表的なサービスポートや 1024 未満のポートは避けてください。以下の例では 33890 を使用していますので、ご自身のポート番号に置き換えてください。

ステップ2:Windows ファイアウォールで新しい RDP ポートを開放する

管理者として PowerShell を開き、新しいポート用の TCP・UDP 受信規則を追加します(RDP は高速化のため UDP も使用します)。

New-NetFirewallRule -DisplayName "RDP-TCP-33890" -Direction Inbound -Protocol TCP -LocalPort 33890 -Action Allow
New-NetFirewallRule -DisplayName "RDP-UDP-33890" -Direction Inbound -Protocol UDP -LocalPort 33890 -Action Allow

サードパーティ製のセキュリティソフトやネットワーク側のアクセス制御を利用している場合は、そちらでも新しいポートを許可してください。

ステップ3:レジストリ PortNumber で RDP ポートを変更する

リモートデスクトップのポートは HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp の PortNumber に保存されています。PowerShell で変更します。

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber -Value 33890
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" -Name PortNumber

コマンドプロンプトの reg コマンドでも同じ変更ができます。

reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v PortNumber /t REG_DWORD /d 33890 /f

GUI で操作したい場合は regedit を起動して上記パスを開き、PortNumber をダブルクリックして「10 進数」を選んでから新しいポートを入力します。

ステップ4:リモートデスクトップサービスを再起動する

変更を反映するため TermService を再起動します。現在の RDP セッションは切断されますが正常な動作です。

Restart-Service TermService -Force

サービスの再起動に失敗する場合は Restart-Computer でサーバーを再起動してください。再起動後、新しいポートで待ち受けているか確認します。

netstat -ano | findstr :33890

ステップ5:新しいポートでリモートデスクトップに接続する

ローカル PC で新しいポートへの到達性をテストし、リモートデスクトップ接続(mstsc)で 203.0.113.10:33890 のように「IP:ポート」形式で接続します。

Test-NetConnection 203.0.113.10 -Port 33890
mstsc /v:203.0.113.10:33890

新しいポートでログインできることを確認したら、既定の 3389 用ファイアウォール規則を無効にして公開範囲を減らせます。

Disable-NetFirewallRule -Group "@FirewallAPI.dll,-28752"
既定の規則を無効化する前に、33890 の規則が有効で実際に接続できることを再確認してください。ポート変更はスキャンを減らすだけなので、強力なパスワードとアカウントロックアウトポリシーも併用しましょう。

よくある質問

ポートを変更したら接続できなくなりました。

クライアントエリア → 製品とサービス → 対象サーバー → 管理 から VNC コンソールを開き、ファイアウォール規則の有無と PortNumber の値を確認するか、PortNumber を 3389 に戻して TermService を再起動してください。コンソールが見つからない場合はチケットでご連絡ください。

ほかに変更が必要な設定はありますか?

基本的にはありません。RD ゲートウェイや踏み台サーバー、保存済みの .rdp ファイルを使っている場合は、そちらのポート番号も更新してください。

Windows 10/11 でも同じ方法で変更できますか?

はい。Windows 10/11 Pro でも同じレジストリパスとコマンドが使えます。

解決しない場合は、サーバー IP と変更後のポートを添えてチケットを送信し、IMIDC の 24時間365日テクニカルサポートへお問い合わせください。

この回答はお役に立ちましたか?

関連チュートリアル