我想将我的 Amazon Elastic Compute Cloud(Amazon EC2)实例与远程桌面协议(RDP)连接。我想使用 AWS Systems Manager 会话管理器端口转发(而不使用堡垒机)进行此连接。
解决方法
端口转发是 Systems Manager 会话管理器的一项功能。利用此功能,您能够在本地系统和部署在私有子网中的实例之间创建隧道。您无需打开入站端口或配置堡垒机。当在安全组上阻止入站访问时,您可以使用此功能通过 RDP 连接到您的 Amazon EC2 Windows 实例。
**注意:**如果在运行 AWS 命令行界面(AWS CLI)命令时收到错误,请确保您使用的是最新的 AWS CLI 版本。
检查先决条件
先决条件:
建立连接
1. 建立从本地计算机到 EC2 实例的端口转发会话:
在本地计算机上运行下列命令:
aws ssm start-session --target <instanceid> --document-name AWS-StartPortForwardingSession --parameters "localPortNumber=55678,portNumber=3389"
这将建立一条从本地计算机的端口 55678 到远程 EC2 实例中的端口 3389(RDP 端口)的隧道。
此命令还假设 EC2 实例操作系统配置为在默认端口 3389 上接受 RDP 连接。请将 localPortNumber 和 portNumber 的值替换为您的值。
如果您的会话连接成功,则您会收到下列消息:
Starting session with SessionId: xxxxx-01234567891011abc
Port 55678 opened for sessionId xxxxx-01234567891011abc
Waiting for connections...
2. 使用隧道通过 RDP 连接到远程 EC2 实例:
使用本地 RDP 客户端,连接到 localhost:55678。这会将流量转发到 EC2 实例上的远程端口 3389。
连接到 RDP 会话后,AWS CLI 指示已通过隧道建立连接,并显示以下消息:
Connection accepted for session [xxxxx-01234567891011abc]
3. 结束端口转发会话:
关闭 RDP 会话后,请在 AWS CLI 上按 Ctrl + C 结束端口转发会话。或者,您可以从 AWS Systems Manager 控制台结束会话。
您会看到一条类似于以下内容的消息:
Terminate signal received, exiting.
Exiting session with sessionId: xxxxx-01234567891011abc.
连接故障排除
如果您的会话无法连接,则可能是由于以下原因:
有关详细信息,请参阅会话管理器故障排除。