基于云服务器自建Rustdesk远程桌面——以京东云为例

基于云服务器自建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. 参考连接

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可以发现当前文件夹有hbbrhbbsrustdesk-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+ad返回主终端,启动hbbr

bash 复制代码
screen -R Hbbr
./hbbr

键盘上按下Ctrl+ad返回主终端,可以发现当前文件夹下面有下面这些文件

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进行连接。

相关推荐
云飞云共享云桌面10 小时前
无需配置传统电脑——智能装备工厂10个SolidWorks共享一台工作站
运维·服务器·前端·网络·算法·电脑
福尔摩斯张10 小时前
《C 语言指针从入门到精通:全面笔记 + 实战习题深度解析》(超详细)
linux·运维·服务器·c语言·开发语言·c++·算法
虚伪的空想家11 小时前
arm架构服务器使用kvm创建虚机报错,romfile “efi-virtio.rom“ is empty
linux·运维·服务器·javascript·arm开发·云原生·kvm
火车头-11011 小时前
【docker 部署nacos1.4.7】
运维·docker·容器
深藏bIue11 小时前
linux服务器mysql目录下的binlog文件删除
linux·服务器·mysql
虾..12 小时前
Linux 进程状态
linux·运维·服务器
测试者家园12 小时前
DevOps 到底改变了测试什么?
运维·自动化测试·软件测试·devops·持续测试·智能化测试·软件测试和开发
只想安静的写会代码13 小时前
网卡信息查询、配置、常见故障排查
linux·服务器·windows
jiayong2313 小时前
多子系统架构下的Nginx部署策略与最佳实践
运维·nginx·系统架构
皮糖小王子13 小时前
Docker打开本地镜像
运维·docker·容器