远程Linux机器图形化界面使用及音频转发

对于一些远程Linux云机器,一般我们在使用时通过各种ssh连接工具连接,并使用命令行方式操作,但是部分需要图形化界面验证的应用,必须需要使用到远程机器的图形化功能,本文记录总结一些跟远程使用Linux机器图形化界面以及需要音频的一些方法。

前提

基本上远端机器上都需要安装界面系统,我们在本地连接时才能实现图形化界面,一般来说安装界面系统的命令有以下:

yum groupinstall "X Windows System"
#Rhel系统下使用:
yum groupinstall "Server with GUI"
yum groupinstall "gnome-desktop"

不确定界面环境安装的具体名字,可以通过以下指令把所有可安装的列出来:

yum group list

最后执行 init 5启动界面

第一种方法:X11转发界面

使用X11转发界面功能,需要再本地系统上安装X11服务器(一般的远程连接工具如mobaxterm等都带,开启即可),远程服务器上需要配置好sshd的X11选项。
它的原理是远端服务器的X请求转发到本地ssh客户端上的XServer
例子: Kylin系统机器配置

1.修改sshd_config
vim /etc/ssh/sshd_config
AllowAgentForwarding yes
AllowTcpForwarding yes
X11Forwarding yes
X11UseLocalhost no
2. systemctl restart sshd
3. 重新连接会话

如果仍有问题:请检查xorg-X11-xauth包是否安装成功

第二种方法:VNC远程连接界面

使用VNC访问界面,需要再远程机器上安装VNC Server,本地通过VNC Client(MOBAXterm自带VNC)去连接
它的原理是把图像绘制好后通过远程发送给VNC Client进行解码显示

远程机器安装VNC Server:yum -y install tigervnc-server
远程机器启动VNC Server:vncserver
默认启动的vnc服务端口是5901,可以通过vncserver :num来指定端口(用于机器网络策略被限制端口范围是使用),启动的端口号为5900+num

本地机器使用带有VNC Client连接功能的工具,或者下载VNC Client官方客户端,指定ip和vncserver的端口进行连接

第三种方法:XRDP远程连接界面(可重定向声音)

关于音频重定向使用:在VNC协议远程连接桌面中,默认情况下并不支持音频重定向
而RDP协议,默认支持音频重定向,可以在远端机器上安装RDP协议支持包,本地通过RDP协议连接,既可以实现图形化界面机器,也可以实现音频转发。

基于Rhel7.5系统进行安装操作演示:(rpm安装是由于远程机器的yum源没有安装包,所以下载的rpm进行安装)

  1. 远程机器安装桌面环境,见前提部分
  2. 安装xrdp:yum install xrdp-0.9.25-2.el7.x86_64.rpm
    需要安装的依赖包:yum install imlib2-1.4.9-8.el7.x86_64.rpm
  3. 启动xrdp:
systemctl start xrdp
systemctl enable xrdp
  1. 安装PulseAudio服务(需要11.1版本): yum install pulseaudio
    查看版本是否正确:pulseaudio --version
    安装11.1版本(这里使用源码编译安装,需要依赖intltool、libtool、libsndfile):
    1)安装intltool
tar -zxvf intltool-0.40.6.tar.gz
cd intltool-0.40.6/
./configure --prefix=/usr
make && make install

若安装报错:checking for XML::Parser…configure:error:XML::Parser perl module is required for intltool
需要安装:yum install perl-XML-Parser

2)安装libtool

tar -xvf libtool-2.4.6.tar.gz
cd libtool-2.4.6/
./configure
make && make install

若安装报错:checking for GNU M4 that supports accurate traces…configure:error:no acceptable m4 could be found in $PATH.
需要安装:yum install m4

3)安装libsndfile

yum install libsndfile-1.0.25-12.el7.x86_64.rpm
yum install libsndfile-devel-1.0.25-12.el7.x86_64.rpm
yum install libsndfile-utils-1.0.25-12.el7.x86_64.rpm

4)安装pulseaudio-11.1

tar -xvf pulseaudio-11.1.tar.xz
cd pulseaudio-11.1/
./configure --prefix={where you want to install} --without-caps
make && make install
  1. 安装pulseaudio-module-xrdp
    (使用源码安装,需要依赖autoconf、automake、libtool)
yum install autoconf -y
yum install automake -y
yum install libtool -y
yum install pulseaudio-libs-devel -y
unzip pulseaudio-module-xrdp-master.zip
cd pulseaudio-module-xrdp-master/
./bootstrap
./configure PULSE_DIR={pulseaudio-11.1源码路径}

检查是否安装成功:

ls $(pkg-config --variable=modlibexecdir libpulse)

结果中有module-xrdp-sink.so,module-xrdp-source.so说明成功
6. 启动PulseAudio服务:pulseaudio --start(需要用普通用户启动,root用户启动会被限制)
7. 重启xrdp:systemctl restart xrdp
8. 使用Windows的远程桌面连接工具,输入ip地址连接到远程Linux机器上(此方案注意,登陆会黑屏一会反应比较慢,且同一个用户不能在本地和远程同事登陆,也就是同一个用户只允许同一个会话)

相关推荐

  1. 远程Linux机器图形界面使用音频转发

    2024-07-11 19:16:03       25 阅读
  2. 服务器通常不使用图形界面的原因

    2024-07-11 19:16:03       51 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-11 19:16:03       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-11 19:16:03       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-11 19:16:03       57 阅读
  4. Python语言-面向对象

    2024-07-11 19:16:03       68 阅读

热门阅读

  1. 【React Hooks原理 - useReducer】

    2024-07-11 19:16:03       19 阅读
  2. 2024.7.10 刷题总结

    2024-07-11 19:16:03       25 阅读
  3. 什么是逻辑运算中的短路效应?

    2024-07-11 19:16:03       22 阅读
  4. 开发指南043-自定义注解

    2024-07-11 19:16:03       24 阅读
  5. C语言 比较两个字符串

    2024-07-11 19:16:03       20 阅读
  6. Andt Desgin Vue Pro 项目添加前缀访问解决

    2024-07-11 19:16:03       17 阅读
  7. MDA协议

    2024-07-11 19:16:03       23 阅读
  8. Spring Boot中集成DJL运行Python PyTorch模型:MNIST实战

    2024-07-11 19:16:03       18 阅读