cursor连接远程服务器出现无法与建立连接:未能下载 VS Code 服务器(Failed to fetch)解决方案
·
cursor连接远程服务器出现无法与建立连接:未能下载 VS Code 服务器(Failed to fetch)解决方案
问题描述
在使用 Cursor 的 Remote SSH 功能连接远程服务器时,出现以下报错:
无法与"xxx.xxx.xxx.xxx"建立连接:未能下载 VS Code 服务器(Failed to fetch)
或英文版:
Could not establish connection to "xxx.xxx.xxx.xxx":
Failed to download VS Code Server (Failed to fetch)
具体现象:
- Cursor 能成功 SSH 连接到服务器
- 但在"正在下载 VS Code Server"阶段卡住
- 最终超时报错
Failed to fetch - 重试多次结果一样
原因分析
Cursor 的 Remote SSH 功能需要在远程服务器上安装一个轻量级的 VS Code Server,用于处理代码编辑、文件操作和终端交互。这个 Server 的安装包托管在 update.code.visualstudio.com 或 cursor.sh 的 CDN 上。
国内远程服务器连接失败的原因通常是:
| 原因 | 说明 |
|---|---|
| 服务器无法访问外网 | 国内云服务器(如阿里云轻量、腾讯云)可能默认没有外网访问权限 |
| CDN 被屏蔽 | cursor.sh 或 vscode-update.azurewebsites.net 在某些地区不可达 |
| DNS 解析失败 | 服务器 DNS 无法解析 Cursor 更新服务器域名 |
| 代理未配置 | 服务器需要通过代理访问外网,但 Cursor 不知道代理配置 |
解决方案
方案一:手动上传 VS Code Server(最稳定)
步骤1:在本地找到 VS Code Server 的 commit id
# 在 Cursor 中查看(Help → About),找到 Commit ID
# 或者在终端查看
cat /Applications/Cursor.app/Contents/Resources/app/product.json | grep -o '"commit": "[^"]*"'
步骤2:在本地下载对应版本的 Server 包
# 替换 COMMIT_ID 为实际值
COMMIT_ID="abc123def456"
# 下载 Linux x64 版本的 Server
curl -L "https://update.code.visualstudio.com/commit:${COMMIT_ID}/server-linux-x64/stable" \
-o vscode-server-linux-x64.tar.gz
步骤3:上传到远程服务器并解压
# 上传到服务器
scp vscode-server-linux-x64.tar.gz user@your-server:~/
# SSH 到服务器
ssh user@your-server
# 解压到指定路径
mkdir -p ~/.cursor-server/bin/${COMMIT_ID}
tar -xzf ~/vscode-server-linux-x64.tar.gz -C ~/.cursor-server/bin/${COMMIT_ID} --strip-components=1
# 权限处理
chmod +x ~/.cursor-server/bin/${COMMIT_ID}/server.sh
chmod +x ~/.cursor-server/bin/${COMMIT_ID}/bin/cursor-server
chmod +x ~/.cursor-server/bin/${COMMIT_ID}/node
步骤4:创建标记文件
touch ~/.cursor-server/bin/${COMMIT_ID}/0
步骤5:在 Cursor 中重新连接
此时 Cursor 检测到 Server 已存在,会跳过下载步骤,直接启动。
方案二:在远程服务器上配置代理
# SSH 到服务器后
# 设置 HTTP 代理
export HTTP_PROXY=http://your-proxy-server:port
export HTTPS_PROXY=http://your-proxy-server:port
# 或者在 ~/.bashrc 中永久设置
echo 'export HTTP_PROXY=http://your-proxy-server:port' >> ~/.bashrc
echo 'export HTTPS_PROXY=http://your-proxy-server:port' >> ~/.bashrc
source ~/.bashrc
注意:Cursor Remote SSH 启动的是一个非登录 Shell,可能不会自动加载 .bashrc。可以在 .bash_profile 中也设置一份,或者使用方案一手动安装。
方案三:使用国内镜像下载
# 在远程服务器上执行
# 使用 jsdelivr CDN 镜像
COMMIT_ID="你的commit_id"
wget "https://cdn.jsdelivr.net/gh/cursor-server-mirror/server-linux-x64-${COMMIT_ID}.tar.gz"
# 或者使用代理下载
wget -e "https_proxy=http://your-proxy:port" \
"https://update.code.visualstudio.com/commit:${COMMIT_ID}/server-linux-x64/stable"
方案四:验证网络连接
# 在远程服务器上测试是否能访问 Cursor 更新服务器
curl -I https://cursor.sh
curl -I https://update.code.visualstudio.com
# 测试 DNS
nslookup cursor.sh
nslookup update.code.visualstudio.com
# 如果 DNS 解析失败,修改 /etc/resolv.conf
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf
总结
遇到 Failed to fetch 错误,推荐优先级:
- 方案一(手动上传):最稳定,一次操作永久解决
- 方案四(检查网络):快速排查,有时重启服务器就能恢复网络
- 方案二(配置代理):如果服务器本身没有外网权限,必须配代理
- 方案三(国内镜像):备选方案,适合批量部署场景
如果频繁在不同服务器上使用 Cursor Remote,建议用方案一在本地保存一份 Server 包,每次直接 scp 上传即可。
更多推荐



所有评论(0)