Apache Guacamole是无客户端远程桌面网关。之所以称为无客户端网关,是因为不需要插件或客户端软件。该实用程序提供了一个HTML5界面,用于启动远程会话。只要您具有浏览器,就不需要安装其他特殊的客户端软件。支持以下常用协议:VNC,RDP,SSH,Telnet。
建筑
鳄梨调味酱包含以下成分:
- 鳄梨酱服务器(Tomcat Servlet容器)
- 鳄梨酱代理服务器(guacd),建立远程连接
- 远程主机–可通过上述协议访问
鳄梨酱服务器可以联系多个代理服务器。使用此功能,可以使用一个前端访问多个网段中的桌面。
我录制了一个YouTube视频,记录了整个过程,并将其发布在这篇文章的结尾。阅读这篇文章后,您可以查看一下。同样,整个基础架构都基于Azure免费层Linux机器,我在其中安装了整个docker软件包。
在安装Docker软件包之前,请先更新Ubuntu系统上的存储库并升级软件包。
sudo apt update
sudo apt upgrade
1.部署Docker
现在使用下面的apt命令安装docker。
sudo apt install docker.io -y
[email protected]:~$ sudo apt install docker.io -y Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: bridge-utils cgroupfs-mount containerd pigz runc ubuntu-fan Suggested packages: ifupdown aufs-tools debootstrap docker-doc rinse zfs-fuse | zfsutils The following NEW packages will be installed: bridge-utils cgroupfs-mount containerd docker.io pigz runc ubuntu-fan 0 upgraded, 7 newly installed, 0 to remove and 0 not upgraded. Need to get 52.2 MB of archives. After this operation, 257 MB of additional disk space will be used. Get:1 http://azure.archive.ubuntu.com/ubuntu bionic/universe amd64 pigz amd64 2.4-1 [57.4 kB] Get:2 http://azure.archive.ubuntu.com/ubuntu bionic/main amd64 bridge-utils amd64 1.5-15ubuntu1 [30.1 kB] Get:3 http://azure.archive.ubuntu.com/ubuntu bionic/universe amd64 cgroupfs-mount all 1.4 [6320 B] Get:4 http://azure.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 runc amd64 1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.1 [1902 kB] Get:5 http://azure.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 containerd amd64 1.2.6-0ubuntu1~18.04.1 [19.4 MB] Get:6 http://azure.archive.ubuntu.com/ubuntu bionic-updates/universe amd64 docker.io amd64 18.09.5-0ubuntu1~18.04.2 [30.7 MB] Get:7 http://azure.archive.ubuntu.com/ubuntu bionic/main amd64 ubuntu-fan all 0.12.10 [34.7 kB] Fetched 52.2 MB in 3s (15.7 MB/s) Preconfiguring packages ... Selecting previously unselected package pigz. (Reading database ... 80108 files and directories currently installed.) Preparing to unpack .../0-pigz_2.4-1_amd64.deb ... Unpacking pigz (2.4-1) ... Selecting previously unselected package bridge-utils. Preparing to unpack .../1-bridge-utils_1.5-15ubuntu1_amd64.deb ... Unpacking bridge-utils (1.5-15ubuntu1) ... Selecting previously unselected package cgroupfs-mount. Preparing to unpack .../2-cgroupfs-mount_1.4_all.deb ... Unpacking cgroupfs-mount (1.4) ... Selecting previously unselected package runc. Preparing to unpack .../3-runc_1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.1_amd64.deb ... Unpacking runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.1) ... Selecting previously unselected package containerd. Preparing to unpack .../4-containerd_1.2.6-0ubuntu1~18.04.1_amd64.deb ... Unpacking containerd (1.2.6-0ubuntu1~18.04.1) ... Selecting previously unselected package docker.io. Preparing to unpack .../5-docker.io_18.09.5-0ubuntu1~18.04.2_amd64.deb ... Unpacking docker.io (18.09.5-0ubuntu1~18.04.2) ... Selecting previously unselected package ubuntu-fan. Preparing to unpack .../6-ubuntu-fan_0.12.10_all.deb ... Unpacking ubuntu-fan (0.12.10) ... Setting up runc (1.0.0~rc7+git20190403.029124da-0ubuntu1~18.04.1) ... Processing triggers for ureadahead (0.100.0-21) ... Setting up cgroupfs-mount (1.4) ... Setting up containerd (1.2.6-0ubuntu1~18.04.1) ... Created symlink /etc/systemd/system/multi-user.target.wants/containerd.service 鈫/lib/systemd/system/containerd.service. Setting up bridge-utils (1.5-15ubuntu1) ... Setting up ubuntu-fan (0.12.10) ... Created symlink /etc/systemd/system/multi-user.target.wants/ubuntu-fan.service 鈫/lib/systemd/system/ubuntu-fan.service. Processing triggers for systemd (237-3ubuntu10.21) ... Processing triggers for man-db (2.8.3-2ubuntu0.1) ... Setting up pigz (2.4-1) ... Setting up docker.io (18.09.5-0ubuntu1~18.04.2) ... Adding group `docker' (GID 115) ... Done. Created symlink /etc/systemd/system/sockets.target.wants/docker.socket 鈫/lib/systemd/system/docker.socket. Processing triggers for ureadahead (0.100.0-21) ... Processing triggers for systemd (237-3ubuntu10.21) ... [email protected]:~$
安装完成后,启动docker服务,并使它每次在系统引导时启动。
sudo systemctl start docker
sudo systemctl enable docker
码头工人 安装在ubuntu 18.04服务器上,请使用以下命令进行检查。
docker version
[email protected]:~$ docker version Client: Version: 18.09.5 API version: 1.39 Go version: go1.10.4 Git commit: e8ff056 Built: Thu May 9 23:11:19 2019 OS/Arch: linux/amd64 Experimental: false Got permission denied while trying to connect to the 码头工人 daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.39/version: dial unix /var/run/docker.sock: connect: permission denied
2.部署Portainer
在安装Portainer之前,请使用下面的docker pull命令从DockerHub下载Portainer映像。
sudo docker pull portainer/portainer
现在,使用下面的简单docker命令运行Portainer。
sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Portainer现在作为容器运行,请使用docker ps命令对其进行检查。
sudo docker ps
[email protected]:~$ sudo docker pull portainer/portainer Using default tag: latest latest: Pulling from portainer/portainer d1e017099d17: Pull complete fac26901c311: Pull complete Digest: sha256:cc226d8a06b6d5e24b44a4f10d0d1fd701741e84a852adc6d40bef9424a000ec Status: Downloaded newer image for portainer/portainer:latest [email protected]:~$ sudo docker volume create portainer_data portainer_data [email protected]:~$ sudo docker run -d -p 9000:9000 --name portainer --restart always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer 836861e9d94fae0098c3a9dcfa7e437c5cd5dace6ea10ba02d3b9556dc295c9e [email protected]:~$
[email protected]:~$ sudo docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
836861e9d94f portainer/portainer "/portainer" About a minute ago Up About a minute 0.0.0.0:9000->9000/tcp portainer
[email protected]:~$
请确保您的云入站端口规则允许tcp 9000进入。
现在,您可以使用虚拟机的公共ip:9000访问您的portainer。更多细节请参考我以前的文章:
//blog.fabiandinkins.com/2019/03/install-portainer-in-centos-ubuntu-and.html
3.通过Portainer部署鳄梨酱容器
标准步骤,使用从Dockerhub中提取的图像oznu / guacamole。
由于我将端口80用于鳄梨酱,所以我将主机端口80映射到了容器的8080。默认情况下,瓜鳄梨码头工人已经将端口8080设置为Web连接。
完成部署工作将需要3-4分钟。请耐心等待。图像为1.2 GB。
4.登录到Guacamole Web Gui
部署容器后,您可以尝试通过浏览器登录Web GUI。默认的用户名和密码为guacadmin。如果不起作用,请重新启动您的Guacamole泊坞窗。我以某种方式遇到了这个问题,但是重新启动docker使它对我有用。
5.创建一个新的SSH连接
![]() |
鳄梨酱Web SSH登录 |
6.创建一个新的RDP连接
参考文献: