原文地址

https://www.cnblogs.com/Bubgit/p/18829192

实现效果

  • windows显示ubuntu 的 GUI 桌面显示内容, 以wails 项目为例 搭建远程linux 跨平台* 桌面应用程序;
  • 最终效果,在远程ssh连接上开发环境后,可以在本地windows 上看到显示的远程桌面信息,实现远程linux开发GUI程序
  • 同理可以实现Python matplotlib,ROS机器人可视化界面等需要在无GUI环境的linux中调试开发GUI陈旭:

基本原理

  • X11 是一个图形显示协议:X11(也称为 X Window System)是一个用于在计算机上显示图形界面的底层协议。它的主要职责是处理图形的绘制、窗口管理以及输入设备(如键盘和鼠标)的交互;
  • 几乎所有 Linux 上的 GUI 应用程序都基于 X11 构建,确保了广泛的兼容性;
  • X11 的网络透明性使得远程显示图形界面成为可能;

本地环境

windows 10:其他版本暂时没有尝试

VSCode: 需要安装 remote ssh 插件

VcXsrv:作为X11服务器下载地址:https://sourceforge.net/projects/vcxsrv/

远程开发服务器

ubuntu 22

其他自动下载:

注意

本文章仅记录配置x11服务端和客户端的配置,不涉及wails 项目的配置,wails的项目初始化配置请参考其他文章,这里只用于示例远程显示Linux 桌面GUI信息

本地windows软件安装配置 如下图

  1. 下载 VcXsrv 安装包,示例版本为:64.1.20.14.0

  2. VcXsrv 安装过程略,一路默认下一步即可;

  3. 配置windows 环境变量, 注意用户变量和系统变量不一定都需要添加,只需要添加环境变量后,在windows shell中可以拿到环境变量即可, DISPLAY: localhost:0.0

  1. 安装完成后,运行Xlaunch -> Multiple windows -> start no client -> Disable access control ;详细步骤如下:

VsCode 配置 如下图

# 安装必要组件
sudo apt install xauth # 安装x11 测试工具
sudo apt install x11-apps # 安装中文支持包 可以不安,不安中文显示乱码
sudo apt install fonts-wqy-zenhei
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config # 确保以下两行未被注释
X11Forwarding yes
X11UseLocalhost no # 重启SSH服务
sudo systemctl restart sshd # 安装xauth(关键!)
sudo apt install xauth # Debian/Ubuntu
sudo yum install xauth # CentOS/RHEL
  • 启用ssh 的 x11 支持,相当于 ssh -Y user@host
  • 特别注意! 配置完成后要重启 VsCode,否则可能会无法生效,重启的概念是关闭VsCode的所有窗口,再打开,最稳妥的是重启电脑,VsCode老毛病了;

VsCode 重启完成后验证

在 VsCode 连接上远程ssh 服务器后,开一个终端,输入xeyes 或者 xclock 测试能否显示远程服务器的图像:



前置条件,远程服务器的环境变量也能获取到 $DISPLAY 的值是localhost:10.0

注意:远程服务器的$DISPLAY环境变量是

验证业务开发应用 (仅做展示)

wails dev

参考博文:

[1] https://zhuanlan.zhihu.com/p/27155499043

