| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> 通过X11远程显示和Verysync实现两台*NIX设备间的轻松协作 -> 正文阅读 |
|
[系统运维]通过X11远程显示和Verysync实现两台*NIX设备间的轻松协作 |
前言由于个人日用FreeBSD,但.NET Core和OpenWrt等的开发则必须在Linux上进行。因此在内网设置一个不带显示器的Linux设备,并将配置过程以此记录。 配置 X11 远程显示????????因为 X11 基于Socket,因此在本机显示远程的X程序是可能的。 ????????(以下配置仅Xorg可用) ????????测试X11 TCP监听的工作状况????????????????只要执行以下内容即可启动一个监听了TCP的X客户端:
??????????????? (需要注意的是,FreeBSD默认安装包和配置都在/usr/local/而不是/,因此以下涉及到文件存在于不同位置的配置都以第一行为Linux,第二行为FreeBSD) ????????????????按下Ctrl-Alt-Fx组合按键,你将看见空白屏幕中有一个xterm。在xterm中运行以下命令以获取你的DISPLAY环境变量:
????????????????那么我们假设你的输出是:1 ????????????????在xterm中运行xterm&,再次启动一个终端,使用ssh登录到你的远程机上,并运行以下命令来查看是否启用了访问控制:
????????????????(此处假设你的主机名或ip地址为freebsd,以下相同。在xhost 前添加DISPLAY 的目的是省去设置环境变量) ????????????????假如你的输出类似于以下两种:
????????????????那么可以不用继续测试。否则,请遵循以下步骤: ????????????????在本地xterm中运行
????????????????再次在ssh中运行
????????????????如果输出正常,那么你的X服务访问已经被允许,可以试着运行一个软件了:
????????配置默认启用X11 TCP监听???????????????由于显示管理器各不相同,因此启用的方法也各不相同。 ????????????????GNOME桌面 / GDM??????????????????????? 转载自Xorg服务开启tcp/ip监听,允许其它机器客户端连接,未在FreeBSD上测试 ??????????????????????? 编辑/usr/share/gdm/gdm.schemas:
??????????????????????? 将default标签内的true改成false即可。 ?????????????????????? KDE Plasma / SDDM??????????????????????? 编辑 /etc/sddm.conf (在FreeBSD上,是 /usr/local/etc/sddm.conf),添加:
?????????????????Lightdm??????????????????????? 转载自X Window的奥秘,未在FreeBSD上测试 ??????????????????????? 运行以下命令以生成Lightdm配置文件:
??????????????????????? 然后编辑/etc/lightdm/lightdm.conf,在末尾添加
?????????配置自动授权远程主机??????????????????????? 仅适用于具有静态IP的网络。如果你在使用DHCP或对此不确定,请断开并重新连接网络并查看断开前后ip是否变化。没有变化则适用于此脚本。 ??????????????????????? 编辑以下文件,保存到~/.local/bin或任何你看不见的地方:
??????????????????????? 本文假设远程机的主机名/IP地址是garuda,请按你的实际状况替换garuda。 ??????????????????????? 将它添加到你的Shell先行执行文件中,例如.zshrc、.bashrc 或是.profile 中:
??????????????????????? 此处假设你将此脚本添加到了~/.local/bin并命名为configure_xhost.sh ??????? 配置远程机自动使用本地机的DISPLAY环境变量??????????????????????? 在远程机的~/.ssh/rc 上添加以下:
??????????????????????? (如果不起作用,那么请添加到默认Shell的先行执行文件rc中) ?????? ??????? 大功告成!现在试着在ssh中运行一个GUI程序,它应该出现在你本地的桌面上。 ?配置Verysync??????? Verysync 微力同步是一个优秀的文件同步方案,使用它传输文件将会很方便。 ??????? Linux上??????????????? 首先进入微力同步官网 - 私有云盘 企业文件同步 团队文件共享协助工具下载一个适用的二进制包 ??????????????? 因为现在Linux大多使用systemd,使用Verysync官方的安装脚本看起来很方便:
??????????????? 此处认定你将Verysync二进制包放在当前目录下并命名为verysync.tar.gz ??????????????? 然后启用systemd的开机自启:
??????????????? 最后启动服务:
??????? FreeBSD上??????????????? 进入微力同步官网 - 私有云盘 企业文件同步 团队文件共享协助工具下载一个适用的二进制包,并解压:
??????????????? 此处认定你下载到了~/Downloads/verysync.tar.gz,并希望解压到~/verysync ??????????????? 在~/.local/bin 编写一个自动启动脚本:
??????????????? 并添加到你桌面环境的自动执行上: ???????? 大功告成!现在,分别在两台机器上打开一个浏览器,配置Verysync吧! 后记??????? 之所以不用虚拟机而是选择两个物理机协同是出于性能的无奈之举,实际上虚拟机NAT模式因为是从localhost连接所以不用xhost配置,这对我来说也是耗时很长的一项。但实际上经过一点摸索便写成了此文。此文是以FreeBSD用户的立场写的,因此不可能直接搬到Linux上,若介绍得有失偏颇,请斧正。 问题??????? 不知为何,fish和zsh似乎都不会读取ssh设置的环境变量。因此我在它们的rc文件中设置了DISPLAY。但若需在机器上直接接显示器,那么就会出现在终端中执行应用cannot open display的问题。 ??????? 虽然在内网基本感受不到延迟,但UI若太复杂的话(比如wine中运行的某国产IM)还是会出现明显的延迟,影响到使用。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 1:27:32- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |