本文前沿

网上很多桌面工具:诸如向日葵、todesk、teamview等等都是第三方公司运营的。普通用户不付费很难享受到高质量的服务。同时如果这些公司倒闭、被黑了,我们的桌面相当于裸奔出去了!

如果我们自己搭建的服务,所以被攻击的可能性极小”(自己几斤几两还不清楚?),同时我们自己如果有云服务器的话,如果云服务器带宽足够,我们将“独享”体验飞一般的感觉!难得可贵的是提供了多系统的客户端!

对了,抄我本篇文章必须备注来源哦!

RustDesk优点

1、自建服务端。搭建在自己的云服务器就相当于独享高速带宽!

2、点对点通信。TCP隧道功能一旦打洞成功,相当于用户之间直连,不走服务器带宽!

3、通信加密。配置公钥后,必须拥有公钥才能正常使用!

4、内置文件传输。得益于点对点通信,文件传输不也是手到擒来嘛!

RustDesk相关链接

官方介绍:https://rustdesk.com/zh/

服务下载地址:https://github.com/rustdesk/rustdesk-server/releases

客户端下载地址:https://rustdesk.com/zh/ 支持IOS、Mac、Windows、Android、Linux等等!

正文:RustDesk Linux服务端搭建教程(非Docker)

前往Github下载好服务端需要的文件,我们看下文件结构。

[root@VM-4-14-centos rustdesk]# tree
.
└── amd64
    ├── db_v2.sqlite3
    ├── db_v2.sqlite3-shm
    ├── db_v2.sqlite3-wal
    ├── hbbr
    ├── hbbs
    ├── id_ed25519     (一开始不会有这个文件,启动后会自动生成,如需更换删除重启服务)
    ├── id_ed25519.pub (一开始不会有这个文件,启动后会自动生成,如需更换删除重启服务)
    └── rustdesk-utils

RustDesk默认程序占用端口说明

  1. hbbs是ID/Rendezvous 服务器。默认监听:21115(tcp), 21116(tcp/udp), 21118(tcp)
  2. hbbr是中继服务器。默认监听:21117(tcp), 21119(tcp)

如果只需要基本的远程控制: 请注意21116同时要开启TCP和UDP。

其中21115是hbbs用作NAT类型测试(无需开启,不用关注)

hbbs:21116/UDP是hbbs用作ID注册与心跳服务,21116/TCP是hbbs用作TCP打洞与连接服务

hbbr:只用TCP。21117是hbbr用作中继服务使用。21118、21119是为了支持网页客户端。如果您不需要网页客户端(21118,21119)支持,端口可以不开。

总结:hbbs需要指定端口用于客户端的ID服务器hbbr用于中继服务器

启动 hbbr 是中继服务器

修改hbbr默认端口为 21117 -> 36001(注意要去云安全组、服务器系统防火墙方形哦 注意是TCP即可)

-k 是加密 参数使用固定的_ 公钥在id_ed25519.pub文件中。秘钥你也可以自定义字符串哦

nohup ./hbbr -p 36001 -k _ > hbbr.out 2>&1  &

查看hbbr日志(已删除时间)

INFO [src/common.rs:121] Private key comes from id_ed25519
INFO [src/relay_server.rs:580] Key: 你可使用文件,你也可以自定义字符串
INFO [src/relay_server.rs:60] #blacklist(blacklist.txt): 0
INFO [src/relay_server.rs:75] #blocklist(blocklist.txt): 0
INFO [src/relay_server.rs:81] Listening on tcp :36001
INFO [src/relay_server.rs:83] Listening on websocket :36003
INFO [src/relay_server.rs:86] Start
INFO [src/relay_server.rs:106] DOWNGRADE_THRESHOLD: 0.66
INFO [src/relay_server.rs:115] DOWNGRADE_START_CHECK: 1800s
INFO [src/relay_server.rs:124] LIMIT_SPEED: 4Mb/s
INFO [src/relay_server.rs:134] TOTAL_BANDWIDTH: 1024Mb/s
INFO [src/relay_server.rs:148] SINGLE_BANDWIDTH: 16Mb/s

启动 hbbs 是ID服务器

修改hbbs端口为21116 -> 36000(注意要去云安全组、服务器系统防火墙方形哦 注意是TCP+UDP哦)

参数说明: -r是指定中继服务器地址,也就是hbbr地址。同时-p指定hbbsID服务器运行的端口。-k 是加密 参数使用固定的_ 公钥在id_ed25519.pub文件中。秘钥你也可以自定义字符串哦

nohup ./hbbs -r 你的IP或域名:36001 -p 36000 -k _ > hbbs.out 2>&1 &

hbbs日志(已经删除时间)

