RustDesk服务端搭建教程和踩过的坑(linux端和windows端,以及非docker安装)

RustDesk一款类似向日葵和todesk的远程软件,该软件开源,目前可以用户自建使用,当然前提你要有一台有公网IP,且网络不太差的服务器。

windows端安装:

windows端的方法有两种

方法1:直接运行(不加密)

下载win服务端软件https://github.com/rustdesk/rustdesk-server/releases/

解压后运行RuetDeskServer.Setup.exe 安装

安装完成后,直接启动程序RustDeskServer,菜单栏 – Service -Start 实现hbbs 和 hbbr 俩个服务的启动。

方法2:通过pm2参数运行(加密)

下载服务端软件https://github.com/rustdesk/rustdesk-server/releases,通过windows自带的cmd运行,这里要注意目前实测只要给hbbs加k参数就好(若hbbs和hbbr都加了,远程时候远程端和被控端都需要填k)

cd c:\rustdesk-server-windows-x64
pm2 start hbbs.exe -- -r 1.1.1.1 -k _
pm2 start hbbr.exe
pm2 save

pm2 常用命令

启动进程 pm2 start bin/www 或 pm2 start app.js
重命名进程 pm2 start app.js --name wb123
添加进程 pm2 start bin/www --watch
结束进程 pm2 stop www
结束所有进程 pm2 stop all
删除进程 pm2 delete www
删除所有进程 pm2 delete all
列出所有进程 pm2 list
查看某个进程具体情况 pm2 describe www
进程监视器 pm2 monit
查看pm2的日志 pm2 logs
查看某个进程的日志 pm2 logs www
重新启动进程 pm2 restart www
重新启动所有进程 pm2 restart all

linux服务端安装(docker):

安装必要软件

apt-get install wget curl vim -y
echo set clipboard=unnamed >> ~/.vimrc

安装docker相关的组件

wget -qO- get.docker.com | bash
systemctl start docker
systemctl enable docker
apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
apt-get install docker-compose

创建目录及 compose 配置文件

mkdir -p /home/rustdesk-server
cd /home/rustdesk-server
mkdir hbbr
mkdir hbbs
vim docker-compose.yml

将docker-compose.yml文件中填入以下内容,这里要注意目前实测只要给hbbs加k参数就好。

version: '3'
networks:
rustdesk-net:
external: false
services:
hbbs:
container_name: rustdesk-hbbs
ports:
- 21115:21115
- 21116:21116
- 21116:21116/udp
- 21118:21118
image: rustdesk/rustdesk-server:latest
# 请把 www.vilark.com:21117 修改为自己的域名
# 如果您禁止没有key的用户建立非加密连接,请在运行hbbs和hbbr的时候添加-k _参数
command: hbbs -r www.vilark.com:21117 -k _
volumes:
- ./hbbs:/root
networks:
- rustdesk-net
depends_on:
- hbbr
restart: unless-stopped
hbbr:
container_name: rustdesk-hbbr
ports:
- 21117:21117
- 21119:21119
image: rustdesk/rustdesk-server:latest
command: hbbr
volumes:
- ./hbbr:/root
networks:
- rustdesk-net
restart: unless-stopped

运行容器

docker-compose up -d

查看密钥(先到rustdesk-server文件夹下,然后cd hbbs)

cat ./id_ed25519.pub

备用命令

# 停止容器 docker-compose stop
# 启动容器 docker-compose start
# 重启容器 docker-compose restart
# 下线(删除)容器 docker-compose down
删除容器不会导致你的数据丢失,你的数据库保存在了当前目录下的data文件夹内

 

linux服务端安装(非docker):

首先下载服务端的包

wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.11-1/rustdesk-server-linux-amd64.zip

然后解压:

unzip rustdesk-server-linux-amd64.zip

修改文件名为rustdesk

mv amd64/ rustdesk

进入rustdesk目录下

cd rustdesk

然后创建启动脚本 rustdesk-start.sh(若hbbs和hbbr都加了k,远程时候远程端和被控端都需要填k)

