---
title: Установка
weight: 10
---

## Настройте свой собственный сервер при помощи следующих простых шагов
-----------

### ШАГ-1 : Скачайте серверную часть

Можно [скачать файлы перейдя по ссылке](https://github.com/rustdesk/rustdesk-server/) или использовать образ Docker [rustdesk/rustdesk-server](https://hub.docker.com/r/rustdesk/rustdesk-server/tags).

Доступны версии для следующих платформ:
  - Linux
  - Windows

Руководство основано на версии для Linux.

В скачанной папке находится два исполняемых файла:
   - hbbs - Сервер RustDesk ID/Rendezvous 
   - hbbr - Сервер ретранслятора RustDesk
   - static - содержит все файлы Web-консоли

Они собраны на Centos7 и протестированы на Centos7/8 и Ubuntu 18/20.

#### Системные требования
Системные требования очень низкие. Минимальной конфигурации облачного сервера хватит. В зависимости от размера сети, если не удастся прямое TCP подключение, траффик пойдёт через ретранслятор. Объём трафика ретранслятора будет от 30 кб/с до 3 Мб/с (для экрана размером 1920х1080), в зависимости от разрешения и частоты обновления. Если софт испоьзуется для обычных офисных нужд, объём траффика будет около 100 кб/с.


### ШАГ-2 : Запуск hbbs и hbbr на сервере

Запустите hbbs/hbbr на вашем сервере (Centos или Ubuntu). Мы рекомендуем использовать [pm2](https://pm2.keymetrics.io/) для управления службами.

```
./hbbs -r <IP-адрес ретранслятора[:port]>
./hbbr
```

или запустите hbbs/hbbr при помощи pm2

```
pm2 start hbbs -- -r <IP-адрес ретранслятора[:port]>
pm2 start hbbr 
```

<a name="demo"></a>
{{% notice note %}}

pm2 требует для себя nodejs v16+. Если не получится запустить pm2 (например, вы не видите hbbs/hbbr в `pm2 list`), установите последнюю LTS версию nodejs по ссылке https://nodejs.org. Если вы хотите чтобы hbbs/hbbr запускался вмести с системой, посмотрите `pm2 save` и `pm2 startup`. Подробности по ссылке: [pm2](https://pm2.keymetrics.io/docs/usage/quick-start/). Хороший инстурмет для записи логов: [pm2-logrotate](https://github.com/keymetrics/pm2-logrotate).

Параметр `-r` у hhbs не обязательный. Он необходим для автоподстановки адреса ретранслятора на стороне клиента. Адрес ретранслятора на стороне клиента имеет приоритет над адресом, указанным с ключом `-r`.
{{% /notice %}}

По умолчанию hbbs слушает порты 21115(tcp) и 21116(tcp/udp), 21118(tcp), hbbr слушает порты 21117(tcp) и 21119(tcp). Удостоверьтесь, что эти порты открыты на файрволле. **Обратите внимание: Порт 21116 должен быть открыт и как TCP и как UDP**. Порт 21115 используется для проверки типа NAT, 21116/UDP используется для регистрации и службы heartbeat, 21116/TCP используется для пробивания TCP отверстий и службы соединений, 21117 используется для службы ретранслятора, 21118 и 21119 используется для поддержки Web-клиентов. Если вам не нужны Web-клиент (21118, 21119) соответствующие порты можно отключить.

- TCP(**21115, 21116, 21117, 21118, 21119**)
- UDP(**21116**)

Используйте ключ `-h` для получения справки.

#### Пример с использованием Docker

##### 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 -td --net=host rustdesk/rustdesk-server hbbs -r <IP-адрес ретранслятора[:port]>
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -td --net=host 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 -td --net=host rustdesk/rustdesk-server:latest-arm64v8 hbbs -r <IP-адрес ретранслятора[:port]>
sudo docker run --name hbbr -p 21117:21117 -p 21119:21119 -v `pwd`:/root -td --net=host rustdesk/rustdesk-server:latest-arm64v8 hbbr
```

<a name="net-host"></a>

{{% notice note %}}
--net=host работает только на Linux, таким образом hbbs/hbbr может видеть настоящий входящий IP-адрес, а не адрес контейнера(172.17.0.1).
Если --net=host сработало, ключ -p бесполезен.

**Уберите --net=host если наблюдаются проблемы на вашей платформе**
{{% /notice %}}


### ШАГ-3 : Настройка адресов hbbs/hbbr на стороне клиента

Нажмите на кнопку меню справа от ID, как указано ниже, и выберите "ID/Relay Server".

![](/docs/en/self-host/install/images/server-set-menu.png)

Введите URL или IP-адрес hbbs в поле "ID server". Поле "Relay server" можно оставить пустыми, RustDesk автоматически определит адрес ретранслятора.

Например:

```
hbbs.example.com
```

или

```
hbbs.example.com:21116
```

![](/docs/en/self-host/install/images/server-set-window.png)

#### Можно поместить конфигурацию в имя исполняемого файла (только для Windows)

Замените `rustdesk.exe` на rustdesk-`host=<host-ip-or-name>,key=<строка-открытого-ключа>`.exe, например: rustdesk-`host=192.168.1.137,key=xfdsfsd32 =32`.exe, вы можете увидеть результат настройки в окне «О программе», как показано ниже.

{{% notice note %}}
Необходимо добавить и `host`, и `key`, а использовать их без них непросто.

Если в ключе есть недопустимые символы, которые нельзя использовать в имени файла, удалите файл id_ed25519 и перезапустите hbbs/hbbr, файл id_ed25519.pub будет создан заново, повторяйте, пока не получите допустимые символы.
{{% /notice %}}

|Меню |О странице |
| -- | -- |
![](/docs/en/self-host/install/images/aboutmenu.png) | ![](/docs/ru/self-host/install/images/lic.png) |

## Ключ шифрования
-----------
В отличии от предыдущих версий, в текущей версии ключ шифрования обязателен, но нет необходимости устанавливать его самостоятельно. Когда hbbs запускается в первый раз, он автоматически сгенерирует пару из зашифрованных приватного и публичного ключей (в файлах `id_ed25519` и `id_ed25519.pub` соответственно, в директории запуска).

Если вы не заполните поле `Key:` (содержимое файла публичного ключа `id_ed25519.pub`) на предыдущем шаге, это не отразится на соединении, но оно не будет зашифровано. 

````
cat ./id_ed25519.pub
````

Если вы хотите запретить незашифрованные соединения, используйте параметр `-k _` для запуска hbbs и hbbr, например:
````
./hbbs -r <адрес ретранслятора[:port]> -k _
./hbbr -k _
````

Если вы хотите сменить ключ, удалите файлы `id_ed25519` и `id_ed25519.pub` и перезапустите hbbs/hbbr，hbbs автоматически сгенерирует новую пару ключей.
