O RustDesk é uma alternativa open-source ao AnyDesk, oferecendo acesso remoto e controle de dispositivos de forma segura e direta, sem depender de serviços de terceiros. Ele proporciona uma experiência semelhante a outras ferramentas comerciais, com a vantagem de ser flexível e baseado em código aberto.
Este repositório oferece a configuração necessária para executar um servidor, utilizando Docker Compose
para gerenciar os serviços necessários. Além disso, inclui scripts .bat
gerados em Python, que simplificam a configuração de regras de firewall.
Important
A complexidade criada nos scripts não é essencial para a execução do servidor. Para subir um self-host RustDesk, basta ter o cliente, executar o docker-compose
e ter o Docker Desktop instalado e em funcionamento.
Os scripts .bat
mencionados são criados utilizando bibliotecas como json
, subprocess
, pathlib
, typing
, logging
e platform
. O código foi desenvolvido seguindo o máximo possível das boas práticas do Pylint, visando garantir a legibilidade e a qualidade do código.
O Git é opcional, pois o arquivo docker-compose.yml
pode ser baixado manualmente, sem a necessidade de clonar o repositório inteiro.
Também é possível realizar a instalação utilizando o winget
:
winget install -e --id Git.Git
winget install -e --id Docker.DockerDesktop
winget install -e --id RustDesk.RustDesk
-
Clone este repositório ou baixe o
docker-compose
: -
Configure as regras de firewall no Windows usando o comando abaixo ou por meio da interface do Windows Defender Firewall com Segurança Avançada:
netsh advfirewall firewall add rule name="RustDesk Self-Host TCP (21115-21119)" action=allow protocol=tcp localport=21115-21119 netsh advfirewall firewall add rule name="RustDesk Self-Host UDP (21116)" action=allow protocol=udp localport=21116
Utilizando a interface do Windows:
- Selecione Regras de Entrada > Nova Regra.
- Escolha o tipo de regra como Porta.
- Identifique se é TCP ou UDP e preencha as portas locais que deseja abrir.
- Escolha Permitir Conexão, mantenha os Perfis marcados (Domínio, Particular e Público), e dê um nome para identificar a regra.
O Windows permite duplicidade ao criar regras de Firewall com o mesmo nome e portas. Isso não impede o funcionamento, mas é ideal evitar. Caso ocorra, limpe as regras de firewall e execute novamente o processo de criação.
-
Inicie os containers através do terminal com
docker-compose up -d
ou utilizando a interface do Docker Desktop.Ao executar o
docker-compose
, a pasta./data/
será gerada localmente no projeto. Essa pasta conterá arquivos como a chave privada (id_ed25519
) e a chave pública (id_ed25519.pub
). Esses arquivos não devem ser alterados ou removidos. -
Use o comando
ipconfig
para localizar o endereço IPv4 do seu IP local e configurá-lo no RustDesk Client. -
Preencha o endereço IPv4 no RustDesk Client em
Configurações > Rede > Servidor ID/Relay
, nos camposServidor de ID
eServidor de Relay
. O campoKey
deverá ser preenchido com a chave pública gerada (./data/id_ed25519.pub
). Isso deve ser configurado nas máquinas que deseja estabelecer a conexão.
Caso tudo esteja configurado corretamente, no RustDesk Client em ambas as máquinas, aparecerá a mensagem 🟢 Pronto
na parte inferior. Caso haja algum problema, pode surgir a mensagem de 🟠 Conectando à rede do RustDesk...
. Se o serviço não estiver em execução, será exibido 🟠 Serviço não está em execução
, com o botão clicável de Iniciar Serviço
.
Para replicar a geração dos arquivos .bat
, é necessário instalar o Python
e suas dependências. Para mais detalhes, consulte o repositóro py-default-repo.
Ao executar o main.py
, os scripts gerados estarão na pasta scripts/output
. Para a criação e remoção das regras, é necessário abrir um terminal como administrador:
add_firewall_rules.bat
delete_firewall_rules.bat
verify_firewall_rules.bat
Use clicando diretamente no arquivo .bat
ou via terminal no Windows.
GitHub: pagueru
LinkedIn: Raphael Henrique Vieira Coelho
E-mail: [email protected]