Mobaxterm的Xserver服务打开远程的firefox实例

        • 前言
        • 摘要
    • 主要工具
          • 1. win10
          • 2. linux
  • Linux服务器上安装过程与问题
    • 可视化展示
    • 效果图
    • 资源收集

前言

由于经常性网络非常差,但是ssh系列的通过租任的百度服务器先通过wget载到服务器,在从服务器通过sftp下载速度较快,具体原因不清楚,但是就萌生了通过ssh浏览东西,在下载的想法。
经网络搜索X11协议可以对浏览器交互的转发。
注:本章将介绍有操作和解决的问题,还存在部分遗留问题。有的操作可能因为非连贯性问题,所有在后面有补充,比如我升级python2到python3结果造成yum的异常。大部分解决都是经过搜索获取的,将会把来源附上。实现的效果图也将提供。

摘要

x11 mobaxterm ssh xorg-x11-xauth

主要工具

1. win10

mobaxterm:我是用的是便携式版本,直接在win10打开即可,但是这个最新12版本我下载不了,官网可以访问,但是使用服务器wget也下载不了,最终让同学帮忙下载的。

2. linux

firefox 通过管理软件下载
ssh 服务端和客户端 这个基本上远程机器都有,我没有操作下载
mesa-dri-drivers 通过管理软件下载
xorg-x11-xauth通过管理软件下载

Linux服务器上安装过程与问题

  1. 在linux服务器安装火狐软件
#使用yum安装
yum -y install firefox yum install firefox

ssh连接上远程服务器直接使用 firefox 打开,将有异常信息

Failed to open connection to “session” message bus: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11 Running without a11y support! Error: no DISPLAY environment variable specified

  1. Linux进行ssh的x11配置并重启

2.1 修改ssh配置

[root@linux-template-7 ~]# cat /etc/ssh/sshd_config
vi /etc/ssh/sshd_config 
X11Forwarding yes
X11UseLocalhost no -- 禁止将X11转发请求绑定到本地回环地址上

2.2 ssh重启

#先使用root权限进行机器重启Reboot the system.重启服务器
reboot
#机器重启后再重启ssh服务
service sshd restart
  1. x11的鉴权工具安装

问题:Error getting authority: Error initializing authority: Could not connect: Connection refused (g-io-error-quark, 39)

 yum install xorg-x11-xauth
#相关执行展示
已加载插件:langpacks, versionlock
base                                                                  | 3.6 kB  00:00:00
epel                                                                  | 4.7 kB  00:00:00
extras                                                                | 2.9 kB  00:00:00
updates                                                               | 2.9 kB  00:00:00
webtatic                                                              | 3.6 kB  00:00:00
(1/3): epel/x86_64/updateinfo                                         | 1.0 MB  00:00:00
(2/3): updates/7/x86_64/primary_db                                    | 3.0 MB  00:00:00
(3/3): epel/x86_64/primary_db                                         | 6.8 MB  00:00:00
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
正在解决依赖关系
--> 正在检查事务
---> 软件包 xorg-x11-xauth.x86_64.1.1.0.9-1.el7 将被 安装
--> 正在处理依赖关系 libXmuu.so.1()(64bit),它被软件包 1:xorg-x11-xauth-1.0.9-1.el7.x86_64 需                             要
--> 正在检查事务
---> 软件包 libXmu.x86_64.0.1.1.2-2.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=============================================================================================
 Package                   架构              版本                      源               大小
=============================================================================================
正在安装:
 xorg-x11-xauth            x86_64            1:1.0.9-1.el7             base             30 k
为依赖而安装:
 libXmu                    x86_64            1.1.2-2.el7               base             71 k

事务概要
=============================================================================================
安装  1 软件包 (+1 依赖软件包)

