原文地址

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. 2006. 差的绝对值为 K 的数对数目

    给你一个整数数组 nums 和一个整数 k ,请你返回数对 (i, j) 的数目,满足 i < j 且 |nums[i] - nums[j]| == k . |x| 的值定义为: 如果 x &g ...

  2. 抽象接口USB的实例化

    /* * 接口的使用 * 1.接口使用上也满足多态性 * 2.接口,实际上就是定义了一种规范 * 3.开发中,体会面向接口编程! */ public class USBTest { public st ...

  3. 深入解析 Spring AI 系列:解析请求参数处理

    大家在使用Spring AI项目开发Agent时,可能会发现,尽管外层的接口设计和调用逻辑比较统一,但实际上每个第三方接口在实现时都会有一些微妙的差异.这些差异可能体现在请求参数的构造.数据格式的处理 ...

  4. NFS v3及v4协议区别

    本文分享自天翼云开发者社区<NFS v3及v4协议区别>,作者:章****凯 NFS v4相比v3,有部分功能的增强,如果应用需要实现如下功能,则必须使用NFS v4(建议和应用侧确实是否 ...

  5. 帮您了解CDN节点如何做到访问加速与安全防护

    本文分享自天翼云开发者社区<帮您了解CDN节点如何做到访问加速与安全防护>,作者:尹****荷 网站业务痛点 在当前网站快速发展的背景下,网站业务突增往往伴随着一系列网络安全隐患.主要会有 ...

  6. RabbitMQ(六)——路由模式

    RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...

  7. flutter-全局控制键盘收回和单独控制键盘收回

    局部控制键盘收回 import 'package:flutter/material.dart'; import 'package:TLDF/main.dart'; class KeyboardBack ...

  8. 本地一键运行大模型神器Ollama + DeepSeek R1尝鲜指南

    本地一键运行大模型神器Ollama + DeepSeek R1尝鲜指南 作为AI领域的弄潮儿,你是否苦恼于云端大模型API的高昂成本?想在本机零门槛体验顶尖开源模型?这篇保姆级教程将带你解锁「Olla ...

  9. STC15F104E的外部中断工作异常

    STC15F104E使用了外部中断,发现中断工作有时会失效,必需重新上电才能恢复,使用中不时会失效. 1 /********************************************** ...

  10. Linux - lvm逻辑卷的操作

    执行 lsblk如下所示: [root@idc-poc-60 ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3.7G 0 r ...