• 使用guacamole进行WEB远程桌面连接


    Apache Guacamole 是一个无客户端的远程桌面网关。它支持标准协议,如 VNC、RDP 和 SSH,甚至还支持k8s、telnet连接。它可以在任何有网络的地方连接上你的服务器和Windows主机。可以同时连接多个终端,并且能够无缝切换。本文采用docker进行部署

    部署教程

    安装docker

    首先需要安装Docker,使用官方一键安装脚本部署或者在线安装,已安装的直接忽略

    yum install docker-ce
    systemctl start docker.service 
    systemctl enable docker.service 
    
    • 1
    • 2
    • 3

    拉取Guacamole服务器、Guacamole客户端和MySQL的Docker镜像:

    docker pull guacamole/guacamole
    docker pull guacamole/guacd
    docker pull mysql/mysql-server
    
    • 1
    • 2
    • 3
    docker image ls
    [root@k8master1 ~]# docker image ls
    REPOSITORY                                                                     TAG       IMAGE ID       CREATED         SIZE
    guacamole/guacamole                                                            latest    36d1e135bac7   4 hours ago     496MB
    guacamole/guacd                                                                latest    fca0b87cc016   27 hours ago    149MB
    mysql/mysql-server                                                             latest    1d9c2219ff69   9 months ago    496MB
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    部署mysql

    运行docker容器

    docker run -p 3306:3306 --name mysqltest -e MYSQL_ROOT_PASSWORD=123456 -d mysql/mysql-server
    
    • 1

    Guacamole程序不会自动初始化数据库,运行MySQL之后需要手动初始化数据库,而Guacamole提供了数据库文件,只需要生成导入就可以了。

    docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
    
    • 1

    重命名并将initdb.sql移动到MySQL容器中,后续就能通过这个生成表:

    docker cp initdb.sql mysqltest:/guac_db.sql
    
    • 1

    在MySQL的Docker容器中打开bash终端:

    docker exec -it mysqltest bash
    
    • 1

    使用密码登录。如下所示:

    mysql -u root -p123456
    
    • 1

    创建数据库,以及创建一个新的数据库和用户

    CREATE DATABASE guacamole_db;
    CREATE USER ‘guacamole_user’@’%’ IDENTIFIED BY ‘guacamole_user_password’;
    GRANT SELECT,INSERT,UPDATE,DELETE ON guacamole_db.* TO ‘guacamole_user’@’%’;
    FLUSH PRIVILEGES;
    
    • 1
    • 2
    • 3
    • 4

    最后,输入quit退出即可
    在bash终端中,使用初始化脚本为新数据库创建数据表:

    cat guac_db.sql | mysql -u root -p guacamole_db
    
    • 1

    到这里,数据库的操作其实都完成了,但是我们还是小心为上。再验证数据表是否已成功添加。如果guacamole数据库中不存在新建的表,请再次确认之前的步骤均已正确执行。

    连接数据库

    docker exec -it mysqltest bash
    mysql -u root -p123456
    
    • 1
    • 2

    选择数据库

    USE guacamole_db;
    
    • 1

    查看所有表

    SHOW TABLES;
    
    • 1

    如果正确无误的话,你看到的应该和我的差不多。

    mysql> SHOW TABLES;
    +---------------------------------------+
    | Tables_in_guacamole_db                |
    +---------------------------------------+
    | guacamole_connection                  |
    | guacamole_connection_attribute        |
    | guacamole_connection_group            |
    | guacamole_connection_group_attribute  |
    | guacamole_connection_group_permission |
    | guacamole_connection_history          |
    | guacamole_connection_parameter        |
    | guacamole_connection_permission       |
    | guacamole_entity                      |
    | guacamole_sharing_profile             |
    | guacamole_sharing_profile_attribute   |
    | guacamole_sharing_profile_parameter   |
    | guacamole_sharing_profile_permission  |
    | guacamole_system_permission           |
    | guacamole_user                        |
    | guacamole_user_attribute              |
    | guacamole_user_group                  |
    | guacamole_user_group_attribute        |
    | guacamole_user_group_member           |
    | guacamole_user_group_permission       |
    | guacamole_user_history                |
    | guacamole_user_password_history       |
    | guacamole_user_permission             |
    +---------------------------------------+
    23 rows in set (0.00 sec)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    在Docker中启动guacd:

    docker run --name myguacd -d guacamole/guacd
    
    • 1

    连接容器,以便Guacamole验证存储在MySQL数据库中的凭证:

    docker run --name myguacamole --link myguacd:guacd --link mysqltest:mysql -e MYSQL_DATABASE=guacamole_db -e MYSQL_USER=guacamole_user -e MYSQL_PASSWORD=guacamole_user_password -d -p 0.0.0.0:9090:8080 guacamole/guacamole
    
    • 1

    因为需要三个容器联动,保险起见,我们还是再检查一下
    可通过以下命令查看所有正在运行的Docker容器:

    [root@k8master1 ~]# docker ps
    CONTAINER ID   IMAGE                 COMMAND                  CREATED       STATUS                 PORTS                                                        NAMES
    7b9b079cd966   guacamole/guacamole   "/opt/guacamole/bin/…"   2 hours ago   Up 2 hours             0.0.0.0:9090->8080/tcp                                       myguacamole
    22376ea97d95   guacamole/guacd       "/bin/sh -c '/opt/gu…"   2 hours ago   Up 2 hours (healthy)   4822/tcp                                                     myguacd
    b5fa8ca1002b   mysql/mysql-server    "/entrypoint.sh mysq…"   3 hours ago   Up 3 hours (healthy)   0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060-33061/tcp   mysqltest
    [root@k8master1 ~]#
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    可以看到myguacamole、myguacd和mysqltest等三个容器在后台运行中

    请在浏览器中访问localhost:8080/guacamole/

    默认的登录账户是guacadmin,默认登录密码guacadmin。登录后应尽快修改登录账户及密码。当然,如果你不是配置在本地,那你就把localhost换成对应的ip地址即可。
    在这里插入图片描述
    成功登录后,选择settings->connections->new connection
    在这里插入图片描述
    新建一个连接,采用ssh协议
    在这里插入图片描述
    在这里插入图片描述
    配置完成后,选择返回home页面
    在这里插入图片描述
    这是就可以通过浏览器访问需要访问的主机了
    在这里插入图片描述

  • 相关阅读:
    window环境下安装大数据环境
    园子的商业化努力-阿里云云市场合作-第1季第1集
    数理逻辑:1、预备知识
    Mac-问题
    【vue实战项目】通用管理系统:登录页
    树莓派无需显示屏的VNC Viewer方式的远程连接
    MySQL索引
    Github每日精选(第38期):Java 8+ Jar 和 Android APK 逆向工程套件(反编译器、编辑器、调试器等)bytecode-viewer
    c# 和 c++ 匿名互相传递参数
    【Java】PAT(Basic Level) 1016 部分A+B
  • 原文地址:https://blog.csdn.net/mandarin_meng/article/details/133944247