You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode Remote SSH扩展套接字连接失败问题求助

解决VSCode Remote SSH动态端口转发失败问题

你遇到的问题是bash终端能正常通过ssh和sftp连接远程服务器,但VSCode Remote SSH扩展在建立连接时,出现Failed to set up socket for dynamic port forward to remote port XXXX: Socket closed报错。结合日志和你已做的尝试,以下是具体排查和解决步骤:

排查步骤

  • 确认远程VSCode Server端口监听状态
    SSH登录服务器后,执行以下命令查看code-server进程的监听情况:

    ss -tulpn | grep code-server
    

    确认输出中存在127.0.0.1:37949(日志中显示的监听端口)。接着在服务器本地测试端口连通性:

    curl http://127.0.0.1:37949
    

    如果返回Connection refused,说明code-server未正常监听该端口,需要重启服务;如果有响应(即使是错误页面),则端口本身是通的。

  • 检查远程防火墙规则
    部分服务器的防火墙(如ufw、iptables)可能限制了回环接口(lo)的连接。临时关闭防火墙测试:

    # 若使用ufw
    ufw disable
    # 若使用iptables
    iptables -F
    

    关闭后重试VSCode连接,若成功,需调整防火墙规则允许回环接口的所有端口访问,或者单独放行VSCode Server使用的端口范围。

  • 禁用动态转发,改用静态本地转发
    在VSCode设置中搜索remote.SSH.enableDynamicForwarding,将其设置为false。然后在本地~/.ssh/config文件中添加静态转发规则:

    Host 89.117.36.25
        User root
        LocalForward 127.0.0.1:37949 127.0.0.1:37949
    

    保存配置后重启VSCode,重新发起连接。

  • 清理远程VSCode Server残留进程与锁文件
    日志显示之前存在残留的VSCode Server进程,可能导致端口冲突或连接异常。SSH登录服务器后执行:

    # 杀掉所有code-server进程
    pkill -f code-server
    # 删除锁文件
    rm -rf /root/.vscode-server/bin/92da9481c0904c6adfe372c12da3b7748d74bdcb/vscode-remote-lock.root.*
    

    完成后重新尝试VSCode连接。

  • 关闭本地代理或VPN
    本地运行的代理工具、VPN可能会干扰SSH的动态转发通道。临时关闭所有代理和VPN服务,再重试VSCode连接。

  • 临时修改VSCode Server监听地址
    若以上方法无效,可尝试让VSCode Server监听所有网卡(仅用于测试,存在安全风险):
    SSH登录服务器后,手动启动code-server:

    /root/.vscode-server/bin/92da9481c0904c6adfe372c12da3b7748d74bdcb/bin/code-server --start-server --host=0.0.0.0 --accept-server-license-terms --enable-remote-auto-shutdown --port=37949
    

    然后在VSCode中尝试连接,若成功,说明是回环接口的访问限制问题,后续需调整服务器配置而非长期使用0.0.0.0监听。

内容的提问来源于stack exchange,提问作者Md Jahid Khan Limon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 02:47:01