# HTML RDP **Repository Path**: scicat/html-rdp ## Basic Information - **Project Name**: HTML RDP - **Description**: 一个使用宝塔面板部署基于Node.js、WebSocket和 node-rdpjs 的网页RDP客户端 - **Primary Language**: Unknown - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2025-03-01 - **Last Updated**: 2025-03-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 一个使用宝塔面板部署基于Node.js、WebSocket和`node-rdpjs`的RDP客户端。 项目名:`HTML5 RDP 客户端`或`HTML RDP` 此项目面向所有需要的人群 请先从HTML5 RDP下载必要的`server.js`、`index.html`、`client.js`文件等。 `package.json`不能安装所有依赖,需手动 此项目HTML5 RDP将涵盖从安装宝塔面板到部署和配置服务的全过程。 --- 超详细教程:宝塔面板部署HTML5 RDP客户端 一、准备工作 在开始部署前,先确保你手头有这些东西: 服务器信息:弄清楚你的服务器用的是什么操作系统(CentOS、Ubuntu还是Debian ),它的IP地址是多少,以及登录用的用户名和密码。这些信息就像是你进入服务器房间的钥匙,非常重要。 SSH工具: - Windows系统:下载PuTTY。下载完成后打开PuTTY,在“Host Name(or IP address)”处输入服务器IP地址,“Port”保持默认的22 ,然后点击“Open”。首次连接时可能会弹出安全警告,选择“是”继续。之后输入服务器的用户名和密码进行登录。 - macOS系统:直接使用自带的Terminal应用程序。打开Terminal后,输入 ssh 用户名@服务器IP地址 ,例如 `ssh root@192.168.1.100` ,然后输入密码登录。如果是首次连接,系统会提示是否继续连接,输入 yes 并回车。 - Linux系统:同样使用Terminal,操作方式与macOS类似,通过` ssh 用户名@服务器IP地址` 的命令进行连接并登录。这个工具能帮你和服务器“对话”,发送各种命令。 二、更新系统源(安装宝塔面板前的关键一步) 这一步就像是给你的服务器“更新地图”,让它知道最新的软件都在哪里。 CentOS系统 登录服务器:使用上述对应的SSH工具,输入服务器的IP地址、用户名和密码,成功登录进去。这就好比你找到了服务器的大门并且成功打开了它。 运行更新命令:在登录后的界面里,输入下面这条命令: `yum update`   输入之后,系统可能会让你确认一些操作,你只要输入` y `,然后按回车键就行。这个过程可能需要一点时间,就像下载一个大文件一样,耐心等等。 Ubuntu/Debian系统 登录服务器:同样用SSH工具,输入正确的信息登录。 执行更新命令:在登录后的窗口里,输入这条命令: `sudo apt update`   系统会自动开始下载并更新软件包列表,等它完成就好。 三、安装宝塔面板 宝塔面板就像是服务器的智能管家,能帮你轻松管理各种软件和网站。 连接到你的服务器 用之前准备好的SSH工具,再次输入服务器IP、用户名和密码,成功连接。 安装宝塔面板 CentOS系统安装命令: `yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh`   在安装过程中,系统会提示你安装一些相关的依赖包,就像安装游戏时可能需要先安装一些运行库一样。这时候,按照提示输入 y 确认安装就行。 Ubuntu/Debian系统安装命令: `wget -O install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh`   安装时,也会有一些操作需要你确认,按照提示输入相应的指令就可以继续。 访问宝塔面板 获取访问信息:宝塔面板安装完成后,你在SSH的界面里会看到它给你显示的访问地址,一般是 `http://服务器IP:8888` ,还有默认的用户名和密码。把这些信息记好,别弄丢了。 打开浏览器访问: - Windows系统:可以使用Chrome、Firefox或Edge等浏览器,在地址栏输入获取到的访问地址,然后输入默认用户名和密码登录。 - macOS系统:推荐使用Safari浏览器,同样在地址栏输入地址和登录信息进行登录。 验证宝塔面板安装 功能检查:成功登录后,看看面板左侧的菜单栏,像“软件商店”“文件”“网站”“数据库”这些常用的功能模块是不是都能正常显示。如果都能看到,就说明面板安装得挺顺利。 简单操作测试:你可以试着点进“软件商店”,看看里面的软件能不能正常浏览。要是这些操作都没问题,那就恭喜你,宝塔面板安装成功啦! 四、安装Node.js Node.js是运行咱们这个RDP客户端的重要基础,就像房子的地基一样。 登录宝塔面板 打开浏览器,输入宝塔面板的访问地址,用之前设置或者默认的用户名和密码登录进去。 进入软件商店 在宝塔面板左边的菜单栏里,找到并点击“软件商店”,这里面有各种各样的软件,咱们要找的Node.js就在这里。 安装Node.js 查找Node.js:在软件商店里,找到“运行环境”这个分类,然后在里面找到“Node.js”。 选择版本并安装:一般推荐选择最新的稳定版,找到这个版本后,点击“安装”按钮,然后就等着安装完成。安装的时候,宝塔面板会自动帮我们处理好相关的依赖和配置,不用我们操心。 验证Node.js安装 使用SSH连接服务器:再次打开对应的SSH工具,连接到服务器。 检查版本号:在SSH的窗口里输入命令 `node -v `,如果显示出了版本号,比如` v18.16.0 `,那就说明Node.js安装成功啦! 五、创建项目目录并上传代码 现在我们要给项目找个“家”,并且把它的“行李”(代码)放进去。 创建项目目录 进入文件管理:在宝塔面板里,点击左侧菜单栏的“文件”,进入文件管理的界面,这里就像是你的服务器的文件仓库。 选择目录并创建:比如,我们选择` /www `这个目录,然后点击“新建目录”按钮,给新目录起个名字,就叫` rdp-client `,然后点击“提交”。这样,我们就给项目建好了一个专属的“家”。 上传项目代码 打包项目代码: - Windows系统:可以使用WinRAR、7-Zip等压缩软件,选中项目代码文件,右键选择“添加到压缩文件”,将其打包成` rdp-client.zip` 。 - macOS系统:选中项目代码文件,右键点击“压缩”,即可生成` rdp-client.zip `压缩文件。 上传压缩文件:回到宝塔面板的文件管理页面,进入刚才创建的` /www/rdp-client `目录,点击“上传”按钮,然后选择你在电脑上打包好的` rdp-client.zip` 文件进行上传。 解压文件:上传完成后,选中刚刚上传的压缩文件,点击“解压”按钮,选择解压到当前目录。这样,项目的所有文件就都成功放到服务器的` /www/rdp-client `目录下啦。 六、安装项目依赖 项目就像一个小机器,需要各种零件(依赖)才能正常运转。我们提供两种安装依赖的方式,一种是通过 `package.json` 自动安装,另一种是手动安装,以应对可能出现的安装问题。 方式一:通过`package.json`自动安装 项目根目录下已经存在一个 package.json 文件,其内容如下: `{ "name": "html5-rdp", "version": "1.0.1", "description": "HTML5 RDP project", "main": "server.js", "scripts": { "start": "node server.js" }, "keywords": [ "HTML5", "RDP" ], "author": "scicat", "license": "MIT", "dependencies": { "express": "latest", "node-rdpjs": "latest", "ws": "latest", "winston": "latest", "bcryptjs": "latest", "uuid": "latest" "geoip-lite": "latest" } }`   之后在宝塔软件商店中搜索并依次安装 Nginx(或 Apache)、MySQL、PHP、phpMyAdmin。 安装完成后,进入 PHP 的扩展管理界面,安装 GD 库和 mysqli 扩展等必要扩展。 通过SSH连接到服务器:使用之前的SSH工具,输入服务器的相关信息,连接到服务器。 进入项目目录:在SSH的窗口里输入命令` cd /www/rdp-client `,进入我们刚刚创建的项目目录。 安装依赖:在项目目录下运行命令 npm install ,npm会读取 package.json 文件中的 dependencies 字段,自动下载并安装指定版本的所有依赖包到项目的 `node_modules` 目录中。 方式二:手动安装(以防自动安装不了的情况) 通过SSH连接到服务器:还是用之前的SSH工具,输入服务器的相关信息,连接到服务器。 进入项目目录:在SSH的窗口里输入下面这条命令,进入我们刚刚创建的项目目录: `cd /www/rdp-client`   安装依赖:因为项目依赖主要包括 express 、 node-rdpjs 、 ws 、 winston 等,我们可以手动安装这些依赖。 - 项目主要依赖 node-rdpjs ,那就输入下面这条命令进行安装: `npm install node-rdpjs`   - 安装 express : `npm install express`   - 安装 ws : `npm install ws`   - 安装 winston : `npm install winston` 安装  bcryptjs : ` npm install bcryptjs`  安装  uuid  : ` npm install uuid ` - 安装  geoip-lite :  `npm install geoip-lite `   - 要是还有其他依赖,就按照 npm install 依赖名@版本号 (如果不指定版本号,默认安装最新版本)的方式,一个一个地安装。 之后在宝塔软件商店中搜索并依次安装 Nginx(或 Apache)、MySQL、PHP、phpMyAdmin。 安装完成后,进入 PHP 的扩展管理界面,安装 GD 库和 mysqli 扩展等必要扩展。 七、配置并启动Node.js服务 现在要让项目“动起来”,开始工作。 进入PM2管理器 在宝塔面板的左侧菜单栏中,点击“PM2管理器”,这里是管理我们项目运行的地方。 添加Node.js项目 点击添加项目按钮:在PM2管理器的页面里,找到并点击“添加项目”按钮。 配置项目信息: - 项目目录:选择我们之前创建的` /www/rdp-client` 目录。 - 启动文件:输入 server.js (这个要根据你实际项目的启动文件来填写哦)。 - 项目名称:自己给项目起个名字,比如` rdp-client` 。 点击添加:把上面这些信息都填好之后,点击“添加”按钮,PM2就会自动帮我们启动项目服务,这个服务默认会监听在8081端口。 验证Node.js服务启动 查看PM2状态:回到PM2管理器的页面,看看刚才添加的项目,要是它的状态显示为“online”,那就说明服务已经成功启动啦。 浏览器访问测试:打开浏览器,在地址栏输入 `http://127.0.0.1:8081` ,如果能看到项目的页面正常显示,那就也能证明服务启动成功啦。 八、配置Nginx反向代理 为了能通过域名访问我们的RDP客户端,我们要给它找个“引路人”,也就是Nginx反向代理。 添加站点 进入网站管理:在宝塔面板里,点击左侧菜单栏的“网站”,进入网站管理页面。 添加新站点:点击“添加站点”按钮,然后填写下面这些信息: - 域名:输入你自己的域名,比如` your - domain.com `。 - 站点根目录:选择我们之前创建的` /www/rdp-client `目录。 提交设置:把这些信息都填好之后,点击“提交”按钮,这样就成功添加了一个站点。 配置反向代理 进入站点设置:在网站管理页面,找到刚才添加的站点,点击站点的名称,进入站点的设置页面。 添加反向代理:在站点设置页面里,找到“反向代理”这个选项,然后点击“添加代理”。 配置代理参数: - 目标URL:填写 `http://127.0.0.1:8081 `。 - 勾选WebSocket支持:一定要确保把“WebSocket支持”这个选项勾选上,这样才能支持WebSocket通信。 保存并重启Nginx:把上面这些配置都设置好之后,点击“保存”按钮,然后在弹出的提示框里点击“确定”,这样Nginx服务就会重启,让我们的配置生效。 验证Nginx反向代理配置 打开浏览器,输入你的域名 `http://your - domain.com `,要是能正常访问到RDP客户端的页面,那就说明反向代理配置成功啦! 九、配置SSL(可选,但很重要哦) 为了让数据传输更安全,就像给快递加上了一把锁,我们可以配置SSL证书。 申请SSL证书 进入SSL管理:在宝塔面板里,点击左侧菜单栏的“SSL”选项,进入SSL证书管理页面。 选择站点域名:在SSL证书管理页面,找到你想要配置证书的站点域名,然后点击它右侧的“申请”按钮。 申请Let's Encrypt证书:在弹出的申请页面里,选择“`Let's Encrypt`”这种证书类型,然后按照提示填写你的邮箱等信息,填好之后点击“提交”按钮,接着就等着证书申请完成。 绑定SSL证书 等证书申请成功后,宝塔面板会自动把证书绑定到对应的站点上。这时候,你就可以通过 `https://your - domain.com `来访问你的RDP客户端啦。 验证SSL证书配置 打开浏览器,输入` https://your - domain.com` ,要是浏览器地址栏左侧出现了一个安全锁的标志,而且能正常访问页面,那就说明SSL证书配置成功啦! 十、测试部署 现在一切准备就绪,来看看我们的RDP客户端是不是真的能正常工作。 访问你的域名 打开浏览器,输入` https://your - domain.com `,然后全面测试RDP客户端的各种功能,比如连接RDP服务器、输入用户名密码、进行远程操作等等,确保客户端能正常工作。 检查日志 进入PM2管理器查看日志:要是在测试过程中遇到了问题,别着急。回到宝塔面板的“PM2管理器”,找到你的项目,然后点击右侧的“日志”按钮。 查看日志信息:在弹出的日志窗口里,你能看到详细的日志信息。通过这些信息,你可以分析可能出现的错误原因,比如端口被占用、依赖包缺失、代码错误等等,然后根据错误提示来进行相应的调试和解决。要是提示端口8081和3000被占用,那就得检查一下是哪个程序占用了这个端口,然后处理一下。 十一、注意事项 安全性 密码安全传输:当RDP客户端连接RDP服务器的时候,一定要保证用户名和密码是通过安全的方式传输的,千万不能在网络中明文传输,不然就像把家门钥匙随便扔在大街上一样危险。 使用加密协议:用 wss:// (WebSocket Secure)协议来代替 ws:// ,这样可以加密WebSocket的数据传输,防止数据被别人窃取或者篡改。 防火墙设置:合理设置服务器的防火墙,只让你信任的IP地址来访问RDP服务,限制非法访问。比如,在宝塔面板的安全设置里,你可以设置IP白名单,同时一定要确保放行8081端口。 备份数据 在安装宝塔面板或者部署项目之前,一定要把服务器上的重要数据备份好。就像出门前要把重要的东西都放好一样,防止因为安装或者部署过程中出现问题,导致数据丢失。你可以使用云备份服务,或者外部存储设备来进行数据备份。 端口冲突 在启动Node.js服务和admin的时候,要确保使用的8081和3000端口没有被其他程序占用。要是端口被占用了,你可以在项目的配置文件里修改端口号,或者把占用端口的程序停止。在宝塔面板的“软件管理”-“已安装软件”里,你可以查看哪些程序占用了端口。要是你修改了项目端口,那在Node.js项目配置以及Nginx反向代理配置里都要进行相应的调整。 防火墙设置 要是服务器启用了防火墙,一定要确保相关的端口(比如80、443用于HTTP和HTTPS访问,8081用于Node.js服务,3000用于admin)都已经开放。在宝塔面板的“安全”设置里,你可以添加端口放行规则。 十二、常见问题及解决方法 宝塔面板安装失败 问题描述:执行宝塔面板安装命令后,出现报错信息,安装中断了。 解决方法:先检查一下服务器的网络连接是不是正常,是不是有足够的权限来执行安装命令。要是网络有问题,你可以试试换个网络,或者检查一下防火墙的设置;要是权限不够,那就确保用root用户或者有sudo权限的用户来执行安装命令。 Node.js安装失败 问题描述:在宝塔面板软件商店安装Node.js的时候,提示安装失败,或者安装后没办法通过 `node - v` 命令查看版本号。 解决方法:去查看一下宝塔面板软件商店的安装日志,看看具体是什么错误原因。有可能是依赖包缺失,或者系统环境有问题 --- 十三、参考资源 • [宝塔面板官网](https://www.bt.cn/new/index.html) • [Node.js官网](https://nodejs.org/) • [PM2官网](https://pm2.io/) • [Nginx官网](https://nginx.org/) --- 通过HTML5 RDP,你可以轻松地将基于Node.js、WebSocket和`node-rdpjs`的RDP客户端部署到宝塔面板中。 HTML5 RDP客户端一个具有在界面美观度、功能完整性、代码健壮性和可维护性等方面优势的网页远程端。 如果遇到任何问题,可以参考宝塔面板的官方文档或社区寻求帮助或联系此项目开发者。