news 2026/6/10 16:23:12

在 VSCode 中配置 SSH 并实现 X11 转发:服务器程序远程桌面显示

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
在 VSCode 中配置 SSH 并实现 X11 转发:服务器程序远程桌面显示

在 VSCode 中配置 SSH 并实现 X11 转发(Windows、macOS、Linux)

你需要在VSCode中配置支持X11转发的SSH连接,实现远程运行带图形界面的程序、窗口能映射到本地显示的效果,核心需要完成本地X11服务搭建远程服务器SSH配置开启X11VSCode的SSH插件配置三步,下面分Windows/macOS/Linux三大系统详细说明(Windows是最常用且步骤稍多的场景,重点讲解)。

前提准备

  1. VSCode已安装Remote - SSH插件(微软官方的,插件ID:ms-vscode-remote.remote-ssh);

  2. 本地能通过SSH正常连接远程Linux服务器(账号、密码/密钥已配置);

  3. 远程服务器是Linux系统(X11是Linux/Unix的图形转发协议,Windows服务器不适用)。


一、Windows系统(本地)配置步骤

Windows本身没有内置X11服务,需要先安装X11服务器软件,推荐轻量易用的XmingVcXsrv(VcXsrv是开源免费的,更推荐)。

步骤1:安装并配置VcXsrv(本地X11服务)

  1. 下载VcXsrv:官网下载,直接安装(下一步到底即可);

  2. 启动VcXsrv:桌面找到XLaunch,按向导配置:

    • 第1步:选择Multiple windows(多窗口,推荐),点击Next;

    • 第2步:选择Start no client(仅启动X11服务,不启动默认程序),点击Next;

    • 第3步:取消勾选Native opengl(关键!勾选会导致部分图形程序闪退),勾选Disable access control(允许远程服务器连接本地X11,否则会权限拒绝),点击Next;

    • 第4步:直接点击Finish,桌面右下角会出现VcXsrv的图标(X形状),表示X11服务启动成功。

  3. 关键:VcXsrv需要一直后台运行,关闭则X11转发失效;可将XLaunch添加到Windows开机启动,避免每次手动打开。

步骤2:配置Windows系统环境变量(告诉SSH本地X11地址)

SSH需要通过环境变量DISPLAY知道本地X11服务的地址,Windows下配置:

  1. 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」;

  2. 用户变量中,点击「新建」,添加变量:

    • 变量名:DISPLAY

    • 变量值:localhost:0.0(固定值,对应VcXsrv的默认监听端口);

  3. 点击确定保存,重启VSCode让环境变量生效(重要)。

步骤3:远程Linux服务器开启X11转发(核心配置)

