有时我们需要在服务器上运行一个 GUI 程序,然而我们是通过 SSH 连接到服务器的,看不到图形界面,怎么办呢?我们可以通过 X11 将 GUI 程序的界面转发到本地。

在 Mac 上使用 X11 需要安装 XQuartz,XQuartz 就是 macOS 下的 X11:

brew install --cask xquartz

如果你的服务器使用 Linux 系统,那么已经自带了 X11,不需要安装。

接下来使用 SSH 连接到服务器,并使用 -X-Y 选项启用 X11 转发:

ssh -Y user@host  # ssh -Y 选项允许使用受信任的 X11 转发

user@host 替换为你自己要登录的远程主机的用户名和 IP 地址

这时,我们就可以运行一个 GUI 程序看看转发是否生效了。在服务器运行以下命令:

gedit &

如果一切正常,你会在本地主机上看到一个 gedit 窗口。

由于网络延迟的原因,你可能要等几秒至几十秒才能看到 X11 转发的窗口

Troubleshooting

如果看到下面的报错,说明你可能没有设置 DISPLAY 环境变量:

Error: Can't open display: xxx

解决方法是先设置 DISPLAY 环境变量,再打开 SSH 连接:

export DISPLAY=:0  # 设置 X11 Server 为本地主机

参考:macOS 安装并使用 XQuartz | 猫言猫语

在 Mac 上使用 X11的更多相关文章

  1. Mac上MySQL忘记root密码且没有权限的处理办法&workbench的一些tips (转)

    忘记Root密码肿么办 Mac上安装MySQL就不多说了,去mysql的官网上下载最新的mysql包以及workbench,先安装哪个影响都不大.如果你是第一次安装,在mysql安装完成之后,会弹出来 ...

  2. 让 asp.net 在 mac 上飞

    .NET 不跨平台一直饱受争议,虽然微软前端时间放出些消息,要支持.NET跨平台的发展,但是微软一直坚持着不主动.不拒绝.不负责的三不态度,仍然用一种软件帝国的心态,折腾着一些毫无新意的东西.微软想要 ...

  3. Mono 4.0 Mac上运行asp.net mvc 5.2.3

    Mono 4.0 已经发布,二进制包已经准备好,具体的发布说明参见:http://www.mono-project.com/docs/about-mono/releases/4.0.0/. 今天在Ma ...

  4. 剖析并利用Visual Studio Code在Mac上编译、调试c#程序

    0x00 前言 一周多以前的微软的Build大会上,微软发布了一个让很多人眼前一亮的工具,也是本文的主角——Visual Studio Code.很多使用Windows的朋友都很高兴,认为又多了一个很 ...

  5. PSD文件在MAC上和在WINDOWS上的大小有本质区别

    因为偷懒在MAC上的美工,发我的PSD文件,我就直接在上面做了= =后来不知道为什么无论我怎么合并图层.PSD的大小永远都是107M....然后忍无可忍重新画就从107M变成2M.....MAC为什么 ...

  6. 在Mac上使用Visual Studio Code开发/调试.NET Core代码

    .Net Core 1.0终于发布了,Core的一大卖点就是跨平台.这个跨平台不只是跨平台运行,而且可以跨平台开发.今天抽空研究了下在Mac下如何使用VS Code来开发.NET Core程序,并且调 ...

  7. phabricator在mac上的搭建

    环境:OS X Yosemite 10.10.5 前提:phabricator主要是由php写的,而且是以website方式运行的,所以mac上要先安装好 php + nginx(或apache) + ...

  8. mac 上的 python

    1.mac 上的 python 自己感觉很乱 1.额外安装的 自带的 python27-apple /System/Library/Frameworks/Python.framework/Versio ...

  9. mac上eclipse用gdb调试(转)

    mac上eclipse用gdb调试 With its new OS release, Apple has discontinued the use of GDB in OS X. Since 2005 ...

  10. 在MAC上搭建cordova3.4.0的IOS和android开发环境

    Hello,大家好,今天给大家说说在mac上搭建cordova3.4.0的iOS和Android开发环境,首先下载cordova,地址:https://cordova.apache.org/#down ...

随机推荐

  1. 基于TI Sitara系列AM5728工业开发板——FPGA视频开发案例分享

    前 言 3 1 cameralink_display案例 4 1.1 案例功能 4 1.2 操作说明 4 1.3 关键代码(MicroBlaze) 11 1.4 Vivado工程说明 16 1.5 模 ...

  2. 嵌入式ARM端测试手册——全志T3+Logos FPGA评估板(下)

    前 言 本指导文档适用开发环境: Windows开发环境:Windows 7 64bit.Windows 10 64bit Linux开发环境:Ubuntu18.04.4 64bit 虚拟机:VMwa ...

  3. 什么是RDD

    RDD(Resilient Distributed Dataset)叫做弹性分布式数据集RDD,是Spark中最基本的数据抽象,它代表一个不可变.可分区.里面的元素可并行计算的集合.RDD具有数据流模 ...

  4. 网络化的控制系统简介(NCS)

    作为一个搞物联网应用的,最近才接触到NCS这个概念.有点东西,赶紧记录一下. NCS由通过网络连通的控制环路组成,控制信号和反馈信号会在控制器和本地系统间交换.典型的方块图如下: 其中,本地(Plan ...

  5. 用户数据报协议UDP

    UDP的首部格式如下: (1) 源端口,源端口号.在需要对方回信时选用.不需要时可用全0. ⑵目的端口,目的端口号.这在终点交付报文时必须使用. ⑶长度,UDP用户数据报的长度,其最小值是8(仅有首部 ...

  6. MySQL 纵表转横表查询实现

    纵表转横表查询实现 By:授客 QQ:1033553122 欢迎加入全国软件测试交流群:7156436 实践环境 MySQL 5.7 创建测试表 CREATE TABLE tb_test ( id I ...

  7. ScaleDet:AWS 基于标签相似性提出可扩展的多数据集目标检测器 | CVPR 2023

    论文提出了一种可扩展的多数据集目标检测器(ScaleDet),可通过增加训练数据集来扩大其跨数据集的泛化能力.与现有的主要依靠手动重新标记或复杂的优化来统一跨数据集标签的多数据集学习器不同,论文引入简 ...

  8. 如何为spring配置全局抛出异常注解

    0.首先了解一个注解@ControllerAdvice,他是spring里的一个注解,用于定义全局逻辑异常.数据绑定.请求处理等逻辑,与@ExceptionHandler等注解使用. Controll ...

  9. 在Centos7中使用一键脚本安装Oracle11g

    在Centos7中使用一键脚本安装Oracle11g 1. 环境准备 1.1 系统版本:Centos7.9(2009) 1.2 Oracle版本:Oracle 11g 11.2.0.4 1.3 网络需 ...

  10. 如何理解IOC中的“反转”和DI中的“注入”

    在理解 IOC 中的"反转"和 DI 中的"注入"之前,首先要理解原本的控制流程. 在传统的应用程序中,对象之间的依赖关系通常由调用方(例如客户端或者上层模块) ...