本方法目的是实现本地VSCode对远程服务器代码进行调试,若进行长时间的训练模型,为避免网络不稳定导致训练中断,建议使用XRDP或VNC登录到容器中运行。
以linux服务器为例,代码(或者项目)位于远程内网服务器上,通过VScode同步远程服务器环境并能在本地调试服务器代码(注意:无需将远程服务器代码同步到本地)。
VS Code 连接服务器
- 安装Remote-SSH插件
点击左侧的扩展按钮(或用Ctrl+Shift+X),搜索插件"Remote - SSH"进行安装

- 打开Remote-SSH配置文件
安装完后会在左侧生成了远程连接的图标,点击此图标,然后选择设置图标

点击弹出的 config 文件,在文件中填写服务器的配置,Host 为在 VS Code 内显示的名称,可以随意填写,Hostname 是远程服务器的公网 IP 地址,User 是用于登录的用户名称,这里选择.ssh/config

- Remote-SSH配置
- 内网访问
按照如下格式填写服务器相关配置信息
Host 服务器名称(任意取)
HostName 服务器IP
User 登录用户名
Port SSH端口
# 填写好之后,保存关闭文件。
- 点击远程连接的图标,选择"Connect to Host in New Window" or "Connect to Host in Current Window"

- 输入登录密码即可连接远程服务器

- 外网访问
外网访问需要使用中转服务器作为跳板机来连接服务器。主要在ssh配置中添加中转机信息,按照如下格式填写相关配置信息
Host 中转机名称(Jump_Internet)
HostName 中转机IP
User 中转机用户名
port 中转机端口
IdentityFile 密钥文件路径(若无密钥,注释本行)
Host 目标服务器名称(任意取)
HostName 服务器IP
User 登录用户名
Port SSH端口
ProxyJump 中转机(Jump_Internet)
# 填写好之后,保存关闭文件。
随后执行上方步骤4-5。需要注意的是,连接过程中会弹出两次密码验证框,第一次为中转机相关的密码,第二次为目标服务器登录密码
正常情况下,经过上述操作即可在VSCode连接到服务器,打开服务器上的项目即可进行调试运行程序。但服务器可能无法联网,导致vscode-server无法在服务器顺利安装。若有需要,可根据下方内容重新安装vscode-server
离线安装VS Code Server
离线安装分为两种情况:
- 本地主机可以连接internet,服务器网络不通畅或不能连接internet
在这种情况下,我们可以设置Remote.SSH(在本地下载vscode-server,然后将其传输到服务器),操作如下:
按组合键Ctrl+,打开设置,搜索Remote.SSH: Local Server Download 选择always
然后执行上节步骤4,5,Remote-SSH会自动在本地下载vscode-server并使用SCP将其传输到服务器
- 本地主机和服务器处于同一局域网,但都不能连接internet
VS Code Server默认安装在个人用户目录$HOME下的.vscode-server文件夹,里面有三个目录bin、extensions、data。bin目录下面存放的是VS Code Server程序,extensions目录下是VS Code Server端安装的插件,data目录下是用户数据。下面给出离线安装方法。
从本地VS Code的帮助-关于中获取commit_id信息:

在其他能够联网的主机上,用红框中的信息替换下面链接的${commit_id}得到下载链接,下载vscode-server-linux-x64.tar.gz
https://update.code.visualstudio.com/commit:${commit_id}/server-linux-x64/stable
#例:
https://update.code.visualstudio.com/commit:6c3e3dba23e8fadc360aed75ce363ba185c49794/server-linux-x64/stable
打开本地终端,解压并传输文件到服务器的安装目录,也可以使用远程文件传输工具(WinSCP,FileZilla)
# 在本地解压缩,得到vscode-server-linux-x64
tar -zxf vscode-server-linux-x64.tar.gz
# 将已解压程序传输到服务器对应安装目录
scp -r -P port path-to/vscode-server-linux-x64/* username@server_ip:$HOME/.vscode-server/bin/${commit_id}
#例:
scp -r -P 8088 vscode-server-linux-x64/* root@192.168.10.125:/root/.vscode-server/bin/6c3e3dba23e8fadc360aed75ce363ba185c49794
在vscode-server上安装插件
为了更加方便的调试和运行代码,建议在服务器容器内的VS Code Server里安装Python和Pylance插件

若服务器网络不畅,插件可能无法顺利安装。若需要,可以按照下述方法在服务器 VS Code Server 里离线安装插件
- 使用能够联网的本地主机在VS Code插件市场下载离线 VS Code 插件

- 利用传输工具或终端将插件传输到服务器,终端传输命令可参考上方SCP用法
(也可以直接将本地主机上的插件文件拖拽到 VS Code 的远程项目目录)

- 根据下图从VSIX安装,找到传输到服务器的插件以完成安装

部分内容参考自丰臣英俊-VScode实现本地与远端同步开发的两种方式