No local

Hospede sua própria rede HopToDesk localmente ou na nuvem.

Configure sua própria rede

Configure sua própria rede HopToDesk. Compatível com Ubuntu 18 - 24 e Windows.

SO:
Linux
LinuxWindows
Esta configuração permite que os dispositivos da sua LAN se conectem diretamente, usando os servidores de retransmissão padrão do HopToDesk para conexões externas.
Configure seu próprio servidor TURN para ter controle total sobre as conexões de retransmissão. Todos os campos são obrigatórios.

Tutorial de configuração

Auto-hospedagem do HopToDesk

Guia de configuração passo a passo

O que o instalador faz, como verificá-lo e como conectar os seus dispositivos à sua própria rede.

Como funciona

O HopToDesk usa dois tipos de servidores. O servidor de sinalização ajuda os dispositivos a se encontrarem e a iniciar uma sessão. O relay TURN transporta o tráfego da sessão apenas quando uma conexão direta entre os dois dispositivos não é possível.

As sessões são criptografadas de ponta a ponta, então nenhum dos servidores consegue ler sua tela, seus arquivos ou seu chat. O servidor de sinalização vê apenas os IDs dos dispositivos e os pedidos de conexão.

O instalador desta página configura o servidor de sinalização. O tráfego de relay passa pelo relay da HopToDesk por padrão, ou pelo seu próprio servidor TURN se você informar um.

O painel continua sendo um serviço hospedado. Os dispositivos de uma rede auto-hospedada ainda podem ser vinculados a ele para gerenciamento, e o painel pode enviar as configurações de rede a eles.

Antes de começar

  • Um servidor com Ubuntu 18.04 a 24.04, ou um servidor Windows.
  • Acesso root ou sudo nesse servidor.
  • Um endereço IP ou nome de host que todos os seus dispositivos consigam alcançar. Para uma rede que nunca sai da sua LAN, um endereço privado basta.
  • Porta TCP 80 aberta no firewall do servidor para os seus dispositivos.
  • Se quiser o seu próprio relay: host, porta, usuário e senha do seu servidor TURN.

Passo 1: Instalar o servidor de sinalização no Linux

  1. Faça login no servidor como root ou como um usuário com permissão sudo.
  2. No topo desta página, escolha LAN + Default Relay ou Custom TURN Server. O comando de instalação muda conforme a sua escolha.
  3. Clique em Copy, cole o comando no terminal e pressione Enter.
  4. Aguarde o script terminar. Em um servidor novo, a instalação dos pacotes pode levar alguns minutos.
  5. No final, o script imprime HopSignal Setup Complete, seguido do endereço do seu servidor e de um bloco de configurações de rede pronto para uso. Guarde essa saída, você vai precisar dela no passo 3.
cd /home && curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sh hsinstall.sh

Com o seu próprio servidor TURN, acrescente os quatro valores dele ao final do comando nesta ordem: host, porta, usuário, senha.

sh hsinstall.sh turn.example.com 443 myuser mypassword

O que o script faz

  • Instala com o apt as ferramentas de compilação e as bibliotecas OpenSSL necessárias.
  • Baixa o binário do servidor de sinalização para a pasta /home/hopsignal.
  • Cria um serviço systemd chamado hopsignal e o inicia a cada boot.
  • Adiciona um watchdog no cron que reinicia o serviço se ele parar de responder e rotaciona o log quando ele passa de 100 MB.
  • Abre a porta TCP 80 no ufw quando o ufw está ativo.

Passo 1 no Windows: Rodar o servidor de sinalização

  1. Mude o seletor OS no topo desta página para Windows e clique em Download. Você recebe um único arquivo chamado hopsignal.exe.
  2. Crie uma pasta como C:\hopsignal e mova hopsignal.exe para dentro dela.
  3. Na mesma pasta, crie um arquivo de texto vazio chamado fedlist.txt.
  4. A versão para Windows também exige um certificado TLS e a sua chave privada no formato PEM. Qualquer par funciona, inclusive um autoassinado. Salve-os como cert.pem e key.pem na mesma pasta.
  5. Abra um Prompt de Comando como administrador e inicie o servidor.
cd C:\hopsignal
hopsignal.exe --ADDR 0.0.0.0:80 --WSS_ADDR 0.0.0.0:443 --CERT cert.pem --KEY key.pem --FEDLIST fedlist.txt --FEDADDR 127.0.0.1:82 --FEDPWD 123456789 --LOGFILE hs.log

Se você tem OpenSSL, este comando cria um par de certificados autoassinados:

openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem -days 3650 -subj "/CN=hopsignal"

Libere a porta no Firewall do Windows:

netsh advfirewall firewall add rule name="HopSignal" dir=in action=allow protocol=TCP localport=80

Para manter o servidor rodando após uma reinicialização, registre-o como tarefa agendada que inicia no boot com a conta SYSTEM:

schtasks /Create /TN HopSignal /SC ONSTART /RU SYSTEM /TR "C:\hopsignal\hopsignal.exe --ADDR 0.0.0.0:80 --WSS_ADDR 0.0.0.0:443 --CERT C:\hopsignal\cert.pem --KEY C:\hopsignal\key.pem --FEDLIST C:\hopsignal\fedlist.txt --FEDADDR 127.0.0.1:82 --FEDPWD 123456789 --LOGFILE C:\hopsignal\hs.log"
schtasks /Run /TN HopSignal

Passo 2: Verificar se o servidor está rodando

No Linux, verifique o serviço e o log:

sudo systemctl status hopsignal
tail /home/hopsignal/hs.log

No Windows, confirme que a porta está escutando:

netstat -an | find ":80 "

De qualquer computador, teste a porta WebSocket. Substitua SERVER_IP pelo endereço do seu servidor. Um servidor saudável responde HTTP/1.1 101 Switching Protocols.

curl -i -N -m 5 -H "Connection: Upgrade" -H "Upgrade: websocket" -H "Sec-WebSocket-Version: 13" -H "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" http://SERVER_IP:80/

Passo 3: Apontar os seus dispositivos para o servidor

Cada dispositivo lê suas configurações de rede de um pequeno documento JSON. É o bloco que o instalador imprimiu no final do passo 1. Substitua SERVER_IP pelo endereço do seu servidor e preencha o bloco TURN se você usa o seu próprio relay.

{
  "turnservers": [
    {
      "protocol": "turn",
      "host": "turn.hoptodesk.com",
      "port": "443",
      "username": "hoptodesk",
      "password": "hoptodesk1234"
    }
  ],
  "rendezvous": {
    "host": "SERVER_IP",
    "port": "80"
  },
  "winversion": "1.0.0",
  "macversion": "1.0.0",
  "linuxversion": "1.0.0",
  "none": "none"
}

O bloco rendezvous é o seu servidor de sinalização. Use a chave rendezvousssl em vez de rendezvous quando o servidor for acessado por TLS, por exemplo um Cloudflare Worker ou uma implantação na AWS. A lista turnservers contém um ou mais relays. Defina o protocolo como turn para uma conexão simples ou turn-tls para uma conexão TLS. Deixe as chaves de versão como estão.

Há três formas de entregar este documento aos seus dispositivos. Escolha a que se encaixa na sua configuração.

Opção A: Colocar um arquivo api.json em cada dispositivo

Salve o documento como um arquivo chamado api.json na pasta de configuração do HopToDesk e reinicie o HopToDesk. O aplicativo lê o arquivo na inicialização e deixa de consultar a API da HopToDesk.

PlataformaCaminho
Windows, todos os usuários e o serviçoC:\ProgramData\HopToDesk\config\api.json
Windows, somente o usuário atual%APPDATA%\HopToDesk\config\api.json
macOS~/Library/Preferences/com.hoptodesk.HopToDesk/api.json
Linux~/.config/hoptodesk/api.json

No Linux, o serviço em segundo plano roda como root e lê o arquivo em /root, enquanto o aplicativo que você abre lê o arquivo na sua própria pasta pessoal. Coloque uma cópia nos dois lugares.

Opção B: Hospedar o arquivo em uma URL e selecioná-la no aplicativo

  1. Envie o api.json para qualquer servidor web que os seus dispositivos consigam alcançar. HTTPS é recomendado.
  2. No HopToDesk, clique no ícone de engrenagem para abrir as configurações.
  3. Em Network, clique em Choose Network.
  4. Selecione Custom Network Settings, cole a URL do seu arquivo e confirme.
  5. O HopToDesk baixa o arquivo, verifica se ele contém uma entrada rendezvous válida e uma lista turnservers, e então reconecta pelo seu servidor.

Para voltar à rede pública, abra Choose Network de novo e selecione HopToDesk Network.

Opção C: Enviar as configurações pelo painel

