前言:
目前小伙伴们对“nginx支持rdp”大体比较关切,大家都想要知道一些“nginx支持rdp”的相关知识。那么小编也在网上网罗了一些关于“nginx支持rdp””的相关内容,希望看官们能喜欢,大家快快来学习一下吧!一个轻量的企业级Web的控制终端程序,汇集了大多数同类产品优点于一身,支持SSH2/lrzsz、(RDP/RFB/Telnet)、审计和录屏等
快速开始1. 安装
git clone # 上游,最新# git clone xcloud-webconsole/scripts./build.sh # 交叉编译为Windows程序# build.bat # 交叉编译为Linux程序2. 部署到nginx支持https. (可选)
因为webconsole是基于HTML的,浏览器的复制和粘贴功能受到安全机制的限制,只能在HTTPS下使用,当然若不想麻烦,也可忽略此步骤,直接使用HTTP本地测试,只是不能使用浏览器的复制和粘贴功能。
2.1 添加hosts
127.0.0.1 webconsole.wl4g.debug
sudo mkdir -p /etc/nginx/conf.d && \cat > /etc/nginx/conf.d/webconsole.conf <<EOF# Generated by WebConsole docs sample.# WebConsole Webapps pages.server { listen 443; server_name webconsole.sunwuu.fat; ssl on; ssl_certificate certs/_wildcard.wl4g.debug.pem; ssl_certificate_key certs/_wildcard.wl4g.debug-key.pem; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; location / { root /usr/share/nginx/html/webconsole; index index.html; }}# WebConsole APIs.server { listen 26088 ssl; server_name webconsole.sunwuu.fat; ssl_certificate certs/_wildcard.wl4g.debug.pem; ssl_certificate_key certs/_wildcard.wl4g.debug-key.pem; ssl_session_timeout 5m; ssl_prefer_server_ciphers on; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; location / { proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header X-real-ip $remote_addr; proxy_set_header X-Forwarded-For $remote_addr; proxy_pass ; }}EOFsudo chmod 755 /etc/nginx/conf.d/webconsole.confsudo systemctl restart nginx2.2. 安装测试CA跟证书 (可选, 跟随步骤2)将CA跟证书安装到系统及chrome,使其受信任. 例如在Chrome84.x中:
chrome://settings/security
管理证书 -> 受信任的根证书颁发机构 -> 导入 然后重启chrome浏览器尝试访问:
特性它被设计成一个原生JavaScript类库,可以很容易地与React/Vue/AngularJS和其他框架集成它可以运行在 Android iOS 和任何其他可以呈现HTML的终端上。它几乎可以完全取代基于安装程序的shell客户端完全支持 lrzsz 命令集(基于zmodem实现)增强了对移动终端的复制、粘贴、快进、后退等按键组合命令的支持,用户友好的操作习惯无缝对接 prometheus 度量采集度量及指标
curl HELP goroutines_num Number of goroutines# TYPE goroutines_num gaugegoroutines_num 16# HELP mysql_active_conn Current active connections of MySQL# TYPE mysql_active_conn gaugemysql_active_conn{dbconnectstr="gzsm:******@tcp(10.0.0.160:3306)/devops_dev?charset=utf8",host="10.0.0.172"} 1# HELP ssh2_active_dispatch_channels Current active channels of SSH2 dispatcher# TYPE ssh2_active_dispatch_channels gaugessh2_active_dispatch_channels{host="10.0.0.172",user="admin"} 0# HELP threads_num Number of threads# TYPE threads_num gaugethreads_num 8# HELP virtual_free_memory Size of virtual free memory# TYPE virtual_free_memory gaugevirtual_free_memory 1.731424256# HELP virtual_total_memory Size of virtual total memory# TYPE virtual_total_memory gaugevirtual_total_memory 8.50089984运行环境客户端建议使用 Chrome 40+、Firefox 38+、Safari 9+二次开发建议基于 Golang 1.13+ 构建本程序只能对 Unix/Linux 类的操作系统的 SSH 协议的 OS 远程操作(Windows RDP支持需参考具体发行版是否有RDP实现)运行截图
说明:界面未设置css样式的最精简测试页面
主要依赖项目日志框架 go.uber.org/zap通用web框架 github.com/gin-gonic/gin普罗米修斯 github.com/prometheus主机指标采集 github.com/shirou/gopsutilJSON序列化 github.com/json-iterator/goWebsocket处理 github.com/gorilla/websocket其他说明(如果需要)生成临时调试https SSL证书待办清单[√] 完全统一每个组件的日常输出,如“gin”框架。[√] 增强webconsole服务的管理员功能,例如自身的health/metrics/indicator(CPU/Mem/Network/Connections…)和更详细的指示器Canvas + Object Storage 审计录屏功能为了实现与windows RDP(远程桌面协议)兼容的基于Web的远程图像UI控制协议, 以及RFB/Telnet等自定义开发指南推荐IDE使用 VSCode 进行二次开发,因为项目根目录已包含 .vscode 编辑器配置文件修改数据库配置: resources/webconsole.yml#datasource.mysql.dbconnectstr,也可以使用环境变量:.vscode/launch.json => WEBCONSOLE_DATASOURCE_MYSQL_DBCONNECTSTR配置文件说明:本项目使用viper配置框架,加载优先级依次为:Set()/Flags/Env/Config/Default如果需要添加新的配置项,则必须使用config_generator.go 生成和xxx-config.go 对应的默认配置项webconsole.default.yml.go,参考命令:
cd $WEBCONSOLE_HOMEgo run config_generator.goSuccessfully for pkg/config/webconsole.default.yml.go
标签: #nginx支持rdp #nginx 交叉编译 #nginx交叉编译工具设置