Configurando servidor Rustdesk: alternativa a Anydesk e TeamViewer

Rustdesk é um software de acesso e controle remoto para Windows, macOS e Linux, tendo também aplicativos para Android e iOS.

O cliente, ao ser instalado, irá por padrão usar um servidor público gratuito. Você provavelmente não vai querer isso, principalmente por questão de desempenho, já que o público tem uma latência considerável.

O lado do servidor possui duas edições: uma comercial e uma da comunidade. A edição da comunidade tem algumas limitações, a mais notável sendo a ausência da capacidade própria de gerenciamento de dispositivos. Enquanto a comercial tem uma licença proprietária, a da comunidade é distribuída sob a licença AGPL-3.0.

O download pode ser feito na página do projeto no GitHub. Para os componentes do servidor:

Para o cliente:

O cliente tem uma instalação bem direta para qualquer sistema operacional.

O servidor é composto de dois serviços:

  • rustdesk-hbbs – É o servidor de ID (rendezvous/sinalização). O papel dele é identificar os dois dispositivos a serem conectados e fazê-los criar uma conexão P2P mesmo através de um firewall ou NAT, através da técnica de “hole punching”, de forma que após estabelecida, a conexão não depende da atuação do servidor.
  • rustdesk-hbbr – Dependendo das configurações da rede em que os dois dispositivos se encontram, nem sempre é possível estabelecer uma conexão P2P. Nesse caso, o hbbr assume como um relay, com a comunicação entre os dois dispositivos sendo mediada por ele.

Para instalar, basta baixar os pacotes adequados pra arquitetura do seu servidor na seção releases da página do Rustdesk no GitHub e instalá-los no servidor – que deve ser Debian ou Ubuntu, já que apenas pacotes .deb são distribuídos oficialmente.

A instalação completa consiste em três pacotes, dois sendo os serviços mencionados e outro como um utilitário pra configuração e teste do Rustdesk.

$ wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.14/rustdesk-server-hbbs_1.1.14_amd64.deb
$ wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.14/rustdesk-server-hbbr_1.1.14_amd64.deb
$ wget https://github.com/rustdesk/rustdesk-server/releases/download/1.1.14/rustdesk-server-utils_1.1.14_amd64.deb

# apt install ./rustdesk-server-hbbs_1.1.14_amd64.deb
# apt install ./rustdesk-server-hbbr_1.1.14_amd64.deb
# apt install ./rustdesk-server-utils_1.1.14_amd64.deb

Verifique se os serviços estão sendo executados:

$ systemctl status rustdesk-hbbs
$ systemctl status rustdesk-hbbr

Configure o seu firewall: o serviço rustdesk-hbbs escuta nas portas 21115/tcp e 21116/(tcp+udp), e o rustdesk-hbbr na porta 21117/tcp, então:

# ufw allow 21115:21117/tcp
# ufw allow 21116/udp

A instalação gera alguns arquivos em /var/lib/rustdesk-server: um par de chaves público-privada e alguns arquivos de banco de dados SQLite, usado para armazenamento de informações de clientes.

O par de chaves é gerado automaticamente na instalação e, caso queira, você pode gerar novas com:

$ rustdesk-utils genkeypair

e substituir nos arquivos id_ed25519.pub e id_ed25519. Reinicie os serviços para que tenha efeito.

A chave pública é necessária para a configuração dos clientes.

No cliente instalado, vá nas configurações > Rede > Servidor de ID/Relay e especifice seu endereço de IP ou nome de domínio para ambos os servidores e sua chave pública – que você pode não querer que seja tão pública.