记一次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客户端和服务端版本不匹配,加上服务器网络限制导致自动安装失败,手动匹配版本后就好了。

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

相关推荐
执风挽^2 天前
Python基础编程题2
开发语言·python·算法·visual studio code
Wei&Yan2 天前
数据结构——顺序表(静/动态代码实现)
数据结构·c++·算法·visual studio code
执风挽^3 天前
Python_func_basic
开发语言·python·算法·visual studio code
北鸟南游11 天前
Claude Code使用技巧-为Claude Code接入国产大模型
ai·ai编程·visual studio code
TUTO_TUTO12 天前
【python-词汇指标提取工具开发】自学笔记(1)-后端程序
人工智能·python·pandas·visual studio code
Clarice__12 天前
Anaconda安装、使用教程
windows·python·机器学习·conda·visual studio code
C++ 老炮儿的技术栈13 天前
CMFCEditBrowseCtrl用法一例
c语言·开发语言·c++·windows·qt·visual studio code
luoqice15 天前
彻底清除vscode注册表解决重装后无法使用问题
visual studio code
晚霞的不甘20 天前
Flutter for OpenHarmony 实战:[开发环境搭建与项目编译指南]
git·flutter·react native·react.js·elasticsearch·visual studio code
散峰而望21 天前
OJ 题目的做题模式和相关报错情况
java·c语言·数据结构·c++·vscode·算法·visual studio code