铁汉柔情:一个“幼儿父”的修炼之道

核心内容摘要

烟火人间,为爱流泪,脸红心跳,翻江倒海的爱恋
冰山之下,藏着一颗怎样的心?——解密那些“高冷”的老师

解锁无限可能:蘑菇mogu2.6.1,你的数字生活新纪元

在 VSCode 中配置 SSH 并实现 X11 转发Windows、macOS、Linux你需要在VSCode中配置支持X11转发的SSH连接实现远程运行带图形界面的程序、窗口能映射到本地显示的效果核心需要完成本地X11服务搭建、远程服务器SSH配置开启X

VSCode的SSH插件配置三步下面分Windows/macOS/Linux三大系统详细说明Windows是最常用且步骤稍多的场景重点讲解。

前提准备VSCode已安装Remote - SSH插件微软官方的插件IDms-vscode-remote.remote-ssh本地能通过SSH正常连接远程Linux服务器账号、密码/密钥已配置远程服务器是Linux系统X11是Linux/Unix的图形转发协议Windows服务器不适用。

Windows系统本地配置步骤Windows本身没有内置X11服务需要先安装X11服务器软件推荐轻量易用的Xming或VcXsrvVcXsrv是开源免费的更推荐。

步骤1安装并配置VcXsrv本地X11服务下载VcXsrv官网下载直接安装下一步到底即可启动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服务启动成功。

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

步骤2配置Windows系统环境变量告诉SSH本地X11地址SSH需要通过环境变量DISPLAY知道本地X11服务的地址Windows下配置右键「此电脑」→「属性」→「高级系统设置」→「环境变量」在用户变量中点击「新建」添加变量变量名DISPLAY变量值localhost:

0固定值对应VcXsrv的默认监听端口点击确定保存重启VSCode让环境变量生效重要。

步骤3远程Linux服务器开启X11转发核心配置需要修改服务器的SSH配置文件sshd_config确保X11相关选项开启操作如下远程登录服务器执行命令编辑配置文件需要root权限sudo vi /etc/ssh/sshd_config找到以下配置项修改为对应值如果注释掉了先删除#取消注释X11Forwarding yes # 开启X11转发必须为yes X11UseLocalhost no # 关键Windows下必须设为no否则会端口映射失败 X11DisplayOffset 10 # 可选默认值即可避免端口冲突 AllowTcpForwarding yes # 开启TCP转发X11依赖此选项 PermitTunnel yes # 可选增强转发兼容性保存并退出vi按Esc输入:wq回车重启服务器的sshd服务让配置生效# CentOS/RHEL/Fedora sudo systemctl restart sshd # Ubuntu/Debian sudo service ssh restart验证服务器是否安装X11基础库如果远程没有图形库运行图形程序会报错# Ubuntu/Debian sudo apt install -y x11-apps # 包含xeyes、xclock等测试工具 # CentOS/RHEL/Fedora sudo dnf install -y xorg-x11-apps步骤4VSCode配置SSH连接开启X11转发打开VSCode按F1输入Remote-SSH: Open SSH Configuration File选择用户级配置文件如C:\Users\你的用户名.ssh\config推荐在配置文件中为你的远程服务器添加/修改配置必须加上ForwardX11 yes和ForwardX11Trusted yes# 示例配置按需修改Host、HostName、User、IdentityFile Host my-server # 自定义连接名VSCode中显示的名称 HostName

192.

168.

100 # 远程服务器IP/域名 User root # 远程登录账号 Port 22 # SSH端口默认22 IdentityFile C:\Users\你的用户名\.ssh\id_rsa # 可选密钥登录的私钥路径密码登录可省略 ForwardX11 yes # 核心开启X11转发 ForwardX11Trusted yes # 信任X11转发避免权限问题 ConnectTimeout 30 # 可选连接超时时间保存配置文件按F1输入Remote-SSH: Connect to Host选择上面的my-server输入密码/确认密钥连接远程服务器连接成功后VSCode右下角会显示「SSH: my-server」表示已进入远程开发环境。

步骤5测试X11转发是否生效在VSCode中打开远程终端终端→新建终端默认是远程服务器的终端执行测试命令xeyes会弹出一个跟着鼠标动的眼睛窗口或xclock时钟窗口xeyes如果本地弹出对应的图形窗口说明X11转发配置成功如果报错看文末「

常见问题排查」。

macOS系统本地配置步骤macOS内置了X11服务的基础组件但需要安装XQuartz苹果官方的X11实现步骤比Windows简单安装XQuartz官网下载安装后必须重启Mac核心否则X11服务不生效启动XQuartz启动台找到XQuartz打开后会自动运行X11服务无需额外配置远程服务器配置和Windows步骤3完全一致sshd_config中X11Forwarding yesX11UseLocalhost noVSCode SSH配置和Windows步骤4一致配置文件中加上ForwardX11 yes和ForwardX11Trusted yes测试远程终端执行xeyes本地会弹出图形窗口直接生效。

Linux系统本地配置步骤Linux系统本身原生支持X11无需安装额外X11服务步骤最简本地确保安装了X11基础库一般桌面版Linux都自带服务器版执行sudo apt install x11-apps/sudo dnf install xorg-x11-apps远程服务器配置仅需将sshd_config中X11Forwarding yes开启即可X11UseLocalhost可设为yes也可noVSCode SSH配置添加ForwardX11 yes和ForwardX11Trusted yes测试远程终端执行xeyes本地直接弹出图形窗口。

四、

常见问题排查配置失败必看问题1执行xeyes报错Error: Cant open display: localhost:

1

0或DISPLAY is not set原因1本地X11服务未启动WindowsVcXsrv没开macOSXQuartz没开原因2Windows未配置DISPLAY环境变量或未重启VSCode原因3远程服务器sshd_config中X11UseLocalhost设为yesWindows必须设为no解决逐一检查上述三点重启对应服务/VSCode。

问题2执行xeyes报错No protocol specified或Permission denied原因1Windows的VcXsrv未勾选Disable access control原因2VSCode SSH配置未加ForwardX11Trusted yes原因3本地DISPLAY环境变量值错误必须是localhost:

0解决重新配置VcXsrv补全VSCode的SSH配置项。

问题3VSCode连接远程时卡住或X11窗口卡顿原因1网络延迟高X11是基于TCP的图形转发对网络有一定要求原因2VcXsrv勾选了Native opengl解决取消Native opengl使用有线网络或降低远程图形程序的分辨率。

问题4远程服务器执行图形程序本地无窗口但无报错原因远程服务器的DISPLAY环境变量未被正确映射VSCode的SSH插件会自动设置无需手动改解决在远程终端执行echo $DISPLAY查看是否有值如localhost:

1

0如果为空重新连接VSCode的SSH。

总结VSCode配置带X11的SSH核心要点本地必须有X11服务Windows装VcXsrv关OpenGL开免访问控制、macOS装XQuartz、Linux原生支持远程服务器关键配置sshd_config中X11Forwarding yes X11UseLocalhost noWindows必设no重启sshdVSCode SSH配置必须添加ForwardX11 yes和ForwardX11Trusted yesWindows需配置本地DISPLAYlocalhost:

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

黄色下载官方版下载-黄色下载官方版下载应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123