无需SSH,通过VS Code Dev Container连接EC2实例远程开发
无需SSH/22端口连接EC2上Dev Container的方案
以下几个方案都能绕开22端口限制,且不用断开公司网络:
方案1:VS Code Remote - Tunnels 扩展
这是最省心的方法,走HTTPS(443端口),公司网络基本不会封禁:
- 在EC2实例上安装VS Code(或直接安装VS Code Server),运行命令
code tunnel启动隧道,跟着提示登录你的微软账号。 - 本地VS Code安装Remote - Tunnels扩展,登录同一个账号,就能在扩展列表里看到你的EC2实例,直接点击即可连接对应的Dev Container。
- 原理是通过微软服务建立反向连接,EC2主动发起 outbound 请求,不需要给EC2开放任何入站端口,防火墙规则都不用调整。
方案2:自建HTTPS反向代理
如果不想依赖第三方服务,可以自己搭建反向代理将Dev Container的VS Code Server端口映射到443:
- 在EC2上安装Nginx,配置反向代理规则,把VS Code Server默认端口(比如8000)映射到443端口。
- 给EC2申请免费SSL证书(比如用Let's Encrypt),配置Nginx启用HTTPS,保证连接加密。
- 本地VS Code安装Remote - HTTPS扩展,直接输入EC2的HTTPS域名即可连接,进而打开Dev Container。
- 注意要给EC2安全组开放443端口的入站权限,不过公司网络通常允许HTTPS流量。
方案3:AWS Systems Manager (SSM) 连接
利用AWS自带的SSM服务,无需开放任何入站端口,走AWS的HTTPS通道:
- 给EC2实例附加带有SSM权限的IAM角色(比如
AmazonSSMManagedInstanceCore),确保EC2能和SSM服务通信。 - 本地安装AWS CLI,配置好你的AWS凭证(access key和secret key)。
- VS Code安装AWS Toolkit扩展,在扩展里找到目标EC2实例,通过SSM会话连接后,就能正常打开Dev Container。
- 这个方案完全依托AWS服务,不用修改EC2安全组入站规则,安全系数较高。
内容的提问来源于stack exchange,提问作者SM_07
相关产品推荐
相关产品推荐

