关键词:TRAE CN、VS Code Remote-SSH、麒麟 Kylin V10、WebSocket 1006、AllowTcpForwarding、SSH 端口转发、vi 编辑器


一、问题现象

在 Windows 上使用 TRAE CN(或 VS Code Remote-SSH) 连接国产 麒麟 Kylin V10 服务器时,反复报错:

WebSocket close with status code 1006: CodeExpectedError

手动 SSH 登录却完全正常,密钥免密登录无任何问题。这让人非常困惑:网络通、密钥对、权限正确,为何远程开发工具连不上?


二、根本原因

经过深入排查,发现错误日志中隐藏关键线索:

channel 3: open failed: administratively prohibited: open failed
Error creating SOCKS connection: undefined Socket closed

这说明:SSH 服务端拒绝了端口转发请求!

而 TRAE CN / VS Code Remote-SSH 在连接时,会通过 -D 参数建立 SOCKS 动态隧道(用于后续 WebSocket 通信)。如果服务器禁止端口转发,隧道无法建立,就会触发 WebSocket 1006 错误。

罪魁祸首:麒麟系统默认安全策略禁用了 SSH 端口转发!

排查方式:在以下命令中输入show log remote


三、解决方案

✅ 步骤 1:在麒麟服务器上修改 SSH 服务配置

登录麒麟服务器,编辑 /etc/ssh/sshd_config

sudo vi /etc/ssh/sshd_config
🔧 如何用 vi 编辑文件?(新手友好版)
  1. 移动光标:用方向键定位到目标行(如 AllowTcpForwarding no
  2. 进入编辑模式
    • i → 在光标前插入
    • a → 在光标后插入(推荐)
  1. 修改内容
    • AllowTcpForwarding no 改为 AllowTcpForwarding yes
  1. 添加新配置
    • Esc 退出编辑模式
    • o(小写)→ 在下一行插入
    • 输入:PermitOpen any
  1. 保存退出
    • Esc
    • 输入 :wq(英文冒号 + wq)
    • 按回车

💡 提示:以 # 开头的行是注释,不会生效。确保你的配置行没有 #

最终配置应包含:

AllowTcpForwarding yes
PermitOpen any

✅ 步骤 2:重启 SSH 服务

sudo systemctl restart sshd

⚠️ 注意:此操作不会断开当前 SSH 会话,可安全执行。

四、重新连接 TRAE CN

  1. 完全退出 TRAE CN(包括系统托盘)
  2. 重新打开 TRAE CN
  3. 点击远程主机 172.26.100.17
  4. 耐心等待 1~2 分钟(首次会自动部署服务端)

🎉 此时应成功连接,左下角显示 SSH: 172.26.100.17


五、经验总结

问题环节

原因

解决方案

手动 SSH 成功,但 TRAE 失败

TRAE 需要 SOCKS 隧道

启用 SSH 端口转发

报错 administratively prohibited

AllowTcpForwarding no

改为 yes

不熟悉 vi 编辑器

无法修改配置文件

掌握 i/a/Esc/:wq

📌 特别提醒:国产操作系统(如麒麟、UOS)出于安全考虑,常默认关闭 AllowTcpForwarding。在使用 Remote-SSH、Jupyter Lab、Code Server 等依赖端口转发的工具时,务必检查此项!


结语

从“WebSocket 1006”到成功连接,看似简单的问题背后,其实是对 SSH 协议机制和国产系统安全策略的深度理解。希望本文能帮助更多开发者在信创环境下顺利开展远程开发!

作者:一位踩过坑的开发者
环境:Windows 11 + TRAE CN + 麒麟 Kylin V10
时间:2026年4月

欢迎点赞、收藏、评论交流!👏

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