记一次VSCode远程连接失败的解决过程:从报错到搞定的全过程

最近用VSCode远程连接服务器写代码时,突然就连不上了。点击连接后,进度条卡半天,最后弹出个模糊的错误提示,试了好几次都这样。作为每天都要靠远程开发干活的人,这可太影响效率了。琢磨了大半天总算搞定,把过程记下来,万一你也遇到类似问题,或许能少走点弯路。

一、先说说遇到的问题

具体症状就是:VSCode里点"远程连接",输入密码后没反应,过一会儿提示"连接超时";有时候又会显示"正在安装VSCode Server",但进度一直不动,最后直接断开。

一开始以为是网络问题,试了ping服务器,能通;用终端直接ssh连接,输密码能登上。这说明服务器和网络都没问题,问题大概率出在VSCode本身。

二、第一次尝试:删服务器的配置文件

网上资料说VSCode远程连接靠的是服务器上的.vscode-server文件夹,里面存着匹配的服务端程序。说不定是这个文件夹出了问题,那就试试删掉重来吧。

步骤很简单:

  1. 用终端ssh登录服务器(这时候还能登上)
  2. 执行删除命令:
bash 复制代码
rm -rf ~/.vscode-server
  1. 关掉VSCode重新连接

本以为这样就能让VSCode重新自动安装服务端,结果还是不行。连接时依旧卡在安装步骤,看来问题没这么简单。

三、第二次尝试:手动安装匹配的服务端

既然自动安装失败,那就手动来。后来才知道,VSCode客户端和服务端必须版本匹配,不然就会连接失败。这里的"版本"不是指1.103.0这种数字,而是一个叫"commit id"的哈希值(一串字母加数字的代码)。

具体操作分三步:

1. 找到本地VSCode的commit id

打开本地VSCode,按Ctrl+Shift+P调出命令面板,输入"Help: 关于"(或者英文"About"),会弹出一个窗口,里面有一行类似"版本: 1.103.0 (7f329fe6c66b0f86ae15753d2fb3a363b9c84a9)"的内容,括号里的那串字符就是我们要的commit id。

2. 登录服务器手动操作

用终端ssh登录服务器后,依次执行下面的命令(注意把命令里的你的commit id换成刚才找到的那串字符):

bash 复制代码
# 先确保旧的文件被删干净
rm -rf ~/.vscode-server

# 创建存放服务端程序的文件夹
mkdir -p ~/.vscode-server/bin/你的commit id

# 下载对应版本的服务端压缩包
wget https://update.code.visualstudio.com/commit:你的commit id/server-linux-x64/stable -O vscode-server.tar.gz

# 解压到刚才创建的文件夹
tar -zxf vscode-server.tar.gz -C ~/.vscode-server/bin/你的commit id --strip-components 1

执行完这些,关掉终端,重新用VSCode连接,本以为这次能成,结果又卡住了------原来服务器网络有限制,wget命令根本下载不了压缩包。

四、终极解决:本地下载后上传服务器

既然服务器下不了,那就换个思路:在本地电脑下载好压缩包,再传到服务器上。

1. 本地下载服务端压缩包

在本地浏览器里输入链接:https://update.code.visualstudio.com/commit:你的commit id/server-linux-x64/stable(同样把你的commit id换成实际的哈希值),浏览器会自动下载一个压缩包(可能叫stable,可以重命名为vscode-server.tar.gz方便操作)。

2. 把压缩包传到服务器

scp命令上传(在本地终端执行,把你的用户名服务器IP本地文件路径换成实际信息):

ruby 复制代码
scp /本地文件路径/vscode-server.tar.gz 你的用户名@服务器IP:~/

这时候会提示输入服务器密码,输完后等待上传完成。

3. 服务器上完成安装

再次用ssh登录服务器,执行下面的命令(还是要替换你的commit id):

bash 复制代码
# 确保文件夹已创建
mkdir -p ~/.vscode-server/bin/你的commit id

# 把上传的压缩包解压到目标文件夹
tar -zxf ~/vscode-server.tar.gz -C ~/.vscode-server/bin/你的commit id --strip-components 1

五、终于搞定了

做完这一切,重新打开VSCode,点击远程连接,这次没再卡壳,几秒钟就连接成功了。看来问题的根源就是VSCode客户端和服务端版本不匹配,加上服务器网络限制导致自动安装失败,手动匹配版本后就好了。

如果以后再遇到类似问题,应该会先检查版本是否匹配,再一步步排查网络和文件权限的问题。希望这个过程能帮到同样遇到困扰的朋友。

相关推荐
摸着石头过河的石头1 天前
手把手教你用VS Code玩转Gitee协作:从环境配置到高效提交
前端·visual studio code
FPGA4 天前
Verilog高效开发插件-Digital IDE(VS Code插件)
visual studio code
太凉9 天前
cursor替换成vs code插件市场
visual studio code·cursor
萌萌哒草头将军10 天前
Cursor 发布 1.4 版本,更智能更全面 🚀🚀🚀
intellij idea·visual studio code·cursor
白雾茫茫丶14 天前
让 GitHub 个人主页更专业:用 WakaTime 实现动态代码统计
visual studio code
倔强青铜三16 天前
PyCharm正在慢性死亡?VSCode碾压式逆袭!
python·pycharm·visual studio code
寅时码16 天前
消除大模型幻觉,让AI-IDE真正理解代码,打通LSP与AI的任督二脉
visual studio code·cursor·mcp
一涯16 天前
自己写一个vscode插件
前端·visual studio code
AmsWait16 天前
为Github Copilot创建自定义指令/说明/注意事项
ai编程·visual studio code·github copilot