INFO [src/common.rs:121] Private key comes from id_ed25519
INFO [src/rendezvous_server.rs:1185] Key: 你可使用文件,你也可以自定义字符串
INFO [src/peer.rs:84] DB_URL=./db_v2.sqlite3
INFO [src/rendezvous_server.rs:100] serial=0
INFO [src/common.rs:46] rendezvous-servers=[]
INFO [src/rendezvous_server.rs:102] Listening on tcp/udp :36000
INFO [src/rendezvous_server.rs:103] Listening on tcp :35999, extra port for NAT test
INFO [src/rendezvous_server.rs:104] Listening on websocket :36002
INFO [libs/hbb_common/src/udp.rs:35] Receive buf size of udp [::]:36000: Ok(212992)
INFO [src/rendezvous_server.rs:139] mask: None
INFO [src/rendezvous_server.rs:140] local-ip: ""
INFO [src/common.rs:46] relay-servers=["你的IP或域名:36001"]
INFO [src/rendezvous_server.rs:156] ALWAYS_USE_RELAY=N
INFO [src/rendezvous_server.rs:177] Start
INFO [libs/hbb_common/src/udp.rs:35] Receive buf size of udp 0.0.0.0:0: Ok(212992)

启动完成,查看hbbs、hbbr是否正常运行

[root@VM-4-14-centos amd64]# ps -a | grep hbb
 2498 pts/0    00:00:17 hbbr
 2668 pts/0    00:00:01 hbbs

有hbbr、hbbs说明一切正常,前往配置客户端吧!

客户端配置

填写你的ID服务器、中继服务器即可

Key在启动服务的使用_ 你就要从文件id_ed25519.pub获取。如果你是自定义,填写自定义即可!

点击确认后,等待网络连接正常,你就可以使用了。

附赠-hbbr、hbbs命令详细说明

hbbr

[root@VM-4-14-centos amd64]# ./hbbr --help
hbbr 1.1.7
Purslane Ltd. <info@rustdesk.com>
RustDesk Relay Server

USAGE:
    hbbr [OPTIONS]

FLAGS:
    -h, --help       打印帮助信息
    -V, --version    打印版本信息

OPTIONS:
    -k, --key <KEY>                       客户端拥有相同的key才允许链接
    -p, --port <NUMBER(default=21117)>    指定监听的端口

hbbs

[root@VM-4-14-centos amd64]# ./hbbs --help
hbbs 1.1.7
Purslane Ltd. <info@rustdesk.com>
RustDesk ID/Rendezvous Server

USAGE:
    hbbs [OPTIONS]

FLAGS:
    -h, --help       打印帮助信息
    -V, --version    打印版本信息

OPTIONS:
    -c, --config <FILE>                   设置自定义配置
    -k, --key <KEY>                       仅允许具有相同密钥的客户端远程目标电脑,被远程者,暂时无需填写,只需要填写ID服务器即可!
        --mask <MASK>                     Determine if the connection comes from LAN, e.g. 192.168.0.0/16
    -p, --port <NUMBER(default=21116)>    指定监听的端口
    -r, --relay-servers <HOST>            设置中继服务器 Sets the default relay servers, seperated by colon
    -R, --rendezvous-servers <HOSTS>      Sets rendezvous servers, seperated by colon
    -M, --rmem <NUMBER(default=0)>        Sets UDP recv buffer size, set system rmem_max first, e.g., sudo sysctl -w
                                          net.core.rmem_max=52428800. vi /etc/sysctl.conf, net.core.rmem_max=52428800,
                                          sudo sysctl –p
    -s, --serial <NUMBER(default=0)>      Sets configure update serial number
    -u, --software-url <URL>              Sets download url of RustDesk software of newest version

终止RustDesk服务端

因为服务前缀都是hbb(hbbr、hbbs)开头的,所以直接查询所有的hbb命令的进程

 ps -a | grep hbb

然后执行杀掉PID

kill -9 PID

Linux一键启动hbbr、hbbs

#!/bin/sh
# author name:zanglikun
# author QQ:740969606

# "设置中继服务器的端口:当前是36001"
nohup ./hbbr -p 36001 -k _ > hbbr.out 2>&1  &
echo "Hbbr is OK!"
sleep 3
# "设置ID服务器的端口:-r 指定中级服务器,-p指定ID服务器端口"
# 示例:nohup ./hbbs -r baidu.com:36001 -p 36000 -k _ > hbbs.out 2>&1 &
nohup ./hbbs -r 你的中继服务器IP:上面你指定的中继端口 -p 36000 -k _ > hbbs.out 2>&1 &
echo "Hbbs is OK!"
sleep 3
echo "如果有hbbr、hbbs就算启动成功!"
ps -a | grep hbb

PC控制Android示例