摘要
本文针对「Linux 服务器无外网权限,但需使用 VSCode 通义灵码插件」场景,提供从本地 Win11 配置到服务器验证的完整步骤,通过 SSH 代理转发让通义灵码借助本地外网正常工作,全程加密安全,步骤可直接复制执行,新手也能快速上手。
目录
-
【配置前准备】前置条件说明
-
【首次配置】从 0 到 1 打通代理(核心步骤)
-
2.1 本地 Win11 安装 OpenSSH Server(管理员权限)
-
2.2 本地 Win11 启动 SOCKS5 代理(普通 PowerShell)
-
2.3 建立 SSH 远程转发隧道(绑定服务器端口)
-
2.4 Linux 服务器验证代理连通性
-
2.5 配置 VSCode 远程代理(通义灵码专属)
-
2.6 验证通义灵码功能
-
【日常使用】Win11 重启后快速恢复步骤
-
【避坑指南】关键说明与常见问题修复
-
【优化建议】自动化脚本生成提议
1. 【配置前准备】前置条件说明
确保以下环境已满足,避免后续步骤卡顿:
-
本地 Win11:
-
已连接外网(能正常访问网页)
-
安装 VSCode 及「Remote-SSH」插件(VSCode 扩展市场直接搜索安装)
-
已知 Linux 服务器的「用户名」「IP 地址」「登录密码 / 密钥」
-
-
Linux 服务器:
-
已开启 SSH 服务(默认 22 端口,能通过 VSCode Remote-SSH 连接)
-
无外网权限(无法直接访问
https://dashscope.aliyuncs.com)
-
2. 【首次配置】从 0 到 1 打通代理(核心步骤)
2.1 本地 Win11 安装 OpenSSH Server(需管理员权限)
作用:为本地启动 SOCKS5 代理提供基础服务,仅需配置 1 次。
执行位置
本地 Win11 → 右键「开始菜单」→ 选择「Windows PowerShell (管理员)」
操作步骤
-
检查 OpenSSH Server 是否已安装
执行命令:
Get-WindowsCapability -Online | Where-Object Name -like 'OpenSSH.Server*'
- 【验证标准】:若输出
State : Installed,直接跳至步骤 4;若显示NotPresent,继续下一步。
-
安装 OpenSSH Server
执行命令:
Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
- 【验证标准】:输出
RestartNeeded : False即安装成功。
-
启动 SSH 服务
执行命令:
Start-Service sshd
- 【验证标准】:无报错输出(空白即正常)。
-
设置 SSH 服务开机自启
执行命令:
Set-Service -Name sshd -StartupType 'Automatic'
- 【验证标准】:无报错输出。
-
确认 SSH 服务运行状态
执行命令:
Get-Service sshd
- 【验证标准】:输出中
Status字段显示Running(示例:Status : Running)。
2.2 本地 Win11 启动 SOCKS5 代理(普通 PowerShell)
作用:在本地 Win11 开启 1080 端口作为 SOCKS5 代理出口,后续隧道会绑定此端口。
执行位置
本地 Win11 → 打开「Windows PowerShell」(无需管理员权限,普通窗口即可)
操作步骤
-
启动本地 SOCKS5 代理(1080 端口)
执行命令:
ssh -D 1080 localhost -Nf
- 【验证标准】:无报错输出(空白即正常启动)。
-
检查 1080 端口是否监听
执行命令:
netstat -ano | findstr "1080"
- 【验证标准】:输出包含
LISTENING(示例:TCP ``127.0.0.1:1080`` ``0.0.0.0``:0 LISTENING 12345)。
2.3 建立 SSH 远程转发隧道(绑定服务器端口)
作用:将 Linux 服务器的 1080 端口,通过 SSH 隧道转发到本地 Win11 的 1080 代理端口,让服务器流量走本地外网。
执行位置
本地 Win11 → 同一台普通 PowerShell 窗口(承接 2.2 步骤)
操作步骤
执行命令(需替换占位符):
ssh -R 1080:127.0.0.1:1080 【服务器用户名】@【服务器IP地址】 -Nf -o TCPKeepAlive=yes -o ServerAliveInterval=30
-
【占位符替换示例】:若服务器用户名为
user1、IP 为192.168.1.100,则命令为ssh -R 1080:``127.0.0.1:1080`` user1@``192.168.1.100`` -Nf -o TCPKeepAlive=yes -o ServerAliveInterval=30 -
【交互处理】:若提示「是否继续连接」,输入
yes回车;若提示输入密码,输入服务器登录密码回车。 -
【验证标准】:无报错输出(空白即隧道建立成功)。
2.4 Linux 服务器验证代理连通性
作用:确认服务器能通过代理访问外网,排除网络转发问题。
执行位置
VSCode → 已通过 Remote-SSH 连接到 Linux 服务器 → 打开远程终端(快捷键 `Ctrl +``, 反引号在键盘左上角)
操作步骤
执行命令:
curl --proxy socks5h://localhost:1080 https://dashscope.aliyuncs.com
-
【关键说明】:
socks5h末尾的h表示「DNS 解析由代理(本地 Win11)处理」,必须加,否则会因服务器无外网导致 DNS 失败。 -
【验证标准】:输出
401 Unauthorized或{"RequestId":"xxx","Code":"InvalidParameter"}(说明网络 + DNS 已通,仅缺 API 密钥,属正常现象)。 -
【异常处理】:若提示
Connection timed out,回到 2.2-2.3 步骤,重新执行代理和隧道命令。
2.5 配置 VSCode 远程代理(通义灵码专属)
作用:让 VSCode 及通义灵码插件使用服务器 1080 端口的代理,仅需配置 1 次。
执行位置
VSCode 界面(已连接 Linux 服务器)
操作步骤
- 打开远程设置 JSON
-
按下
Ctrl + ,(逗号)打开设置界面 -
点击右上角「{}」图标(鼠标悬停显示「打开设置 (JSON)」)
-
选择「Remote [SSH: 【服务器 IP 地址】] User Settings」(用户设置,全局生效,推荐新手选择)
-
粘贴代理配置并保存
清空原有内容,粘贴以下配置(直接复制即可):
{
"http.proxy": "socks5://localhost:1080",
"https.proxy": "socks5://localhost:1080",
"http.proxyStrictSSL": false,
"Lingma.HttpProxySettings": "manual",
"Lingma.HttpProxyConfigurationURL": "socks5://localhost:1080",
"Lingma.DisplayLanguage": "简体中文",
"Lingma.PreferredLanguage for AI Chat": "简体中文",
"Lingma.PreferredLanguage forCommitMessage": "简体中文"
}
- 按下
Ctrl + S保存(配置自动生效,无需重启 VSCode)。
- 重启通义灵码服务
-
点击 VSCode 左下角状态栏(任务栏)
-
找到「通义灵码」图标(通常显示为「灵」字或插件 Logo)
-
右键点击 → 选择「重启通义灵码服务」(让插件加载新代理配置)。
2.6 验证通义灵码功能
作用:最终确认通义灵码能正常使用,完成配置闭环。
执行位置
VSCode 界面(已连接 Linux 服务器)
操作步骤
-
打开 VSCode 左侧边栏 → 点击「通义灵码」插件图标(若未显示,在扩展市场搜索「通义灵码」安装)
-
在通义灵码交互输入框中,输入简单指令(示例:「写一个 Python 冒泡排序代码」)
-
【验证标准】:能正常返回代码片段或文字回答(无「网络错误」「连接超时」提示)。
-
【登录处理】:若提示「未登录阿里云账号」,点击登录按钮,用本地 Win11 的浏览器完成登录(登录状态会同步到 VSCode)。
3. 【日常使用】Win11 重启后快速恢复步骤
Win11 重启后,OpenSSH Server 会自动启动(无需重安装),但「SOCKS5 代理」和「SSH 隧道」会消失,仅需 3 步快速恢复:
步骤 1:重启本地 SOCKS5 代理
-
执行位置:本地 Win11 → 普通 PowerShell
-
命令:
ssh -D 1080 localhost -Nf
-
验证:无报错即成功。
步骤 2:重建 SSH 远程转发隧道
-
执行位置:本地 Win11 → 同一 PowerShell
-
命令(替换占位符):
ssh -R 1080:127.0.0.1:1080 【服务器用户名】@【服务器IP地址】 -Nf -o TCPKeepAlive=yes -o ServerAliveInterval=30
-
验证:无报错即成功。
步骤 3:可选快速验证(5 秒确认)
-
执行位置:VSCode 远程终端
-
命令:
curl --proxy socks5h://localhost:1080 https://dashscope.aliyuncs.com
-
验证:输出 401/404 即代理生效,直接打开通义灵码使用即可。
4. 【避坑指南】关键说明与常见问题修复
4.1 VSCode「用户设置」vs「工作区设置」区别
| 配置类型 | 生效范围 | 存储位置(Linux 服务器) | 推荐场景 |
|---|---|---|---|
| 用户设置 | 所有远程项目 / 会话 | ~/.vscode-server/data/Machine/settings.json |
通用配置(如代理、语言) |
| 工作区设置 | 仅当前打开项目 | 项目目录下.vscode/settings.json |
特殊项目差异化配置 |
- 【新手建议】:代理配置优先用「用户设置」,一次配置所有项目复用,无需重复操作。
4.2 常见问题修复(复制命令即可解决)
问题 1:执行ssh -D 1080 ``localhost`` -Nf报错「Connection refused」
-
原因:本地 SSH 服务未启动
-
解决:管理员 PowerShell 执行命令:
Start-Service sshd
问题 2:curl 命令报错「Could not resolve host」
-
原因:DNS 解析未走代理
-
解决:确保 curl 命令用
ssh -D 1080 ``localhost`` -Nf(末尾必须加h)
问题 3:通义灵码提示「API 密钥错误」
-
原因:仅网络通了,未登录阿里云账号
-
解决:在通义灵码面板点击「登录」,用本地浏览器完成阿里云账号登录
问题 4:SSH 隧道频繁断开
-
原因:无心跳保活,服务器主动关闭连接
-
解决:隧道命令已包含
-o TCPKeepAlive=yes -o ServerAliveInterval=30(30 秒发 1 次心跳),保持 PowerShell 窗口打开即可。
5. 【优化建议】自动化脚本生成提议
若觉得「Win11 重启后手动执行 2 步命令」繁琐,可生成批处理脚本(.bat),双击即可自动执行代理和隧道命令,无需每次复制粘贴。
需要的话,可留言获取脚本生成步骤,脚本会自动:
-
启动本地 SOCKS5 代理
-
建立 SSH 远程转发隧道
-
弹出验证提示(确认隧道是否成功)
结语
本文步骤已覆盖从配置到验证的全流程,核心是通过「SSH 远程转发」让无外网的服务器借助本地 Win11 外网,全程加密安全,且仅需首次配置 1 次,后续重启恢复仅需 2 步。若执行中遇到特殊报错,可在评论区留言,会及时回复解决~
本地重启后如何重连
bash
taskkill /f /im ssh.exe *> $null
Get-NetTCPConnection -LocalPort 1080 -ErrorAction Stop | Select-Object OwningProcess | ForEach-Object { taskkill /f /pid $_.OwningProcess *> $null } ##可选项目,可跳过
ssh -D 1080 localhost -Nf
Start-Process ssh -ArgumentList "-R 1080:127.0.0.1:1080 你的用户名@服务器IP -N -o TCPKeepAlive=yes -o ServerAliveInterval=30 -o ExitOnForwardFailure=yes -o LogLevel=DEBUG" -WindowStyle Hidden