【远程访问】如何利用带有公网IP的云服务器(Ubutun)自建Rust Desk中继服务器从而实现多终端远程桌面访问(小白向)


突然想到是否能用随身携带的笔记本远程控制家里的电脑。于是,我上网搜索了一番,发现了一个名为RustDesk的软件可以实现这一功能。

这里需要解释一下为什么需要使用公网IP。我们的家用宽带通常是运营商分配的一个公网IP下的子IP,即内网IP。这意味着,我们和其他使用同一个公网IP的用户实际上是在一个局域网内。在局域网内,我们可以使用Windows自带的远程访问软件轻松实现两台电脑之间的远程访问,比如同时连接到一个WiFi的两台电脑。

Altwin11 可能搜不到远程访问的应用, 需要从Microsoft Store里下一个远程桌面(如果显示应用不可用,去设置里把地区改成新加坡, 很多应用锁国区)

然而,要实现从公司到家里的远程访问,就需要一个公网IP,或者通过一些技术手段(如端口转发)将内网设备映射到公网上。正是基于这样的需求,我选择了RustDesk这款软件,并成功实现了远程访问功能。

前期需要准备的设备

  1. 一台带有公网IP的云服务器(阿里云,华为云,百度云…)
  2. 一台被控终端(家里的主机)
  3. 一台控制终端(带到公司的笔记本)

第一步:在云服务器(Ubutun)上配置你的RustDesk Serve

这里解释一个为什么我使用linux系统而不是windows系统作为服务器的操作系统,主要有两点原因:

  1. 云服务器的配置一般都不是很高(有配置好的,但是也贵啊),使用不带GUI的linux系统可以减少图形化界面对于内存和cpu的占用,使得服务器运行更流畅
  2. 也是借此机会联系一下linux系统的操作

如果又不适应的同学可以自行搜索RustDesk sever在windows系统上的配置方式. 接下来我们就来一步一步展示如何配置我们的中继服务器,

1. 通过控制端或者windows自带的powershell

如果用powershell登录服务器就执行下面的命令

ssh root@你的服务器公网ip

这里输入yes, 如果服务器设置了密码接下来还会要求你输入密码
请添加图片描述