需要修改服务器的SSH配置文件sshd_config,确保X11相关选项开启,操作如下:

  1. 远程登录服务器,执行命令编辑配置文件(需要root权限):

    sudo vi /etc/ssh/sshd_config
  2. 找到以下配置项,修改为对应值(如果注释掉了,先删除#取消注释):

    X11Forwarding yes # 开启X11转发,必须为yes X11UseLocalhost no # 关键!Windows下必须设为no,否则会端口映射失败 X11DisplayOffset 10 # 可选,默认值即可,避免端口冲突 AllowTcpForwarding yes # 开启TCP转发,X11依赖此选项 PermitTunnel yes # 可选,增强转发兼容性
  3. 保存并退出vi(按Esc,输入:wq回车);

  4. 重启服务器的sshd服务,让配置生效:

    # CentOS/RHEL/Fedora sudo systemctl restart sshd # Ubuntu/Debian sudo service ssh restart
  5. 验证服务器是否安装X11基础库(如果远程没有图形库,运行图形程序会报错):

    # Ubuntu/Debian sudo apt install -y x11-apps # 包含xeyes、xclock等测试工具 # CentOS/RHEL/Fedora sudo dnf install -y xorg-x11-apps

步骤4:VSCode配置SSH连接(开启X11转发)

  1. 打开VSCode,按F1,输入Remote-SSH: Open SSH Configuration File,选择用户级配置文件(如C:\Users\你的用户名.ssh\config,推荐);

  2. 在配置文件中,为你的远程服务器添加/修改配置,必须加上ForwardX11 yesForwardX11Trusted yes

    # 示例配置(按需修改Host、HostName、User、IdentityFile) Host my-server # 自定义连接名,VSCode中显示的名称 HostName 192.168.1.100 # 远程服务器IP/域名 User root # 远程登录账号 Port 22 # SSH端口,默认22 IdentityFile C:\Users\你的用户名\.ssh\id_rsa # 可选,密钥登录的私钥路径,密码登录可省略 ForwardX11 yes # 核心!开启X11转发 ForwardX11Trusted yes # 信任X11转发,避免权限问题 ConnectTimeout 30 # 可选,连接超时时间
  3. 保存配置文件,按F1输入Remote-SSH: Connect to Host,选择上面的my-server,输入密码/确认密钥,连接远程服务器;

  4. 连接成功后,VSCode右下角会显示「SSH: my-server」,表示已进入远程开发环境。

步骤5:测试X11转发是否生效

  1. 在VSCode中打开远程终端(终端→新建终端,默认是远程服务器的终端);

  2. 执行测试命令xeyes(会弹出一个跟着鼠标动的眼睛窗口),或xclock(时钟窗口):

    xeyes
  3. 如果本地弹出对应的图形窗口,说明X11转发配置成功;如果报错,看文末「常见问题排查」。


二、macOS系统(本地)配置步骤

macOS内置了X11服务的基础组件,但需要安装XQuartz(苹果官方的X11实现),步骤比Windows简单:

  1. 安装XQuartz:官网下载,安装后必须重启Mac(核心,否则X11服务不生效);

  2. 启动XQuartz:启动台找到XQuartz,打开后会自动运行X11服务,无需额外配置;

  3. 远程服务器配置:和Windows步骤3完全一致(sshd_configX11Forwarding yesX11UseLocalhost no);

  4. VSCode SSH配置:和Windows步骤4一致,配置文件中加上ForwardX11 yesForwardX11Trusted yes

  5. 测试:远程终端执行xeyes,本地会弹出图形窗口,直接生效。


三、Linux系统(本地)配置步骤

Linux系统本身原生支持X11,无需安装额外X11服务,步骤最简:

  1. 本地确保安装了X11基础库(一般桌面版Linux都自带,服务器版执行sudo apt install x11-apps/sudo dnf install xorg-x11-apps);

  2. 远程服务器配置:仅需将sshd_configX11Forwarding yes开启即可(X11UseLocalhost可设为yes,也可no);

  3. VSCode SSH配置:添加ForwardX11 yesForwardX11Trusted yes

  4. 测试:远程终端执行xeyes,本地直接弹出图形窗口。


四、常见问题排查(配置失败必看)

问题1:执行xeyes报错Error: Can't open display: localhost:10.0DISPLAY is not set

  • 原因1:本地X11服务未启动(Windows:VcXsrv没开;macOS:XQuartz没开);

  • 原因2:Windows未配置DISPLAY环境变量,或未重启VSCode;

  • 原因3:远程服务器sshd_configX11UseLocalhost设为yes(Windows必须设为no);

  • 解决:逐一检查上述三点,重启对应服务/VSCode。

问题2:执行xeyes报错No protocol specifiedPermission denied

  • 原因1:Windows的VcXsrv未勾选Disable access control

  • 原因2:VSCode SSH配置未加ForwardX11Trusted yes

  • 原因3:本地DISPLAY环境变量值错误(必须是localhost:0.0);

  • 解决:重新配置VcXsrv,补全VSCode的SSH配置项。

问题3:VSCode连接远程时卡住,或X11窗口卡顿

  • 原因1:网络延迟高(X11是基于TCP的图形转发,对网络有一定要求);

  • 原因2:VcXsrv勾选了Native opengl

  • 解决:取消Native opengl,使用有线网络,或降低远程图形程序的分辨率。

问题4:远程服务器执行图形程序,本地无窗口但无报错

  • 原因:远程服务器的DISPLAY环境变量未被正确映射(VSCode的SSH插件会自动设置,无需手动改);

  • 解决:在远程终端执行echo $DISPLAY,查看是否有值(如localhost:10.0),如果为空,重新连接VSCode的SSH。


总结

VSCode配置带X11的SSH核心要点:

  1. 本地必须有X11服务:Windows装VcXsrv(关OpenGL+开免访问控制)、macOS装XQuartz、Linux原生支持;

  2. 远程服务器关键配置sshd_configX11Forwarding yes + X11UseLocalhost no(Windows必设no),重启sshd;

  3. VSCode SSH配置:必须添加ForwardX11 yesForwardX11Trusted yes,Windows需配置本地DISPLAY=localhost:0.0并重启VSCode;

  4. 测试用xeyes/xclock,能弹出图形窗口即配置成功,后续可远程运行PyQt、Matplotlib、GCC图形调试等带界面的程序。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:52:23

所有顶尖AI实验室都失去了联创,除了Anthropic!

OpenAI 11位联创只剩3人,Ilya出走创办SSI,John Schulman跳槽Anthropic……而Anthropic的7位创始人至今无人离队。稳定,才是最大的竞争力。AI巨头中,员工留存率最多有多高?80%。这是去年曝出的数字。而且,不…

作者头像 李华
网站建设 2026/6/9 22:20:10

钢铁厂巡检运维信息化管理系统方案

对钢铁工厂来说,高炉、烧结机、转炉铸机及配套轧钢设备是十分重要的企业资产,需要花费大量的人员物力进行巡检与运维工作,工作量大且效率低,且无法对设备阶段性趋势进行数据分析,不利于设备优化改善与管理等工作开展。…

作者头像 李华
网站建设 2026/6/10 13:35:11

Gemini 3「开眼」像素级操控!谷歌回应DeepSeek-OCR2

谷歌Google DeepMind刚刚推出新能力,用代码赋予Gemini 3 Flash「法眼」。 没想到吧,Google DeepMind刚刚为Gemini 3 Flash推出了一个重量级新能力:Agentic Vision(智能体视觉)。(难道是被DeepSeek-OCR2给刺…

作者头像 李华
网站建设 2026/6/10 13:39:16

孤能子视角:“社会心理学“

第一步:分析“作者”——社会心理学学科(作为“关系场中的个体”研究范式的孤能子)启动:三力逼问,定位张力1. 零预设:不预设社会心理学是“常识的汇编”或“软科学”,视其为在20世纪社会剧变与战…

作者头像 李华
网站建设 2026/6/10 16:00:20

51单片机控制超声波避障小车。 只提供程序、原理图、pcb图及元器件汇总,具体实物图,无仿真无硬件

51单片机控制超声波避障小车。 只提供程序、原理图、pcb图及元器件汇总,具体实物图,无仿真无硬件。 今天咱们来盘盘怎么用51单片机搞个超声波避障小车。这玩意儿不用仿真直接上真家伙,最适合喜欢动手实操的老铁。先看硬件配置:ST…

作者头像 李华
网站建设 2026/6/10 16:03:01

ClawdBot,正在引爆全球灾难!各大CEO预警:不要安装,不要安装

【导读】一夜爆红的ClawdBot,正在把无数公司和个人推向深渊:端口裸奔、无鉴权、可被远程接管。现在,暴力破解、数据清空已经真实发生了,这不是危言耸听。各位CEO纷纷预警:ClawdBot,正在酝酿一场全球灾难! 一夜之间,全世界都陷入ClawdBot狂潮。 早上打开时间线,满屏都…

作者头像 李华