#!/bin/sh
workdir=$(dirname "$0")
cd $workdir
nohup $workdir/hbbs -k _ >> $workdir/nohup.out 2>&1 &
nohup $workdir/hbbr -k _ >> $workdir/nohup.out 2>&1 &
exit 0

给脚本加权限

chmod +x /root/rustdesk/rustdesk-start.sh

给脚本加个自启

vi /etc/systemd/system/rustdesk-autostart.service
[Unit]
Description=rustdesk-autostart Server
After=network-online.target
[Service]
Type=simple
ExecStart=/root/rustdesk/rustdesk-start.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target

设置开机启动,并启动

systemctl enable rustdesk-autostart.service
systemctl daemon-reload
systemctl start rustdesk-autostart.service

 

 

查看是否启动成功

ps -ef | grep hbb

 

指定密钥(key)的值:

目前这个开源版,指定密钥值只能指定成已经生成的,比如你的服务启动生成了一对密钥id_ed25519和id_ed25519.pub,你只要把这对密钥替换过去,然后重启服务器即可。需要注意,若hbbs和hbbr都加了,远程时候远程端和被控端都需要填k,如果只hbbs加了k,那么远程时候,只要远程端有key就能远程

客户端自定义配置:

可以通过改客户端安装包名字,让用户在安装客户端后,自动配置好服务器ID,直接可以接受远程。

将安装包名字改成这样,user/host/key部分可以随便写,但是要注意,key值不能为空(anbc.com是你的IP地址,或者指向IP地址的域名)。

user-rustdesk-host=anbc.com,key=x.exe

 

使用注意:被控端只需要填写输入服务器 IP 地址即可,控制端需要填入秘钥,才可以发起连接。

客户端地址:https://github.com/rustdesk/rustdesk

参考文章:https://www.idcfq.com/1062.html

