最近,需要接触有关远程连接电脑的东西,然后就想除了teamviewer之类的软件,现在的技术应该有新的媒介进行远程控制了吧,果不其然,Apache有一个web远程连接项目鳄梨仔Guacamole。一看到这个我就迫不及待的部署测试了一下,摁!太香了,分享给大家一起使用。
第一步,安装Docker
因为前面的文章有写过,就不赘述了,点这个连接就可以了。
https://blog.csdn.net/justdoit366/article/details/95936720
第二步,使用MySQL初始化Guacamole身份验证
前面已经安装了docker了,因此,首先我们得把需要的镜像从仓库抓取下来。
1.拉取Guacamole服务器、Guacamole客户端和MySQL的Docker镜像:
docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull mysql/mysql-server
2.当把三个镜像都下载下来后,创建数据库初始化脚本以创建用于验证身份的数据表:
docker run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
3.启动数据库容器
docker run --name mysqltest -e MYSQL_RANDOM_ROOT_PASSWORD=yes -e MYSQL_ONETIME_PASSWORD=yes -d mysql/mysql-server
4.第一次使用MySQL的话,root用户生成一次性密码,可在日志中查看:
docker logs mysqltest
上面划红线的就是一次性密码了,这个很重要,后面要用到,就是下面这行,复制出来,你可以
输入docker logs mysqltest|grep GENERATED
这个命令就能把一次密码列在最下面,切记,加粗部分是密码,别整个复制了。。
[Entrypoint] GENERATED ROOT PASSWORD: 9OLEcH4ndUzizit4SMymeP8uxc3
5.重命名并将initdb.sql移动到MySQL容器中,后续就能通过这个生成表了:
docker cp initdb.sql mysqltest:/guac_db.sql
6.在MySQL的Docker容器中打开bash终端:
docker exec -it mysqltest bash
7.使用一次性密码登录。如下所示:
mysql -u root -p
把刚才强调的一次性密码,复制到里面去即可成功登录,登录后界面
8.由于在重新设定root用户密码之前,终端不会接受任何命令。因此,首先是要重新设置root用户密码
方法:ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘新密码’;
示例:
ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’;
这样,root账户密码就改成123456啦
9.创建数据库,以及创建一个新的数据库和用户
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;
最后,输入quit退出即可
10.在bash终端中,使用初始化脚本为新数据库创建数据表:
cat guac_db.sql | mysql -u root -p guacamole_db
需要输入密码,只需要输入刚才设置的root账户的新密码就可以了
到这里,数据库的操作其实都完成了,但是我们还是小心为上。再验证数据表是否已成功添加。如果guacamole数据库中不存在新建的表,请再次确认之前的步骤均已正确执行。
连接数据库
mysql -u root -p
选择数据库
USE guacamole_db;
查看所有表
SHOW TABLES;
如果正确无误的话,你看到的应该和我的差不多。
到这里,全部完毕,如果不一致,就再一遍,一致的同学
输入exit退出容器,进入下一步吧
第三步,在浏览器中访问Guacamole
1.在Docker中启动guacd:
docker run --name myguacd -d guacamole/guacd
2.连接容器,以便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:8080:8080 guacamole/guacamole
因为需要三个容器联动,保险起见,我们还是再检查一下
可通过以下命令查看所有正在运行的Docker容器:
docker ps
可以看到myguacamole、myguacd和mysqltest等三个容器都在后台安稳的跑着
3.请在浏览器中访问localhost:8080/guacamole/。默认的登录账户是guacadmin,默认登录密码guacadmin。登录后应尽快修改登录账户及密码。当然,如果你不是配置在本地,那你就把localhost换成对应的ip地址即可。
第四步,配置远程控制终端信息
嘻嘻,搞了这么久,配了三个容器,整了一堆,只是看到界面,但是还没有享受到成果,满足吗?
现在就是前面的辛苦的收成时刻了。
1.登录后,看到一个空空如也的页面,懵了吧
留意一下右上角,是不是有刚才登录的账户名,转机就在这里。
2.点击用户名,看到展开的菜单了吧,点击Settings
3.跳转到一个新界面,点击Connections
4.点击New Connection
5.对照我在图中输入的项,填写打算远程控制的机器信息,填写完毕拉到最下面点save即可
6.再次点击用户名,然后点击Home,回到首页刚才新增的终端就显示出来了。
7.点击该终端,输入密码,即可成功登录,当然,为了方便,你也可以在上面这个页面把密码也配置了,那样就不需要再输入密码了。记得做好防护措施噢!
是不是太棒了,使用之后感觉美滋滋,通过浏览器可以访问控制Linux,windows等操作系统,真的是太爽了。后面有空的话,还会出一个有关这个的原理分析,不过最近想写的太多,哈哈,大家一起沉迷在新奇的技术中啊。