No local

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

Configure sua própria rede

Configure sua própria rede HopToDesk em um servidor Linux ou Windows de 64 bits.

O caminho mais rápido: no painel, abra Configurações, Network Settings, Set up a private network. Você recebe um link de lançamento AWS pronto ou um comando Docker, e o novo servidor se reporta ao seu painel sozinho. Abrir o painel

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.

Os dispositivos de uma rede auto-hospedada ainda podem ser vinculados ao painel para gerenciamento, e o painel pode enviar as configurações de rede a eles.

Precisa do painel também nos seus próprios servidores? Fale conosco

Antes de começar

  • Um servidor Linux de 64 bits com systemd, como Ubuntu ou Debian, 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. Leva menos de um minuto.
  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.
curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sudo 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.

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

O que o script faz

  • Baixa o servidor de sinalização para o seu processador, Intel, AMD ou ARM, para a pasta /home/hopsignal.
  • Confere o download com a lista SHA256SUMS publicada e para sem alterações quando não há correspondência.
  • Cria um serviço systemd chamado hopsignal e o inicia a cada boot.
  • Inicia o servidor com os limites de conexão recomendados e uma senha de federação aleatória, guardada em /home/hopsignal/hopsignal.env com acesso apenas para root.
  • 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. Abra um Prompt de Comando como administrador e inicie o servidor.
cd C:\hopsignal
for /f %i in ('powershell -NoProfile -Command "[guid]::NewGuid().ToString('N')"') do @(setx /M FEDPWD %i >nul & set FEDPWD=%i)
hopsignal.exe --ADDR 0.0.0.0:80 --FEDLIST fedlist.txt --FEDADDR 127.0.0.1:82 --LOGFILE hs.log

A segunda linha guarda uma senha de federação aleatória como configuração do sistema do Windows, então ela nunca aparece na linha de comando do servidor.

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 --FEDLIST C:\hopsignal\fedlist.txt --FEDADDR 127.0.0.1:82 --LOGFILE C:\hopsignal\hs.log"
schtasks /Run /TN HopSignal

Passo 1 com Docker: Rodar o servidor de sinalização em um contêiner

A imagem hoptodesk/hopsignal roda o mesmo servidor de sinalização em hosts Intel, AMD e ARM. Inicie-a com os limites recomendados:

docker run -d --name hopsignal --restart unless-stopped -p 80:80 \
  -e HS_MAX_MESSAGE_KB=64 -e HS_QUEUE_LIMIT=256 -e HS_MAX_CONNS=20000 \
  -e HS_CONNS_PER_IP=100 -e HS_LOOKUPS_PER_IP=20 \
  -e HS_IDLE_TIMEOUT=300 -e HS_UPGRADE_TIMEOUT=10 \
  hoptodesk/hopsignal

Cada valor HS_ ativa um limite: tamanho da mensagem em KB, mensagens na fila por conexão, conexões abertas, novas conexões e consultas por endereço a cada segundo, segundos de inatividade e segundos para o handshake. Se omitir um valor, esse limite fica desativado.

Para vincular o contêiner à sua conta do painel automaticamente, use o comando Docker de Set up a private network no painel. Ele adiciona HS_SETUP_TOKEN e HS_DASHBOARD_URL, e o servidor reporta o seu endereço uma vez, no primeiro início.

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 "

Com Docker, verifique o contêiner e seu log:

docker ps --filter name=hopsignal
docker logs hopsignal

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. 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.

Escreva cada número de porta entre aspas, como no exemplo acima. O aplicativo ignora uma porta escrita como um número simples.

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ço (requer permissões de administrador)C:\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, coloque uma segunda cópia em /root/.config/hoptodesk. O aplicativo usa essa cópia na tela de login, antes que um usuário entre.

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 (Default).

No Android e no iOS, abra Configurações, desative Use HopToDesk Network na seção Rede e depois digite a URL do seu arquivo. Celulares gerenciados por um EMM podem receber a mesma URL pela configuração gerenciada custom_api_url.

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.

Servidor novo: no painel, abra Configurações, Network Settings, Set up a private network. Escolha In my AWS account ou On my own server. O servidor reporta o seu endereço ao iniciar, e cada dispositivo vinculado recebe as configurações. Nada para digitar.

Um servidor que você já executa: insira as configurações dele manualmente.

  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:

curl -o hsinstall.sh -sL https://www.hoptodesk.com/hs/hsinstall && sudo 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. Nas configurações do worker, adicione um binding de Durable Object chamado group para a classe SessionGroup.
  5. A URL do seu Cloudflare Worker está pronta. Use-a como valor de "rendezvousssl". api.json API personalizada

HopToDesk na AWS

  1. Assine o HopToDesk Private Network no AWS Marketplace. A oferta é gratuita; a AWS cobra apenas pelo servidor. AWS Marketplace
  2. Conectado ao painel? Abra Configurações, Network Settings, Set up a private network e escolha In my AWS account. O link de lançamento já vem com as configurações preenchidas, o servidor se reporta ao seu painel sozinho, e você pode pular os próximos passos.
  3. Escolha Launch with CloudFormation. Um único formulário cria o servidor, o seu endereço fixo e as suas regras de firewall na região que escolher.
  4. Quando a stack estiver concluída, abra o separador Outputs. Ele mostra o api.json para as suas aplicações.
  5. Salve esse api.json em cada computador ou envie-o a todos os dispositivos em Configurações de rede no painel. api.json

Observação: O worker usa Durable Objects. O custo depende do seu plano da Cloudflare e do uso. 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.

Planejando uma implantação auto-hospedada? Solicitar orçamento