vscode 远程(隧道/ssh) remote 开发 linux 显示远程桌面GUI 配置 SSH X11 服务的更多相关文章

  1. Linux下使用Google Authenticator配置SSH登录动态验证码

    1.一般ssh登录服务器,只需要输入账号和密码.2.本教程的目的:在账号和密码之间再增加一个验证码,只有输入正确的验证码之后,再输入密码才能登录.这样就增强了ssh登录的安全性.3.账号.验证码.密码 ...

  2. Linux多台主机间配置SSH免密登陆

    1.安装ssh.  sudo apt-get install ssh. 安装完成后会在~目录(当前用户主目录,即这里的/home/xuhui)下产生一个隐藏文件夹.ssh(ls -a 可以查看隐藏文件 ...

  3. Linux配置ssh服务和XShell连接Linux

    SSH服务查看和安装,配置: https://www.cnblogs.com/qiuqiuqiu/p/6445426.html https://www.cnblogs.com/yunweis/p/77 ...

  4. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...

  5. Sourcetree配置ssh密钥 - git图形化工具(二)

    这里主要介绍Sourcetree如何导入已经生成好的ssh私钥,如何生成ssh私钥自行百度. 如果Sourcetree没有配置ssh密钥,克隆时会提示如下错误: 仓库类型:这是一个无效的源路径/URL ...

  6. CiSCO 交换机配置 SSH 登陆

    CiSCO 交换机配置 SSH 登陆 题目:在三层交换机上仅运行 SSH 服务,且用户名和密码的方式登录交换机. (一)了解主机名与域名 ​ 1."主机名" 为该设备的名称 ​ 2 ...

  7. git的介绍、git的功能特性、git工作流程、git 过滤文件、git多分支管理、远程仓库、把路飞项目传到远程仓库(非空的)、ssh链接远程仓库,协同开发

    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效.高速地处理从很小到非常大的项目版本管理. [1] 也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码 ...

  8. Linux使用远程X Server显示图形

    背景 通常我们不希望在服务器上安装图形界面,但有时候有些程序需要图形界面,比如安装oracle的时候.此时,可以配置让Linux使用远程的X Server进行图形界面显示. 首先要明确的是Linux ...

  9. 运维开发:python websocket网页实时显示远程服务器日志信息

    功能:用websocket技术,在运维工具的浏览器上实时显示远程服务器上的日志信息 一般我们在运维工具部署环境的时候,需要实时展现部署过程中的信息,或者在浏览器中实时显示程序日志给开发人员看.你还在用 ...

  10. 使用VS Code配合Remote Development插件连接远程服务器(Mac/Linux+Windows) | Using VS Code with Remote Development Connect to Remote Server (Mac/Linux+Windows)

    最新版VS Code(2019年6月)出了一系列新的插件,包括Remote Development,Remote SSH等,使得用户可以使用VS Code远程连接服务器写代码,方便了协同工作.具体配置 ...

随机推荐

  1. bullyBox pg walkthrough Intermediate

    nmap 发现80 和 22端口 访问80 端口发现 跳转 http://bullybox.local/ 在/etc/hosts 里面加上这个域名 dirsearch 扫描的时候发现了.git泄露 用 ...

  2. ESP32 VScode环境问题

    vsdcode esp-idf插件安装 报错: Espressif\tools\idf-python\3.11.2\python.exe -m pip" is not valid. (ERR ...

  3. java中属性和变量的区别与final和抽象类

    属性和变量的区别 变量必须要有初始值: 属性可以没有初始值: 变量的范围只在当前大括号内有效: 属性是对象在哪里使用就在哪里有效: 属性的作用范围要比变量的大一些 属性和变量 public class ...

  4. Mac常用系统配置

    一.系统类 1.隐藏文件夹 打开控制台输入:chflags hidden [拖入需要隐藏的文件夹] 2.特定软件触控栏一直显示F1-F12 选择左上角苹果->系统设置->键盘-> 3 ...

  5. 深入掌握 SQL 深度应用:复杂查询的艺术与技巧

    title: 深入掌握 SQL 深度应用:复杂查询的艺术与技巧 date: 2025/2/10 updated: 2025/2/10 author: cmdragon excerpt: SQL(结构化 ...

  6. Atcoder ABC216G 01Sequence 题解 [ 蓝 ] [ 差分约束 ]

    01Sequence:比较板的差分约束,但有一个很妙的转化. 朴素差分约束 设 \(x_i\) 表示第 \(i\) 位的前缀和. 我们要最小化 \(1\) 的个数,就要求最小解,就要求最长路.因为约束 ...

  7. 并发编程 - 线程同步(九)之信号量Semaphore

    前面对自旋锁SpinLock进行了详细学习,今天我们将学习另一个种同步机制--信号量Semaphore. 01.信号量是什么? 在 C# 中,信号量(Semaphore)是一种用于线程同步的机制,能够 ...

  8. 新塘M051 关于 System Tick设置,3种方法操作

    关于 System Tick设置,给出3种方法,学习并确认OK: 使用 M051BSPv3.01.001版本 一.使用函数CLK_EnableSysTick() 1 //Enable System T ...

  9. 【软件开发】C++使用笔记

    [软件开发]C++使用笔记 数据类型 值类型 存放在栈空间中的一段内存. T:左值,最普通的变量,是具有变量名且可取地址的值. \(~\) :右值,常量或不具备名称的值,无变量名不可取地址.通常都是一 ...

  10. 光猫路由器设置-改桥接、开启UPNP和DMZ的教程

    疑难解答加微信机器人,给它发:进群,会拉你进入八米交流群 机器人微信号:bamibot 简洁版教程访问:https://bbs.8miyun.cn 以电信光猫举例,其他网络百度都有对应教程. 电信光猫 ...