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

VSCode Remote SSH运行Python文件X11窗口不显示问题如何排查

本地端(Windows)排查项
  • 必须先安装并启动Windows端X Server程序,常用工具为VcXsrv,启动时需勾选禁用访问控制,同时开启允许来自网络的连接选项,还要在系统防火墙中放行VcXsrv的入站规则,避免X11转发流量被拦截。
  • 检查VSCode Remote-SSH扩展配置:打开VSCode设置页,搜索Remote.SSH: Enable X11 Forwarding,确认该选项已开启;如果本地X Server端口有修改,可额外配置Remote.SSH: X11 Display为localhost:0.0(默认值即可适配绝大多数场景)。
  • 如需在本地终端提前验证,可在PowerShell执行echo $env:DISPLAY,确认输出为localhost:0.0类的有效值。
服务端(Ubuntu VPS)排查项
  • 先安装X11转发相关依赖,执行命令:sudo apt update && sudo apt install -y xauth x11-apps libx11-dev,运行tkinter相关Python代码的话还要额外安装python3-tk包。
  • 检查SSH服务配置,编辑/etc/ssh/sshd_config文件,确认以下参数未被注释且配置正确:

    X11Forwarding yes
    X11DisplayOffset 10
    X11UseLocalhost yes
    修改完成后重启SSH服务生效:sudo systemctl restart sshd

  • 远程连接建立后,在VSCode远程终端执行echo $DISPLAY,正常输出应为localhost:10.0类结果,如果输出为空,可手动执行export DISPLAY=localhost:10.0临时生效,再运行xeyes测试是否能弹出窗口。
  • 如果使用root用户运行程序,需要将普通用户的X11授权凭证同步到root账号下,执行命令:xauth list | grep unix | head -n 1 | sudo xargs xauth add,避免root账号因权限问题无法调用X11转发。
通用验证流程

先跳过VSCode,直接在本地命令行执行带X11转发参数的SSH连接命令:ssh -X 你的远程用户名@VPS公网IP,连接后直接运行xeyes,如果能正常弹出窗口说明X11链路正常,问题出在VSCode配置侧,重启VSCode或者重装Remote-SSH扩展即可修复;如果命令行连接也无法弹出窗口,再按上述本地、服务端排查项逐一核对即可。

内容的提问来源于stack exchange,提问作者skorphil

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:36:03