评论

  1. 浅忆
    2024-11-4
    2024-11-04 15:29:18

    rustdesk连接错误连接被对方关闭是什么原因呢,我看网上说hbbr 跟 hbbs 的 下面2个文件保持一致,但是不知道是什么意思

    • l
      lark
      博主
      浅忆
      2024-11-5
      2024-11-05 16:02:14

      hbbr 跟 hbbs 的 下面2个文件保持一致id_ed25519要是一对
      连接错误连接被对方关闭感觉是端口和服务的问题

  2. C
    Cheney
    2024-10-30
    2024-10-30 14:30:26

    非专业版不能自定义key吗,-k后边加了自定义的key并不能生效

    • l
      lark
      博主
      Cheney
      2024-11-3
      2024-11-03 13:29:59

      不能自定义,但是可以改变,可能是有生成规律吧
      比如你想用一对老key,可以把老服务器上的id_ed25519和id_ed25519.pub替换到新服务器上去,然后重启服务器即可。

    • lilixxs
      Cheney
      已编辑
      2-19
      2025-2-19 23:06:44

      一对 key (公钥和秘钥)要用工具生成的😅
      参考官方链接 https://github.com/rustdesk/rustdesk-server/blob/master/README-ZH.md#%E5%A6%82%E4%BD%95%E7%94%9F%E6%88%90%E5%AF%86%E9%92%A5%E5%AF%B9
      用这个 docker 指令可以生成新的密钥对(公钥和秘钥),注意这里用的是带 s6 层镜像rustdesk-server-s6,和上面的代码的两个镜像不一样,相当于把上面两个镜像融合到一起做成的新镜像,需要重新下载

      docker run --rm --entrypoint /usr/bin/rustdesk-utils  rustdesk/rustdesk-server-s6:latest genkeypair
      • l
        lark
        博主
        lilixxs
        2-19
        2025-2-19 23:24:17

        直接拖拽替换也可以,重启下服务就行,我几个小鸡都是这样,因为我有时候要切中继,密钥不变好一点,不然输入比较麻烦

        • lilixxs
          lark
          2-19
          2025-2-19 23:28:00

          都行的,反正基本也就第一次连的时候改一次秘钥😂
          当然最保险的方法是定期生成然后分各个机器定期更新(比如 Github Actions 自动生成 + 本地机器 cron 定期从 github 上拉)

          • l
            lark
            博主
            lilixxs
            2-19
            2025-2-19 23:33:51

            确实,这样更安全,不过最近感觉rustdesk强制中继也不好用了,买了个腾讯200M小鸡也没改善多少,我在找新的方案

          • lilixxs
            lark
            已编辑
            2-19
            2025-2-19 23:35:39

            如果只是考虑远程连接的话,你花这钱干脆老老实实买个 todesk 会员得了,或者向日葵买个路由器。花了钱的确实就是爷

          • l
            lark
            博主
            lilixxs
            2-21
            2025-2-21 19:25:36

            向日葵的体验也是一般,就是搞过会员才后来弄自建,有次向日葵会员拉文件给我恶心坏了,最后弄网盘上传下载才传好文件

  3. 2024-10-15
    2024-10-15 15:38:11

    请问rustdesk客户端网络设置里面直接填对应的域名就行了吗?需不需要填写端口

    • l
      lark
      博主
      2024-10-15
      2024-10-15 21:00:56

      直接IP或者域名,默认用21116端口

    • lilixxs
      已编辑
      2-19
      2025-2-19 23:20:42

      按照楼主的配置不用填端口,因为楼主的配置压根就没做端口转换,用的是和默认配置一样的端口(比如- 21116:21116,意思是外部服务器的 21116 端口也对应容器内部的 21116 端口)
      但是如果做了端口映射(比如改成- 31000:21116那就得写端口号了,因为这时候相当于做端口转换了)
      具体哪个端口要怎么填,可以看这篇文章:https://shiyuki.com/post/5-fen-zhong-zi-jian-rustdesk-zhong-ji-fu-wu-qi/
      注意看这篇文章里作者在docker run指令里的-p AAAA:BBBB的配置和下面客户端的配置

  4. lkj00
    2024-10-11
    2024-10-11 16:39:49

    使用RuetDeskServer.Setup.exe 运行了 外网客户端无法访问 路由器端口映射都弄好了. 就是外网客户端无法连接 大佬知道怎么回事么 ,查资料说 RuetDeskServer.Setup.exe 自定义公网ip 地址 怎么自定义公网IP?

    • l
      lark
      博主
      lkj00
      2024-10-11
      2024-10-11 16:46:26

      windows运行还是用pm2那个好点,我实测PM2拉起来的进程没问题

      另外你外网可以telnet服务端的21116端口这些看能不能通

      • lkj00
        lark
        2024-10-11
        2024-10-11 16:48:34

        用 tcping 公网ip+端口全是通的 好的 pm2有教程么?

        • l
          lark
          博主
          lkj00
          2024-10-11
          2024-10-11 16:50:52

          pm2现在win服务器安装好了就可以,之后就很简单

          进rustdesk的解压目录,用参数把服务器拉起来就可以

        • l
          lark
          博主
          lkj00
          2024-10-11
          2024-10-11 17:31:51

          我又看了下我的教程,可能有些细节没说清楚,我已经给补上了

          PM2运行的话,就是你先装好pm2,然后通过cmd,执行相关命令运行

      • LQY2024
        lark
        2024-11-1
        2024-11-01 9:57:49

        这两天我在测试这个发现也是这样,改成rustdesk-server-s6一个样子,外网搞死连不进来,地址转换肯定没问题,因为我还有其他服务做的地址转换一模一样的,tcping telnet 都没问题

        • l
          lark
          博主
          LQY2024
          2024-11-3
          2024-11-03 13:31:33

          win环境吗?我在win环境测试过自带公网V4的win机用PM2运行是没问题的

          • kenny王
            lark
            2024-12-5
            2024-12-05 23:41:51

            公网v4没问题。昨天被回收了。才来研究v6 ,v6外网连还是有点问题呀

          • l
            lark
            博主
            kenny王
            2024-12-5
            2024-12-05 23:45:16

            目前还没试过v6,不确定v6是否可用

发送评论 编辑评论


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