6.1 KiB
title | weight |
---|---|
Installation | 10 |
Set up your own cloud by following simple steps
STEP-1 : Download server-side software programs
Download or use docker rustdesk/rustdesk-server.
Platform versions provided:
- Linux
- Windows
Below tutorial is based on Linux build.
There are two executables and a folder:
- hbbs - RustDesk ID/Rendezvous server
- hbbr - RustDesk relay server
They are built on Centos7, tested on Centos7/8, Ubuntu 18/20.
Server Requirements
The hardware requirements are very low, the minimum configuration of the cloud server is enough, and the CPU and memory requirements are the minimum. Regarding the network size, if the TCP hole punching direct connection fails, the relay traffic will be consumed. The traffic of a relay connection is between 30k-3M/s (1920x1080 screen), depending on the resolution settings and screen update。 If it is only for office work demand, the traffic is around 100K/s.
STEP-2 : Run hbbs and hbbr on server
Run hbbs/hbbr on your server (Centos or Ubuntu). We suggust you use pm2 managing your service.
./hbbs -r <relay-server-ip[:port]>
./hbbr
or run hbbs/hbbr with pm2
pm2 start hbbs -- -r <relay-server-ip[:port]>
pm2 start hbbr
{{% notice note %}}
pm2 requires nodejs v16+, if you fail to run pm2 (e.g. you can not see hbbs/hbbr in pm2 list
), please download and install LTS version nodejs from https://nodejs.org. If you wanna make hbbs/hbbr auto-run after reboot, please check out pm2 save
and pm2 startup
. More about pm2. Another good tool for you log is pm2-logrotate.
The -r
parameter of hhbs is not mandatory, it is just convenient for you not to specify a relay server on the controlled client side, you do not need to specify port if you are using default 21117 port. The relay server specified by the client has a higher priority than this. For RustDesk controlled client >= 1.1.9, you do not need to specify relay server address on client side either, if the relay server does not run on different host or port.
{{% /notice %}}
By default, hbbs listens on 21115(tcp) and 21116(tcp/udp), 21118(tcp), hbbr listens on 21117(tcp), 21119(tcp). Be sure to open these ports in the firewall. Please note that 21116 should be enabled both for TCP and UDP. 21115 is used for NAT type test, 21116/UDP is used for ID registration and heartbeat service, 21116/TCP is used for TCP hole punching and connection service, 21117 is used for Relay services, 21118 and 21119 are used to support web clients. If you do not need web client (21118, 21119) support, the corresponding ports can be disabled.
- TCP(21115, 21116, 21117, 21118, 21119)
- UDP(21116)
Please run with "-h" option to see help if you wanna choose your own port.
Docker example
Linux/amd64
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 `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbs -r <relay-server-ip[:port]>
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server hbbr
Linux/arm64v8
sudo docker image pull rustdesk/rustdesk-server:latest-arm64v8
sudo docker run --name hbbs -p 21115:21115 -p 21116:21116 -p 21116:21116/udp -p 21118:21118 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server:latest-arm64v8 hbbs -r <relay-server-ip[:port]>
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -it --net=host --rm rustdesk/rustdesk-server:latest-arm64v8 hbbr
{{% notice note %}} --net=host only works on Linux so far as I know, which make hbbs/hbbr can see the real incomming ip rather than container ip (172.17.0.1). If --net=host works fine, -p options are useless.
Please remove --net=host if see connection problem on your platform {{% /notice %}}
STEP-3 : Set hbbs/hbbr address on client-side
Click on menu button on the right side of ID as below, choose "ID/Relay Server".
Enter the hbbs host or ip address in the ID server input box (local side + remote side), the other two addresses can be left blank, RustDesk will automatically deduce (if not specially set), and the relay server refers to hbbr ( 21116 port).
e.g.
hbbs.yourhost.com
or
hbbs.yourhost.com:21116
Put config in rustdesk.exe file name (Windows only)
Change rustdesk.exe
to rustdesk-host=<host-ip-or-name>,key=<public-key-string>
.exe, e.g. rustdesk-host=192.168.1.137,key=xfdsfsd32=32
.exe, you can see the config result in the about window as below.
{{% notice note %}}
You need to set host
and key
both, missing any one won't work.
{{% /notice %}}
Menu | About Page |
---|---|
Key
Different from the old version, the key in this version is mandatory, but you don't need to set it yourself. When hbbs runs for the first time, it will automatically generate a pair of encrypted private key and public key (respectively located in the id_ed25519
and id_ed25519.pub
files in the running directory), the main purpose is for communication encryption.
If you did not fill in the Key:
(the content in the public key file id_ed25519.pub
) in the previous step, it does not affect the connection, but the connection cannot be encrypted.
cat ./id_ed25519.pub
If you wanna prohibit users without key from establishing non-encrypted connections, please add the -k _
parameter when running hbbs and hbbr, for example:
./hbbs -r <relay-server-ip[:port]> -k _
./hbbr -k _
If you wanna change key, please remove id_ed25519
and id_ed25519.pub
files and restart hbbs/hbbr,hbbs will generate new key pair.