总下载量:101 k
安装大小:216 k
Is this ok [y/d/N]: y
Downloading packages:
(1/2): libXmu-1.1.2-2.el7.x86_64.rpm                                  |  71 kB  00:00:00
(2/2): xorg-x11-xauth-1.0.9-1.el7.x86_64.rpm                          |  30 kB  00:00:00
---------------------------------------------------------------------------------------------
总计                                                         491 kB/s | 101 kB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : libXmu-1.1.2-2.el7.x86_64                                                1/2
  正在安装    : 1:xorg-x11-xauth-1.0.9-1.el7.x86_64                                      2/2
  验证中      : libXmu-1.1.2-2.el7.x86_64                                                1/2
  验证中      : 1:xorg-x11-xauth-1.0.9-1.el7.x86_64                                      2/2

已安装:
  xorg-x11-xauth.x86_64 1:1.0.9-1.el7

作为依赖被安装:
  libXmu.x86_64 0:1.1.2-2.el7

完毕!
  1. load driver

问题:libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast

#编辑当前用户(即要启用firefox的用户)的.bash_profile文件
vim ~/.bash_profile 
#追加以下一行:
 unset LIBGL_ALWAYS_INDIRECT
#安装
yum install -y mesa-libGLES-devel.x86_64 mesa-dri-drivers

