本稿では、Windows ECS インスタンスへのリモートデスクトップ接続を妨げる RDP ポートの競合を特定し、解決する方法を説明します。
症状
オンプレミスデバイス上の MSTSC、または ECS コンソールの Workbench を使用して Windows ECS インスタンスに接続すると、セッション切断エラーが表示され、接続に失敗します。 次の図は、MSTSC エラーの例です。
原因
別のプロセスまたはサービスが、デフォルトの RDP ポート (3389) を使用しています。
ソリューション
RDP ポートを占有しているプロセスを終了させるか、RDP ポート番号を変更します。
インスタンスの設定やデータを変更する前に、インスタンスの災害復旧機能とフォールトトレランス機能を確認してください。 スナップショットの詳細は、「概要」をご参照ください。
Alibaba Cloud 管理コンソールでアクセス権限を付与したり、機密情報 (ユーザー名やパスワードなど) を送信したりした場合は、速やかに情報を変更してください。
VNC を使用して Windows ECS インスタンスに接続します。
詳細は、「VNC を使用したインスタンスへの接続」をご参照ください。
RDP ポートを使用しているプロセスを特定します。この例では、Windows Server 2022 を使用します。
コマンドプロンプトウィンドウを開きます。
netstat -ano|findstr "3389"コマンドを実行して、ポート 3389 を使用しているプロセスを特定します。
tasklist /FI "PID eq <前の手順で取得したPID>"コマンドを実行して、プロセスの詳細を表示します。この例では、tasklist /FI "PID eq 4176"コマンドとtasklist /FI "PID eq 7164"コマンドを実行します。 出力から、svchost.exe は RDP プロセスであり、python.exe がポート 3389 を占有していることがわかります。
方法1: ポート3389を占有しているプロセスを終了する
taskkill /PID <終了するプロセスのPID> /Fコマンドを実行します。この例では、taskkill /PID 4176 /Fコマンドを実行します。重要プロセスを終了する前に、そのプロセスの特徴を理解してください。 主要なビジネスプロセスやシステムプロセスを停止すると、業務の中断、システムのクラッシュ、または接続の失敗が発生する可能性があります。
MSTSC または Workbench を使用してインスタンスに再接続します。
方法2: RDP ポート番号を変更する
レジストリエディターを開きます。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp に移動し、PortNumber を右クリックして、[値のデータ] を目的のポート番号に変更します。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp に移動し、PortNumber を右クリックして、[値のデータ] を同じポート番号に変更します。
説明PortNumber の [値のデータ] は、tcp レジストリキーと RDP-Tcp レジストリキーの両方で一致している必要があります。
Windows は新しい RDP ポート番号を自動的に認識します。サービスウィンドウを開きます。
[リモート デスクトップ サービス] を右クリックし、[再起動] を選択します。

新しい RDP ポートでのトラフィックを許可するようにセキュリティグループルールを設定します。
セキュリティグループルールの追加方法は、「セキュリティグループルールの追加」をご参照ください。
MSTSC または Workbench を使用してインスタンスに再接続します。