基于云服务器自建Rustdesk远程桌面------以京东云为例
-
- [0. 参考连接](#0. 参考连接)
- [1. 云服务器配置(非广告,其他家应该也差不多)](#1. 云服务器配置(非广告,其他家应该也差不多))
-
- [1.1 配置SSH](#1.1 配置SSH)
- [1.2 配置防火墙](#1.2 配置防火墙)
- [1.3 创建非ROOT用户](#1.3 创建非ROOT用户)
- [2. 在服务器上下载运行服务端](#2. 在服务器上下载运行服务端)
-
- [2.1 安装unzip](#2.1 安装unzip)
- [2.2 下载RustDesk的服务端软件](#2.2 下载RustDesk的服务端软件)
- [2.3 运行RustDesk的服务端软件](#2.3 运行RustDesk的服务端软件)
- [3. 客户端安装运行](#3. 客户端安装运行)
0. 参考连接
- https://www.mintimate.cn/2023/08/27/guideToHostRustDesk/
- https://www.linkedin.com/pulse/building-your-own-remote-desktop-solution-rustdesk-cloud-montinaro-bv94f
1. 云服务器配置(非广告,其他家应该也差不多)
本人购买京东云轻量云主机,创建系统为Ubuntu20.04 64位
1.1 配置SSH
首先在本地计算机生成RAS秘钥(貌似京东云不支持Ed25519,或者我没找到)
bash
ssh-keygen -C 'your@email.address' -t rsa
进入https://lavm-console.jdcloud.com/lavm/list网址,点击SSH秘钥-->创建--> 选择使用已有公钥 --> 填写秘钥名称 --> 添加本地秘钥(~/.ssh/id_rsa.pub中的内容)

点击左侧主机列表,找到创建的ubuntu主机,点击查看进入之后点击最上方的SSH秘钥,将当前主机与刚才创建的秘钥绑定

返回主机列表,对主机进行重启。
在本地终端运行ssh root@IP地址(IP地址可在上图中寻找)测试连接情况,若无意外则可以进入云主机的root终端
1.2 配置防火墙
点击上图中的查看之后,点击最上方的防火墙选项,通过添加规则放行下列端口
- TCP (21115, 21116, 21117, 21118, 21119)
- UDP (21116)

1.3 创建非ROOT用户
在本地终端以 root 用户身份连接到云主机之后,创建非root用户(我这京东云主机创建系统之后只有root用户),并配置无密码 sudo 访问,下面以创建rustdesk为例。
bash
# Create the rustdesk user
adduser --disabled-password --gecos "" rustdesk
# Add rustdesk user to sudo group
usermod -aG sudo rustdesk
# Set up SSH key authentication
mkdir -p /home/rustdesk/.ssh
cp /root/.ssh/authorized_keys /home/rustdesk/.ssh/authorized_keys
chown -R rustdesk:rustdesk /home/rustdesk/.ssh
chmod 700 /home/rustdesk/.ssh
chmod 600 /home/rustdesk/.ssh/authorized_keys
# Configure passwordless sudo for rustdesk user
echo "rustdesk ALL=(ALL) NOPASSWD:ALL" > /etc/sudoers.d/rustdesk
chmod 440 /etc/sudoers.d/rustdesk
创建完成后,输入exit指令退出ssh,然后连接rustdesk用户ssh rustdesk@IP地址
2. 在服务器上下载运行服务端
2.1 安装unzip
bash
sudo apt install unzip
2.2 下载RustDesk的服务端软件
首先在ssh终端中用lscpu查看处理器类型,我的是x86_64,因此在RustDesk Server 发布地址下载rustdesk-server-linux-amd64.zip版本,右键复制连接,然后终端中执行下面命令进行下载
bash
wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.14/rustdesk-server-linux-amd64.zip
然后运行下面命令解压和文件夹重命名
bash
unzip ./rustdesk-server-linux-amd64.zip
mv amd64 rustdesk
cd rustdesk进入文件夹,执行ls可以发现当前文件夹有hbbr、hbbs、rustdesk-utils三个文件,hbbs是RustDesk的ID服务,用于分配和注册ID;hbbr时RustDesk的中继服务,主要远程访问就是这个,如果直连远程不行,会使用hbbr进行流量中继。
2.3 运行RustDesk的服务端软件
为了方便测试,用screen双开两个虚拟终端,并以前台模式挂起后端进程,首先安装screen,在ssh终端中执行
bash
sudo apt install screen
然后在终端中运行下面命令创建一个叫Hbbs的虚拟终端,然后运行hbbs
bash
screen -R Hbbs
./hbbs
键盘上按下Ctrl+a和d返回主终端,启动hbbr
bash
screen -R Hbbr
./hbbr
键盘上按下Ctrl+a和d返回主终端,可以发现当前文件夹下面有下面这些文件
bash
.
├── db_v2.sqlite3
├── db_v2.sqlite3-shm
├── db_v2.sqlite3-wal
├── hbbr
├── hbbs
├── id_ed25519
├── id_ed25519.pub
└── rustdesk-utils
执行下面命令将会打印key,用于rustdesk客户端连接的配置
cat id_ed25519.pub
3. 客户端安装运行
前往RustDesk 客户端 Github 发布地址根据系统下载安装rustdesk客户端软件,然后点击图中的三个点-->网络-->中继服务器进行客户端配置

ID服务器和中级服务器都填写京东云服务器的ip地址
key填写2.3步骤最后打印的内容。
为了保证安全运行和方便连接,可以在上图中的安全选项中设置密码和2FA验证。
为了验证是否可行,在另一台机器人上安装客户端,并填写相同的内容,然后输入主页中的ID进行连接。