天津建設(shè)合同備案網(wǎng)站特大新聞凌晨剛剛發(fā)生
文章目錄
- 官網(wǎng)
- 簡介
- 支持多種協(xié)議
- 無插件瀏覽器訪問
- 配置和管理
- 應(yīng)用場景
- Podman 部署 Apache Guacamole
- 拉取 docker 鏡像
- docker-compose.yml
- 部署 PostgreSQL
- 生成 initdb.sql 腳本
- 部署 guacamole
- Guacamole 基本用法
- 配置 VNC 連接
- Mac 電腦開啟自帶的 VNC 服務(wù)
官網(wǎng)
- https://guacamole.apache.org/
簡介
Apache Guacamole 是一個開源的遠程桌面網(wǎng)關(guān),可以通過瀏覽器訪問各種遠程桌面協(xié)議。它由 Apache 軟件基金會維護,主要功能是提供一個無需客戶端插件的 Web 訪問解決方案。
支持多種協(xié)議
- VNC(Virtual Network Computing): 用于遠程控制計算機的協(xié)議。
- RDP(Remote Desktop Protocol): 微軟的遠程桌面協(xié)議。
- SSH(Secure Shell): 用于安全地遠程登錄和管理計算機的協(xié)議。
無插件瀏覽器訪問
用戶可以通過現(xiàn)代 Web 瀏覽器(如 Chrome、Firefox、Edge)訪問遠程計算機,無需安裝額外的客戶端插件或軟件。
配置和管理
通過 Web 界面進行用戶管理、配置遠程連接和設(shè)置訪問權(quán)限。
可以通過配置文件和數(shù)據(jù)庫進行更細粒度的控制。
應(yīng)用場景
- 遠程工作: 允許員工在不同的地點訪問公司內(nèi)部的計算機和系統(tǒng)。
- 技術(shù)支持: 支持 IT 人員遠程管理和排除故障。
- 教育和培訓: 提供遠程訪問實驗環(huán)境或教學資源。
Podman 部署 Apache Guacamole
- 鏡像:https://hub.docker.com/r/guacamole/guacamole
注意: Podman 是 Docker 替代工具;操作命令兼容,示例中的 podman 命令可以直接替換為 docker;Podman 的安裝與使用請閱讀 《安裝 podman 與 podman-compose》 文章。
- 啟動 podman 虛擬機(Mac環(huán)境需要啟動虛擬才能正常使用 Podman)
podman machine start podman-vm
拉取 docker 鏡像
podman pull guacamole/guacamole
podman pull guacamole/guacd
podman pull postgres:16
# 或
docker pull guacamole/guacamole
docker pull guacamole/guacd
docker pull postgres:16
docker-compose.yml
version: '3'
services:guacamole:image: guacamole/guacamolecontainer_name: guacamoleports:- '8080:8080'environment:GUACD_HOSTNAME: guacdGUACD_PORT: 4822# 配置 MySQL 數(shù)據(jù)庫# MYSQL_HOSTNAME: 192.168.0.217# MYSQL_PORT: 3306# MYSQL_DATABASE: 'guacamole_db'# MYSQL_USER: 'zyuser'# MYSQL_PASSWORD: 'Lkm##2021'# 配置 PostgreSQL 數(shù)據(jù)庫POSTGRESQL_HOSTNAME: postgresPOSTGRESQL_PORT: 5432POSTGRES_DATABASE: 'guacamole_db'POSTGRES_USER: 'root'POSTGRES_PASSWORD: '4NuMDwIzp05BdKp7Bdmf'depends_on:- guacdguacd:image: guacamole/guacdcontainer_name: guacdports:- '4822:4822'postgres:image: postgres:16container_name: postgres# 容器設(shè)置為特權(quán)模式privileged: true# restart: alwaysports:- '5432:5432'environment:# 創(chuàng)建具有超級用戶權(quán)限的指定用戶和同名的數(shù)據(jù)庫POSTGRES_USER: 'root'POSTGRES_PASSWORD: '4NuMDwIzp05BdKp7Bdmf'# 如果未指定,則將POSTGRES_USER使用的值。POSTGRES_DB: 'guacamole_db'# 默認為/var/lib/postgresql/dataPGDATA: /var/lib/postgresql/datavolumes:- /etc/localtime:/etc/localtime- ./postgres/data:/var/lib/postgresql/data
部署 PostgreSQL
# 數(shù)據(jù)存在縮主機上
mkdir postgres/data
# 執(zhí)行部署命令
podman-compose up -d postgres
生成 initdb.sql 腳本
注: 根據(jù)自己的需求生成對應(yīng)的數(shù)據(jù)庫初始化 SQL 腳本。本章示例采用 PostgreSQL。
- 生成 PostgreSQL 初始化 SQL 腳本
podman run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --postgresql > initdb.sql
- 生成 MySQL 初始化 SQL 腳本
podman run --rm guacamole/guacamole /opt/guacamole/bin/initdb.sh --mysql > initdb.sql
- 連接 PostgreSQL 數(shù)據(jù)庫,選擇 guacamole_db 庫 執(zhí)行 initdb.sql 腳本初始化數(shù)據(jù)庫。
- 或者進入容器內(nèi)執(zhí)行 guacamole_db 數(shù)據(jù)庫初始化。
# 將 initdb.sql 復(fù)制到容器內(nèi)
podman cp initdb.sql postgres:/
# 進入 postgres 容器內(nèi)
podman exec -it postgres /bin/bash
# 執(zhí)行 initdb.sql
psql -U root -d guacamole_db -f initdb.sql
部署 guacamole
podman-compose up -d guacamole
Guacamole 基本用法
- http://127.0.0.1:8080/guacamole/#/
注: Guacamole 默認登錄賬號/密碼 guacadmin/guacadmin
配置 VNC 連接
注意: VNC 只能連接與 Guacamole 服務(wù) 在 同一個局域網(wǎng) 的電腦。外網(wǎng)訪問需要為 Guacamole 配置域名進行訪問。
- Nginx 配置
location /guacamole/ {proxy_set_header X-Real_IP $remote_addr;proxy_set_header Host $host;proxy_set_header X_Forward_For $proxy_add_x_forwarded_for;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_pass http://127.0.0.1:8080/guacamole/;
}
- 進入設(shè)置頁面添加連接
- 返回首頁點擊連接
- 連接的是本人 MacBook 電腦
- 手機上效果
Mac 電腦開啟自帶的 VNC 服務(wù)