基于云服务器自建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进行连接。

相关推荐
Zach_yuan1 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++
AtoposのCX3301 小时前
Docker运行hello-world镜像失败或超时
运维·docker
马猴烧酒.1 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库
熊延2 小时前
麒麟V10系统安装部署elasticsearch
linux·运维·服务器·elasticsearch·搜索引擎·全文检索
松涛和鸣3 小时前
72、IMX6ULL驱动实战:设备树(DTS/DTB)+ GPIO子系统+Platform总线
linux·服务器·arm开发·数据库·单片机
Yeats_Liao5 小时前
评估体系构建:基于自动化指标与人工打分的双重验证
运维·人工智能·深度学习·算法·机器学习·自动化
爱吃生蚝的于勒5 小时前
【Linux】进程信号之捕捉(三)
linux·运维·服务器·c语言·数据结构·c++·学习
The森6 小时前
Linux IO 模型纵深解析 01:从 Unix 传统到 Linux 内核的 IO 第一性原理
linux·服务器·c语言·经验分享·笔记·unix
文艺理科生Owen6 小时前
Nginx 路径映射深度解析:从本地开发到生产交付的底层哲学
运维·nginx
期待のcode6 小时前
Redis的主从复制与集群
运维·服务器·redis