基于宝塔搭建RustDesk服务端+WebClient+Api服务器
本文最后更新于 367 天前,其中的信息可能已经有所发展或是发生改变。

前言

偶然在B站上看到有人发RustDesk服务端的搭建教程,了解了一下,感觉很感兴趣。可以自建服务器这一点特别戳我,就按照前辈的教程搭建出来了。用在我的电脑和几个手机上互相控制,很方便。已经稳定使用了将近三四个月。之前看官方的上面有WebClient,可以用网页控制。但是找了一下,并没有源码,就没有再搭建了。今天在刷吾爱的时候看到了有人对WebClient和Api服务器的讨论,也放出了源码。就一边实战搭建一遍再来写一下这篇博客。顺便把服务端的搭建也整合一下。

这篇文章是我自己搭建的经验总结,在搭建的过程中也是大量看着前辈的教程一步一步才能搭建下来的。


官方介绍

远程桌面软件,开箱即用,无需任何配置。您完全掌控数据,不用担心安全问题。您可以使用我们的注册/中继服务器,或者自建,亦或者开发您的版本

准备工作

你需要准备的东西大概有:

  • Linux服务器 一台

好像只有服务器就可以了

RustDesk服务端的搭建方式有两种:直接安装和Doker,这里我采用了直接安装的方法。Doker安装方法,在官方文档里也有讲述,这里就不再说了。

安装RustDesk服务端

服务端安装

在安装服务端之前,我们要先安装宝塔面板(因为要用到宝塔面板里的进程守护管理器,后面的WebClient和Api都要用到PHP环境)(已经有宝塔环境的,可以跳过这一段)

宝塔面板的安装已经有非常成熟的教程啦,这里给出官方的链接

https://www.bt.cn/bbs/thread-79460-1-1.html

安装好之后登录后台,在应用商城里找到进程守护管理器,安装它。

就是这玩意儿

然后我们去下载服务端,在官方发行版中找到你服务器对应的架构来下载。我下载的是rustdesk-server-linux-amd64.zip

官方发行版:https://github.com/rustdesk/rustdesk-server/releases

解压后会有三个文件,把他们上传到服务器里的一个目录里,我这里传到了/data/rustdesk/amd64目录,大概是这样的

我的因为已经运行了,所以会有很多其他的文件,上传压缩包里的三个就可以了

然后到刚刚安装的进程守护管理器的设置里面,添加两条守护规则,分别是hbbr和hbbs的。如图

启动命令最后的-k _是禁止没有key的用户建立非加密连接,如果你没有加密的需要,就可以不写,后面的加密部分也可以不看了

填写好后点击确定,服务就启动了,这时候就可以配置客户端了,但是还是说一下加密的部分是怎么搞的(建议加密也弄一下)

服务启动后,在你刚刚上传主程序的文件夹下会多出来一个公钥文件id_ed25519.pub,打开它,里面的内容就是你的key,把它记好。如果要更新key的话,就删除 id_ed25519id_ed25519.pub 文件并重新启动上面的两个进程,就会产生新的密钥对。

我们还需要开放服务需要的端口,官方的话是这样的:

默认情况下,hbbs 监听21115(tcp), 21116(tcp/udp), 21118(tcp),hbbr 监听21117(tcp), 21119(tcp)。务必在防火墙开启这几个端口, 请注意21116同时要开启TCP和UDP
其中21115是hbbs用作NAT类型测试,21116/UDP是hbbs用作ID注册与心跳服务,21116/TCP是hbbs用作TCP打洞与连接服务,21117是hbbr用作中继服务, 21118和21119是为了支持网页客户端。如果您不需要网页客户端(21118,21119)支持,对应端口可以不开。
TCP(21115, 21116, 21117, 21118, 21119)
UDP(21116)

因为我们后面需要搭建网页客户端,所以这些端口建议全开。(如果不搭建的话,不开也行)

客户端配置

前往https://rustdesk.com/zh/下载各个系统的客户端,打开后点击 ID 右侧的菜单按钮,选择“ ID/中继服务器”。

ID服务器和中继服务器,填写你服务器的域名/ip地址,Key就填刚刚那个公钥文件里的内容就行了。(如果你想使用自建服务的话,你所有的客户端都要这么填)

Api服务器暂时先不填。我们马上就讲如何搭建。

确认之后你就可以测试连接啦,用手机和电脑互相连接,控制一下

小功告成!

到这里主服务器搭建已经成功了,你会发现登录里面没有注册的选项,那是因为我们还没有设置Api服务器

搭建Api服务器&WebClient

服务端配置

Api服务器和WebClient由吾爱的先辈给出,在此给出原链接https://www.52pojie.cn/forum.php?mod=viewthread&tid=1708319

Api服务器还有另一种基于GO的实现,感觉也不错。在此给出链接,有兴趣的可以搭建一下https://www.52pojie.cn/thread-1720588-1-9.html

Api服务器要用到PHP环境,先在宝塔里安装好Nginx+PHP+Mysql环境

安装好后新建一个站点,域名按照自己喜好写,没域名的话直接输ip也行,数据库选MySQL,php版本随便选一个,我这里是PHP8.0

下载源码包(怕失效,我转存了一下原作者的)