Se os seus dispositivos estão vinculados ao painel da HopToDesk, você pode definir a rede uma única vez para toda a conta. Um cliente personalizado gerado no painel já vem com essas configurações embutidas.

  1. Entre no painel como proprietário ou administrador e abra as configurações.
  2. Em Network Settings, selecione Custom Network.
  3. Informe o host do servidor de sinalização, a porta e WS como protocolo. Adicione um servidor TURN se você usa o seu próprio relay, ou deixe vazio para manter o relay da HopToDesk.
  4. Clique em Save Network Settings. Cada dispositivo vinculado recebe as novas configurações e as aplica sem reinstalação.

Rodar o seu próprio relay TURN (opcional)

As sessões que não conseguem conectar diretamente passam pelo relay da HopToDesk por padrão. Para manter todo o tráfego na sua própria infraestrutura, rode um servidor TURN. Qualquer servidor TURN padrão funciona, e o coturn é uma escolha comum no Linux.

  1. Instale o coturn no servidor de relay.
sudo apt install coturn
  1. Edite /etc/turnserver.conf e defina pelo menos os valores abaixo. Substitua o realm, as credenciais e o IP público pelos seus.
listening-port=443
fingerprint
lt-cred-mech
user=myuser:mypassword
realm=example.com
external-ip=PUBLIC_IP
  1. Se /etc/default/coturn tiver uma linha TURNSERVER_ENABLED, descomente-a. Depois habilite e inicie o serviço.
sudo systemctl enable --now coturn
sudo systemctl restart coturn
  1. Abra a porta de escuta para TCP e UDP, além do intervalo de relay UDP 49152 a 65535, no firewall do relay.
  2. Entregue o relay aos seus dispositivos: execute o instalador de novo com os quatro valores TURN, ou edite o bloco turnservers nas suas configurações de rede. Use turn-tls como protocolo se o seu relay termina TLS.

Gerenciar o servidor no Linux

sudo systemctl status hopsignal
sudo systemctl restart hopsignal
sudo systemctl stop hopsignal
tail -f /home/hopsignal/hs.log

Para atualizar o servidor, pare o serviço e execute o comando de instalação de novo. Ele baixa o binário atual e reescreve o serviço.

Para remover o servidor junto com o serviço e as entradas do cron:

cd /home && curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sh hsinstall.sh remove

Solução de problemas

  • O ID fica em Generating, ou o aplicativo fica tentando conectar à rede: o dispositivo não consegue alcançar o servidor de sinalização. Verifique se o serviço está rodando, se a porta 80 está aberta e se o endereço nas suas configurações de rede está correto.
  • Os dispositivos conectam na LAN, mas não de fora: o relay não está acessível. Com o relay padrão, os dispositivos precisam de acesso de saída a turn.hoptodesk.com na porta 443. Com o seu próprio relay, verifique as regras de firewall e as credenciais.
  • O aplicativo ignora o api.json: confira se o arquivo é um JSON válido sem vírgulas finais, se está na pasta certa e se você reiniciou o HopToDesk. O log do aplicativo contém a linha Loaded local api.json quando o arquivo foi carregado.
  • A porta 82 é a porta de federação para ligar vários servidores de sinalização seus. Mantenha-a fechada para a internet.
  • O servidor de sinalização não armazena dados de sessão. Se algo parecer travado, reinicie o serviço. Os dispositivos reconectam sozinhos em cerca de um minuto.

Hospedagem em terceiros

Prefere uma plataforma gerenciada? Implante sua rede HopToDesk na Cloudflare ou na AWS.

HopToDesk na Cloudflare

  1. Faça login na sua conta Cloudflare e acesse a zona de domínio que deseja usar.
  2. Crie um novo worker com o nome de arquivo index.js.
  3. Copie o código do worker para index.js, depois salve e implante o worker. Código do worker
  4. A URL do seu Cloudflare Worker está pronta. Use-a como valor de "rendezvousssl". api.json API personalizada

HopToDesk na AWS

  1. Crie uma conta AWS caso ainda não tenha uma.
  2. Assine a listagem do HopToDesk no AWS Marketplace. AWS Marketplace
  3. Depois que a Amazon provisionar o serviço, configure se necessário e inicie a instância.
  4. Sua rede HopToDesk agora está implantada na AWS. Defina a URL https como valor de "rendezvousssl". api.json API personalizada

Observação: O worker exige um plano pago da Cloudflare a partir de US$ 5 por mês, porque depende de Durable Objects. Preços do Durable Objects

AWS Marketplace e o logotipo do AWS Marketplace são marcas registradas da Amazon.com, Inc. ou de suas afiliadas.
Cloudflare, o logotipo da Cloudflare e o Cloudflare Workers são marcas comerciais e/ou marcas registradas da Cloudflare, Inc. nos Estados Unidos e em outras jurisdições.