如何使用自己的服务器自建Rustdesk服务端

如何使用自己的服务器自建Rustdesk服务端

前言

众所周知有很多种远程连接的软件,用的最多的可能就是向日葵和Todesk,但是这些远程连接软件是闭源且强制要求登录的,十分流氓,于是我开始寻找一个开源免费又好用的远程连接软件。经过搜索(其实就是询问ChatGPT)后,我认为Rustdesk是一个不错的选择。

为什么要自建

Ruskdesk其实是开箱即用的,无需进行任何配置,更不需要注册登录什么乱七八糟的账号,但是如果你直接用,你很有可能会遇到这个错误:

20250703233304372-c6e7bc060e83a7ebb2e13aca98543f77

我排查了各种各样的原因,都没有找到解决办法,最后我在官方Github上发现了很多跟我遇到同样问题的issues,官方统一回复了一个链接:https://www.reddit.com/r/rustdesk/comments/1cr8kfv/should_you_selfhost_a_rustdesk_server/

里面提到了:

The public rustdesk servers are meant for testing and research purposes and are not equipped to handle large amounts of traffic.

This means that the amount of time it takes to establish a connection through the public servers can vary drastically and sometimes even fail if the server is overloaded.

说人话就是:

咱们的服务器就是这么烂,想解决就自己建一个服务端自己用呗

那就自建吧,反正有服务器

如何自建

首先以root用户登录进服务器

以下命令

执行以下命令进行更新

apt update
apt upgrade

安装unzip(如果系统内没有的话)

apt install unzip

创建一个文件夹并cd进去

mkdir -p /opt/rustdesk-server
cd /opt/rustdesk-server

使用wget命令下载最新的linux-amd64.zip(链接请自行替换为最新版的链接)

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

解压这个压缩包

unzip rustdesk-server-linux-amd64.zip

它解压出来是一个/amd64/文件夹,就在你前面创建并指定的位置,你还需要再cd进到这个位置,然后使用以下命令来配置权限:

chmod +x hbbs hbbr

然后启动hbbs(注意将以下命令的公网IP地址替换为你服务器实际的公网IP地址)

nohup ./hbbs -r 公网IP地址:21117 > hbbs.log 2>&1 &

启动hbbr

nohup ./hbbr > hbbr.log 2>&1 &

最后确保以下端口是开启状态:

TCP :21114-21119
UDP :21116

如果你使用的是国内的运营商,(譬如腾讯云,阿里云),并且还使用了服务器面板(譬如宝塔),请在运营商和服务器面板两处都放行上述端口

如果以上命令均执行成功,你会在目录下看到一个id_ed25519.pub文件,请一字不落的复制这个文件的内容,这是我们之后需要用到的“Key”

在客户端-网络-ID/中继服务器中按图填写:

20250705224216512-image

确认,并重启一下rustdesk,如果一切顺利,你会看到一个绿色图标,旁边写着就绪,这时就说明已经大功告成了……

吗?

如何保活

如果你想确保你的rustdesk的服务端一直可用,你还需要注意一下保活,你可以按照我下面写的命令,保存为rustdesk.sh并上传至你服务器的任意目录

#!/bin/bash

INSTALL_DIR="/opt/rustdesk-server/amd64"
IP_OR_DOMAIN="175.178.224.42" 
LOG_DIR="/var/log/rustdesk"

mkdir -p "$LOG_DIR"

cat > /etc/systemd/system/rustdesk-hbbs.service <<EOF
[Unit]
Description=RustDesk hbbs Service
After=network.target

[Service]
ExecStart=${INSTALL_DIR}/hbbs -r ${IP_OR_DOMAIN}:21117
Restart=always
WorkingDirectory=${INSTALL_DIR}
User=root
StandardOutput=append:${LOG_DIR}/hbbs.log
StandardError=append:${LOG_DIR}/hbbs.err

[Install]
WantedBy=multi-user.target
EOF

cat > /etc/systemd/system/rustdesk-hbbr.service <<EOF
[Unit]
Description=RustDesk hbbr Service
After=network.target

[Service]
ExecStart=${INSTALL_DIR}/hbbr
Restart=always
WorkingDirectory=${INSTALL_DIR}
User=root
StandardOutput=append:${LOG_DIR}/hbbr.log
StandardError=append:${LOG_DIR}/hbbr.err

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reexec
systemctl daemon-reload
systemctl enable rustdesk-hbbs --now
systemctl enable rustdesk-hbbr --now

echo -e "\n✅ RustDesk hbbs/hbbr systemd 服务已配置完成!"
echo -e "→ 日志位置:$LOG_DIR"
echo -e "\n🛠 管理命令:"
echo -e " systemctl status rustdesk-hbbs"
echo -e " systemctl status rustdesk-hbbr"
echo -e " systemctl restart rustdesk-hbbs"
echo -e " systemctl restart rustdesk-hbbr"

并给这个脚本文件配置一下权限(请事先cd进该文件所在的目录下)

chmod +x rustdesk.sh

执行这个脚本

./rustdesk.sh

如果运行成功,hbbs 和 hbbr 将作为 systemd 服务后台运行并自动重启。你也可以使用:

systemctl disable rustdesk-hbbs --now
systemctl disable rustdesk-hbbr --now

来关闭它们。

如果出现如下的报错

-bash: ./rustdesk.sh: /bin/bash^M: 坏的解释器: 没有那个文件或目录

是因为这个脚本文件使用了 Windows 风格的换行符,导致脚本开头的解释器声明变成了:

/bin/bash^M(^M 是回车符)

而 Linux 只接受 Unix 风格的换行,所以报错。

解决办法是,安装一个叫做dos2unix的工具,这个工具可以自动把windows格式换成Unix格式(Debian系的系统请自行把yum替换为apt)

sudo yum install dos2unix -y
dos2unix rustdesk.sh

重新执行一下以下命令

chmod +x rustdesk.sh
./rustdesk.sh

特别鸣谢

ChatGPT

© 版权声明
THE END
喜欢就支持一下吧
点赞0支持一下吧? 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片快捷回复

    暂无评论内容