参见(https://yunwei365.blog.csdn.net/article/details/107139084)

已加载插件:langpacks, versionlock
Excluding 1 update due to versionlock (use "yum versionlock status" to show it)
正在解决依赖关系
--> 正在检查事务
---> 软件包 mesa-dri-drivers.x86_64.0.18.3.4-7.el7_8.1 将被 安装
--> 正在处理依赖关系 mesa-filesystem(x86-64),它被软件包 mesa-dri-drivers-18.3.4-7.el7_8.1.x86_64 需要
--> 正在处理依赖关系 libLLVM-7-rhel.so(LLVM_7)(64bit),它被软件包 mesa-dri-drivers-18.3.4-7.el7_8.1.x86_64 需要
--> 正在处理依赖关系 libLLVM-7-rhel.so()(64bit),它被软件包 mesa-dri-drivers-18.3.4-7.el7_8.1.x86_64 需要
---> 软件包 mesa-libGLES-devel.x86_64.0.18.3.4-7.el7_8.1 将被 安装
--> 正在处理依赖关系 mesa-libGLES = 18.3.4-7.el7_8.1,它被软件包 mesa-libGLES-devel-18.3.4-7.el7_8.1.x86_64 需要
--> 正在处理依赖关系 mesa-khr-devel(x86-64) = 18.3.4-7.el7_8.1,它被软件包 mesa-libGLES-devel-18.3.4-7.el7_8.1.x86_64 需要
--> 正在处理依赖关系 libglvnd-devel(x86-64),它被软件包 mesa-libGLES-devel-18.3.4-7.el7_8.1.x86_64 需要
--> 正在检查事务
---> 软件包 libglvnd-devel.x86_64.1.1.0.1-0.8.git5baa1e5.el7 将被 安装
--> 正在处理依赖关系 libglvnd-opengl(x86-64) = 1:1.0.1-0.8.git5baa1e5.el7,它被软件包 1:libglvnd-devel-1.0.1-0.8.git5baa1e5.el7.x86_64 需要
--> 正在处理依赖关系 libglvnd-gles(x86-64) = 1:1.0.1-0.8.git5baa1e5.el7,它被软件包 1:libglvnd-devel-1.0.1-0.8.git5baa1e5.el7.x86_64 需要
--> 正在处理依赖关系 libglvnd-core-devel(x86-64) = 1:1.0.1-0.8.git5baa1e5.el7,它被软件包 1:libglvnd-devel-1.0.1-0.8.git5baa1e5.el7.x86_64 需要
--> 正在处理依赖关系 libOpenGL.so.0()(64bit),它被软件包 1:libglvnd-devel-1.0.1-0.8.git5baa1e5.el7.x86_64 需要
--> 正在处理依赖关系 libGLESv2.so.2()(64bit),它被软件包 1:libglvnd-devel-1.0.1-0.8.git5baa1e5.el7.x86_64 需要
--> 正在处理依赖关系 libGLESv1_CM.so.1()(64bit),它被软件包 1:libglvnd-devel-1.0.1-0.8.git5baa1e5.el7.x86_64 需要
---> 软件包 llvm-private.x86_64.0.7.0.1-1.el7 将被 安装
---> 软件包 mesa-filesystem.x86_64.0.18.3.4-7.el7_8.1 将被 安装
---> 软件包 mesa-khr-devel.x86_64.0.18.3.4-7.el7_8.1 将被 安装
---> 软件包 mesa-libGLES.x86_64.0.18.3.4-7.el7_8.1 将被 安装
--> 正在检查事务
---> 软件包 libglvnd-core-devel.x86_64.1.1.0.1-0.8.git5baa1e5.el7 将被 安装
---> 软件包 libglvnd-gles.x86_64.1.1.0.1-0.8.git5baa1e5.el7 将被 安装
---> 软件包 libglvnd-opengl.x86_64.1.1.0.1-0.8.git5baa1e5.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决

=================================================================================================
 Package                    架构          版本                              源              大小
=================================================================================================
正在安装:
 mesa-dri-drivers           x86_64        18.3.4-7.el7_8.1                  updates        7.2 M
 mesa-libGLES-devel         x86_64        18.3.4-7.el7_8.1                  updates         60 k
为依赖而安装:
 libglvnd-core-devel        x86_64        1:1.0.1-0.8.git5baa1e5.el7        base            20 k
 libglvnd-devel             x86_64        1:1.0.1-0.8.git5baa1e5.el7        base            11 k
 libglvnd-gles              x86_64        1:1.0.1-0.8.git5baa1e5.el7        base            34 k
 libglvnd-opengl            x86_64        1:1.0.1-0.8.git5baa1e5.el7        base            43 k
 llvm-private               x86_64        7.0.1-1.el7                       base            23 M
 mesa-filesystem            x86_64        18.3.4-7.el7_8.1                  updates         18 k
 mesa-khr-devel             x86_64        18.3.4-7.el7_8.1                  updates         19 k
 mesa-libGLES               x86_64        18.3.4-7.el7_8.1                  updates         16 k

事务概要
=================================================================================================
安装  2 软件包 (+8 依赖软件包)

总下载量:30 M
安装大小:102 M
Downloading packages:
(1/10): libglvnd-core-devel-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm           |  20 kB  00:00:00
(2/10): libglvnd-devel-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm                |  11 kB  00:00:00
(3/10): libglvnd-gles-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm                 |  34 kB  00:00:00
(4/10): libglvnd-opengl-1.0.1-0.8.git5baa1e5.el7.x86_64.rpm               |  43 kB  00:00:00
(5/10): llvm-private-7.0.1-1.el7.x86_64.rpm                               |  23 MB  00:00:00
(6/10): mesa-filesystem-18.3.4-7.el7_8.1.x86_64.rpm                       |  18 kB  00:00:00
(7/10): mesa-dri-drivers-18.3.4-7.el7_8.1.x86_64.rpm                      | 7.2 MB  00:00:00
(8/10): mesa-khr-devel-18.3.4-7.el7_8.1.x86_64.rpm                        |  19 kB  00:00:00
(9/10): mesa-libGLES-devel-18.3.4-7.el7_8.1.x86_64.rpm                    |  60 kB  00:00:00
(10/10): mesa-libGLES-18.3.4-7.el7_8.1.x86_64.rpm                         |  16 kB  00:00:00
-------------------------------------------------------------------------------------------------
总计                                                              34 MB/s |  30 MB  00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  正在安装    : 1:libglvnd-gles-1.0.1-0.8.git5baa1e5.el7.x86_64                             1/10
  正在安装    : mesa-libGLES-18.3.4-7.el7_8.1.x86_64                                        2/10
  正在安装    : 1:libglvnd-opengl-1.0.1-0.8.git5baa1e5.el7.x86_64                           3/10
  正在安装    : mesa-filesystem-18.3.4-7.el7_8.1.x86_64                                     4/10
  正在安装    : mesa-khr-devel-18.3.4-7.el7_8.1.x86_64                                      5/10
  正在安装    : 1:libglvnd-core-devel-1.0.1-0.8.git5baa1e5.el7.x86_64                       6/10
  正在安装    : 1:libglvnd-devel-1.0.1-0.8.git5baa1e5.el7.x86_64                            7/10
  正在安装    : llvm-private-7.0.1-1.el7.x86_64                                             8/10
  正在安装    : mesa-dri-drivers-18.3.4-7.el7_8.1.x86_64                                    9/10
  正在安装    : mesa-libGLES-devel-18.3.4-7.el7_8.1.x86_64                                 10/10
  验证中      : 1:libglvnd-gles-1.0.1-0.8.git5baa1e5.el7.x86_64                             1/10
  验证中      : 1:libglvnd-devel-1.0.1-0.8.git5baa1e5.el7.x86_64                            2/10
  验证中      : llvm-private-7.0.1-1.el7.x86_64                                             3/10
  验证中      : 1:libglvnd-core-devel-1.0.1-0.8.git5baa1e5.el7.x86_64                       4/10
  验证中      : mesa-khr-devel-18.3.4-7.el7_8.1.x86_64                                      5/10
  验证中      : mesa-libGLES-devel-18.3.4-7.el7_8.1.x86_64                                  6/10
  验证中      : mesa-filesystem-18.3.4-7.el7_8.1.x86_64                                     7/10
  验证中      : mesa-libGLES-18.3.4-7.el7_8.1.x86_64                                        8/10
  验证中      : mesa-dri-drivers-18.3.4-7.el7_8.1.x86_64                                    9/10
  验证中      : 1:libglvnd-opengl-1.0.1-0.8.git5baa1e5.el7.x86_64                          10/10

已安装:
  mesa-dri-drivers.x86_64 0:18.3.4-7.el7_8.1     mesa-libGLES-devel.x86_64 0:18.3.4-7.el7_8.1

作为依赖被安装:
  libglvnd-core-devel.x86_64 1:1.0.1-0.8.git5baa1e5.el7
  libglvnd-devel.x86_64 1:1.0.1-0.8.git5baa1e5.el7
  libglvnd-gles.x86_64 1:1.0.1-0.8.git5baa1e5.el7
  libglvnd-opengl.x86_64 1:1.0.1-0.8.git5baa1e5.el7
  llvm-private.x86_64 0:7.0.1-1.el7
  mesa-filesystem.x86_64 0:18.3.4-7.el7_8.1
  mesa-khr-devel.x86_64 0:18.3.4-7.el7_8.1
  mesa-libGLES.x86_64 0:18.3.4-7.el7_8.1

完毕!

遗留未解决问题

Running without a11y support!

(firefox:8159): Gtk-WARNING **: 20:49:47.699: Could not load a pixbuf from icon        theme.
This may indicate that pixbuf loaders or the mime database could not be found.

###!!! [Parent][RunMessage] Error: Channel error: cannot send/recv

###!!! [Parent][MessageChannel] Error: (msgtype=0x350068,name=PContent::Msg_Susp       endInputEventQueue) Channel error: cannot send/recv

可视化展示

note:由于服务器只有1G,因此展示的时候非常慢,一流的问题也可能对显示造成影响

效果图

可见部分汉字文字未正常显示,由于只有1G内存,因此不排除是内存不足等原因,英文网站是没有这种乱码的情况。
比较大概率是没有装中文字体。可以搜 fontconfig这个相关的安装中文字体方案进行解决。
在这里插入图片描述
通过本地拷贝的"测试"汉字进行搜索,可搜索,但是出来程序标题正常显示,搜索的内容还是异常显示
在这里插入图片描述
在这里插入图片描述

资源收集

#firefox位置定位
[xujiayu@instance-v2u6h6uo ~]$ command -v firefox
/usr/bin/firefox
#经查看firefox是脚本文件
[xujiayu@instance-v2u6h6uo ~]$ file /usr/bin/firefox
/usr/bin/firefox: Bourne-Again shell script, ASCII text executable
[xujiayu@instance-v2u6h6uo ~]$ more /usr/bin/firefox
[xujiayu@instance-v2u6h6uo ~]$ view /usr/bin/firefox
/a11y
# Make sure at-spi-bus is running
if ! dbus-send --session            \
     --dest=org.freedesktop.DBus    \
     --type=method_call             \
     --print-reply                  \
     /org/freedesktop/DBus          \
     org.freedesktop.DBus.ListNames \
     | grep org.a11y.Bus > /dev/null; then
    if [ -f "$MOZ_LIB_DIR/firefox/bundled/libexec/at-spi-bus-launcher" ]; then
        echo "Starting a11y dbus service..."
        $MOZ_LIB_DIR/firefox/bundled/libexec/at-spi-bus-launcher &
    else
        echo "Running without a11y support!"
    fi
fi
#apt-get存在时
 sudo apt-get install openssh-client
#yum
yum search openssh-client
#没有时安装
yum -y install openssh-client

pacman -S gdk-pixbuf21

The Gdk Pixbuf package is a toolkit for image loading and pixel buffer manipulation. It is used by GTK+ 2 and GTK+ 3 to load and manipulate images. In the past it was distributed as part of GTK+ 2 but it was split off into a separate package in preparation for the change to GTK+ 3.

This package is known to build and work properly using an LFS-9.1 platform

You don’t need an X server on the remote side of the X session, but you will need xauth, which is usually included in an X-related package (xorg-x11-xauth in RHEL and Fedora). If you want to run any programs that use X libraries (or libraries that require the X libraries), you’ll need X libraries on the remote end to execute those programs2

这是因为yum采用python作为命令解释器,这可以从/usr/bin/yum文件中第一行#!/usr/bin/python发现。而python版本之间兼容性不太好,使得2.X版本与3.0版本之间存在语法不一致问题。而CentOS 5自带的yum采用的是python2.4,当系统将python升级到2.6或3.0后,出现语法解释错误3

File "/usr/bin/yum", line 30 
except KeyboardInterrupt, e: 
                                         ^
SyntaxError: invalid syntax
$ vi /usr/bin/yum

将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2"即可。

vi  /usr/libexec/urlgrabber-ext-down"

将第一行"#!/usr/bin/python" 改为 "#!/usr/bin/python2"即可。
2、然后进行升级操作

  yum -y update

3、最后把步骤1修改的复原

#python版本更替
whereis python
python: /usr/bin/python /usr/bin/python2.7 /usr/lib/python2.7 
/usr/lib64/python2.7 /etc/python /usr/local/bin/python3.7-config 
/usr/local/bin/python3.7m-config /usr/local/bin/python3.7m 
/usr/local/bin/python3.7 /usr/local/lib/python3.7 
/usr/include/python2.7 /opt/hosteye/bin/python2.7 
/usr/share/man/man1/python.1.gz
#查看python连接
ll /usr/bin/python
lrwxrwxrwx. 1 root root 7 10月 11 2017 /usr/bin/python -> python2
#查看原来被连接位置
find / -name python2 2>/dev/null
>/usr/bin/python2
#删除软连接
rm -f /usr/bin/python
#查看新的将被连接位置
find / -name python3 2>/dev/null
>/usr/local/bin/python3
#创建新版本的软连接
ln -s /usr/local/bin/python3.7 /usr/bin/python
#当前python软连接位置
command -v python 2>/dev/null
>/usr/bin/python
#查看是否为软件接触
ll  /usr/bin/python
#查看当前版本
python -V

[1] https://bbs.archlinux.org/viewtopic.php?id=223801
[2] http://www.linuxfromscratch.org/blfs/view/svn/x/gdk-pixbuf.html
[3] https://unix.stackexchange.com/questions/6205/must-an-x11-server-be-installed-for-x11-forwarding-over-ssh-to-work
[4] http://www.mamicode.com/info-detail-1053725.html
[5]https://blog.csdn.net/misiter/article/details/7572288
[6]https://www.cnblogs.com/grimm/p/11103902.html


  1. 1 ↩︎

  2. 3 ↩︎

  3. 6 ↩︎

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