或者通过云服务器运营商提供的CloudShell登录(我使用的是华为云请添加图片描述

2.开放Rust Desk需要使用的端口

非专业版RustDesk需要使用到以下端口:
TCP: 21115, 21116, 21117, 21118, 21119
UDP: 21116

云服务器上的端口一般需要我们手动开放, 这里介绍两种开放模式:

  1. 通过华为云管理平台设置

请添加图片描述

请添加图片描述
请添加图片描述
按照要求把上述端口全部开放,记得优先级哪里选1

  1. 通过Shell执行以下指令开放端口
ufw allow 22/tcp #(华为云貌似也需要手动开一下22号端口)
ufw allow 21115/tcp
ufw allow 21116/tcp
ufw allow 21116/udp
ufw allow 21117/tcp
ufw enable

3.下载配置RustDesk的插件

笔者通过一下午的学习了解到RustDesk提供多种安装方式,这里列举两种比较适合小白的傻瓜方式,笔者用的是第二种pm2的模式

首先,如果你的服务器是新的,你首先要更新一下apt

apt-get update
  1. 使用 Docker 部署

首先安装Docker

# 使用清华源,如果是国外云服务器可以不运行这一步
export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
# 安装命令
curl -fsSL https://get.docker.com/ | sh

检查是否安装完毕,如果有正确输出版本 ,那么就Docker代表安装成功了。

root@ubuntu:~# docker -v
Docker version 27.1.1, build 6312585

运行命令

mkdir -p ~/rustdesk
cd ~/rustdesk
sudo docker image pull rustdesk/rustdesk-server
sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v ./data:/root -td --net=host rustdesk/rustdesk-server hbbs
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v ./data:/root -td --net=host rustdesk/rustdesk-server hbbr

注意

如果你运行 docker 版本时候,要求注册码,说明你下载的是老版本,因为国内的 docker 镜像缓存可能没有更新

检查是否正常运行

控制台输入 docker ps -a,查看STATUS 状态是否是 Up

root@ubuntu:~/rustdesk# docker ps -a
CONTAINER ID   IMAGE                      COMMAND   CREATED          STATUS          PORTS     NAMES
97e8dfc8939e   rustdesk/rustdesk-server   "hbbr"    44 seconds ago   Up 43 seconds             hbbr
64e629c8a41d   rustdesk/rustdesk-server   "hbbs"    49 seconds ago   Up 48 seconds      

运行好后,可以在当前目录下列出文件,输入ls -l data

root@ubuntu:~/rustdesk# ls -l data
total 132
-rw-r--r-- 1 root root  4096 Oct 26 15:25 db_v2.sqlite3
-rw-r--r-- 1 root root 32768 Oct 26 15:25 db_v2.sqlite3-shm
-rw-r--r-- 1 root root 82432 Oct 26 15:25 db_v2.sqlite3-wal
-rw-r--r-- 1 root root    88 Oct 26 15:25 id_ed25519
-rw-r--r-- 1 root root    44 Oct 26 15:25 id_ed25519.pub

最后一个文件id_ed25519.pub我们在配置客户端的时候会用到,里面保存的是我们服务器的Key

  1. 使用 PM2 部署

使用PM2安装的步骤相对复杂一点,需要我们现在服务器里装一个NodeJS环境

# 更新软件包列表
sudo apt update

# 安装 Node.js 和 npm
sudo apt install nodejs npm -y

# 验证安装是否成功
node -v
npm -v

如果回复如下就代表成功

root@hcss-ecs-124d:~# node -v
v12.22.9
root@hcss-ecs-124d:~# npm -v
8.5.1

安装 PM2

npm i -g pm2

检验PM2是否安装成功

root@hcss-ecs-124d:~# pm2 -v
5.4.3

4.下载RustDesk-Serve

点击下面的连接进入RustDesk Sever的Github主页
RustDesk Serve - Github

右键点击zip的安装包,选择复制连接
请添加图片描述
回到shell里 输入命令 wget 你刚刚复制的连接

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

下载zip并解压安装包

apt-get install zip
unzip rustdesk-server-linux-amd64.zip

找到自己服务器匹配的架构,一般市面上的云服务器都是amd64架构的,跟我一样的命令即可

cd amd64
ls -l

如果成功的话,你会在amd64文件夹里看到hbbr, hbbs, id_ed25519, id_25519.pub 和 rustdesk-ut 这五个文件.恭喜你,这个时候就代表你的RustDesk安装成功了

-rw-r--r-- 1 root root     4096 Dec 21 15:29 db_v2.sqlite3
-rw-r--r-- 1 root root    32768 Dec 21 15:32 db_v2.sqlite3-shm
-rw-r--r-- 1 root root    82432 Dec 21 15:32 db_v2.sqlite3-wal
-rwxr-xr-x 1 root root  9194392 Oct  7 16:37 hbbr
-rwxr-xr-x 1 root root 14290448 Oct  7 16:37 hbbs
-rw-r--r-- 1 root root       88 Dec 21 15:29 id_ed25519
-rw-r--r-- 1 root root       44 Dec 21 15:29 id_ed25519.pub
-rwxr-xr-x 1 root root  4734920 Oct  7 16:37 rustdesk-ut

接下来通过PM2启动 hbbr 和 hbbs

pm2 start hbbs
pm2 start hbbr

如果一切正常你会看到以下结果

请添加图片描述
这个时候我们的RustDesk Sever就算配置好了,接下来就是配置我们的客户端了.

配置RuskDesk客户端

下载RuskDesk客户端

RustDesk官网
点击进入,下载window版本的客户端并安装,成功后应该是如下界面
请添加图片描述

配置RustDesk 客户端

点击左上角的设置 进入网络点击ID/中继服务器请添加图片描述
IP一栏输入你的服务的公网IP,记住是公网IP!
请添加图片描述

还记的我们之前说的id_ed25519.pub里存着我们RustDesk的key么,这时候就用上了, 回到amd64的目录下,执行以下命令

cat id_ed25519.pub

你就回获得一个Key(通常是以=结尾的),将这个key复制到客户端的Key一栏,然后重启客户端, 当你看到客户端下面是显示就绪的时候,恭喜,你的远程访问功能已然实现请添加图片描述

在你的受控终端和控制终端同时按照上诉步骤配置好客户端,在控制终端里输入受控客户端左面的ID,就可以实现远程访问了(受控终端和控制终端是可以相互转换的,取决于在那台设备上输入对方的ID) 如果访问受控终端无法获取一次性密码,也可以在设置里设置一个固定密码.

请添加图片描述

以下是访问成功的展示请添加图片描述

在移动端上配置RustDesk

刚刚发现RustDesk还有android端, 于是在手机上下载了一个,配置方式和在windows上一样,不过操作起来实在是费劲,只能说是个鸡肋把,在平板上可能效果会好一点,

![请添加图片描述](https://i-blog.csdnimg.cn/direct/d683fb9bd5c94e7888f7c1b5aec72d69.jpeg请添加图片描述

创作不易,看完麻烦点个赞~

猜你喜欢

转载自blog.csdn.net/qq_41133965/article/details/144632100
今日推荐