https://file.59888888.xyz/%E5%A5%BD%E7%8E%A9%E7%9A%84%E6%BA%90%E7%A0%81(%E6%9C%8D%E5%8A%A1%E7%AB%AF)/rustdesk-WebClient+Api%E6%9C%8D%E5%8A%A1%E5%99%A8.zip

下载好后,登录数据库 宝塔后台->数据库->MySQL->PHPMyAdmin 用刚刚创建网站时的数据库账号和密码登录.

登录好之后点一下左侧新建的数据库,然后点击右侧上方的导入,选择源码包里的\api-server\rustdesk.sql导入

然后回到宝塔后台,在左边菜单点击网站,点击你刚刚创建的网站根目录,删除默认的index.html文件,上传源码包里\api-serverindex.php\web-client文件夹下的所有文件到网站根目录,然后把index.php改名成api.php,大概就是这个效果

编辑api.php,修改第7行的MySQL数据库连接账号,密码,数据库

<?php 
header("Content-type:text/html;charset=utf-8");//字符编码设置 
//原生的php操作mysql,
// mysqli_connect(host,username,password,dbname,port,socket);
//连接数据库,host为数据库服务器IP或域名,username为数据库用户名,password为数据库密码为数据库名,port数据库连接端口,默认3306,socket忽略即可
//下面这行必须改为自己的服务器上对应的信息,否则,你懂的。。。
$conn=mysqli_connect("localhost","rustdesk","AK8CaxzPKM7Diyy7","rustdesk",3306);
if(!$conn){ 
  die("数据库连接出错了: " . mysqli_connect_error());//如果连接失败输出一条消息,并退出当前脚本
}
//获取访问的啥方法

第7行的四个引号内分别是数据库地址,用户名,密码,数据库名。第一个不用改,剩下的三项按照创建站点时的配置填进去就行了。

编辑index.html,为了不暴露节点信息,我们把第23行的服务器IP/域名剪切到/module/index.b7bb6fa2.js的第一行

var api = ["192.168.2.25"];//,"rs-sg.rustdesk.com","rs-cn.rustdesk.com","rs-us.rustdesk.com"

直接往进写域名或者ip就行,然后剪切到/module/index.b7bb6fa2.js的第一行,大概效果就这样

记得保存,这样Api服务器&WebClient就搭建好了

客户端配置

在自定义服务端地址的界面,填入api接口地址就行,按照下图格式填入

如果登录时显示Undefined array key "HTTP_AUTHORIZATION",那就把PHP版本调低一点

关于用户名和密码的生成:
1、去各大搜索引擎里搜索【MD5】,随便点一个进去,找加密的地方,输入 你要的设置的密码,进行加密。
2、密码规则:密码+rustdesk,如:你要设置admin为密码,那么你要在上面加密的输入框里输入:adminrustdesk ,结果都是32位的,大致像这样:d3541a8746eb583a010c1157438a7ba1
3、生成密码后用phpmyadmin在rustdesk_users表里照葫芦画瓢加一条记录。

默认的用户名密码都是admin

评论

  1. sawadick
    Windows Edge
    1月前
    2024-5-14 10:28:02

    还有一个疑问,是否可以不使用hbbr

    • 博主
      sawadick
      Windows Firefox
      1月前
      2024-5-15 15:28:04

      api服务器的作用是账号系统,不配置不影响正常使用

  2. sawadick
    Windows Edge
    已编辑
    1月前
    2024-5-14 10:27:17

    我只运行了hbbs,感觉在一个服务器上,中继有点多余

    • 博主
      sawadick
      Windows Firefox
      1月前
      2024-5-15 15:27:12

      个人认为都是必要的,我都安装了,我感觉中继是打通内网重要的一环

  3. NTR
    Windows Edge
    4月前
    2024-2-24 11:03:18

    图片均无法显示....

    • 博主
      NTR
      Windows Firefox
      3月前
      2024-3-14 15:49:12

      已经恢复了

      • NTR
        无极
        Windows Edge
        3月前
        2024-3-15 10:42:18

        图片还是无法显示

        • 博主
          NTR
          Windows Firefox
          3月前
          2024-3-15 18:34:45

          实在抱歉,我一直使用Firefox,没注意这个问题,我的图片cdn没有配置HTTPS协议,Edge会自动把http转为https,要不麻烦您换个浏览器试试

  4. alex
    Windows Chrome
    6月前
    2023-12-07 22:52:01

    我下载楼主的源码包,为什么里面的API.PHP和楼主描述的一点也不一样,也没找到修改数据库用户名密码的地方?

    • 博主
      alex
      Android Firefox
      6月前
      2023-12-14 9:13:44

      抱歉,最近没有看邮件,您可以先试试原链接里的代码,我稍后会检查我上传的源码包

  5. lkj
    Android Chrome
    7月前
    2023-11-28 7:00:56

    源码包下载不了

    • 博主
      lkj
      Windows Firefox
      7月前
      2023-11-29 17:03:34

      这边测试正常,提示登陆的话点击“游客模式浏览”即可

  6. jack
    Windows Chrome
    7月前
    2023-11-18 23:18:45

    我看到的api.php为什么和你的一点都不一样

    • 博主
      jack
      Windows Firefox
      7月前
      2023-11-18 23:25:51

      当时只放了前几行,后面的不用改

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