VpnHood!

Defina os endereços IP do seu servidor

Uma chave de acesso indica aos aplicativos a qual endereço se conectar. O servidor costuma identificar isso automaticamente, mas em máquinas com múltiplos IPs você pode definir: o endereço em que ele escuta e o que vai nas chaves.

Como o servidor identifica o endereço

Por padrão, o servidor escuta em todos os endereços da máquina na porta TCP 443.

Para as chaves, ele detecta o IP pelo tráfego de saída, consultando um serviço web externo. Em servidores gerenciados, o VpnHood! MANAGER faz o mesmo via Automatic Configuration e ajusta os pontos de acesso. O recurso vem ativado por padrão.

Isso funciona na maioria dos casos. Configure manualmente se:

  • A máquina envia tráfego por um endereço diferente do usado para conexão, como um IP de saída dedicado. A detecção automática identificaria o IP de saída.
  • A máquina possui vários IPs públicos e as chaves devem usar um endereço específico.
  • A detecção automática falhar (por exemplo, se a máquina não acessar o serviço web). Nesse caso, um servidor avulso não inicia e exibe o log PublicEndPoints has not been configured properly.

Em um servidor gerenciado

No VpnHood! MANAGER, abra Servers, selecione o servidor e acesse Access Points. Cada ponto de acesso representa um endereço do servidor com suas portas.

Pontos de Acesso de um servidor no VpnHood! MANAGER, com a Configuração Automática desativada
O novo endereço, 203.0.113.10, é adicionado às chaves. O antigo, 198.51.100.20, fica fora delas, mas o servidor continua ouvindo nele para atender aplicativos com chaves antigas.

Para configurá-los manualmente, desative Automatic Configuration: com essa opção ativa, a lista não pode ser alterada. O MANAGER solicitará confirmação para reiniciar o servidor com as novas configurações.

Duas configurações definem a função de cada endereço:

  • Mode define quem recebe o endereço. PublicInToken inclui-o em todas as chaves de acesso do farm de servidores. Public mantém-no fora das chaves, fornecendo-o ao aplicativo apenas quando direcionado a este servidor. Private nunca o compartilha com os aplicativos.
  • Listen define se o servidor deve ouvir no endereço. Ative Yes apenas para endereços roteados pelo provedor para a máquina: no Linux, o servidor adiciona automaticamente à rede um endereço de escuta inexistente.

UDP Port e QUIC Port são opcionais; use -1 para desativar qualquer um deles.

Em serviços de nuvem com endereços apenas privados (como AWS, Google Cloud, Azure ou Oracle Cloud), adicione o endereço privado com Mode Private e Listen Yes, e o IP público com PublicInToken e Listen No, na mesma porta. O Automatic Configuration faz isso de forma automática.

Para conferir, abra o farm de servidores: a página lista os endereços incluídos nas chaves em Access Points.

Em um servidor avulso

O servidor lê as configurações em /opt/VpnHoodServer/storage/appsettings.json. Esse arquivo não existe em novas instalações: crie-o para substituir as configurações padrão. Duas opções em FileAccessManager definem os IPs:

  • TcpEndPoints lista os endereços e portas em que o servidor escuta.
  • PublicEndPoints lista os endereços e portas incluídos nas chaves de acesso. Use apenas endereços reais: 0.0.0.0 ou [::] aqui impedem a inicialização.

Arquivo completo: o servidor escuta em todos os endereços e inclui 203.0.113.10 nas chaves

{
  "FileAccessManager": {
    "TcpEndPoints": [ "0.0.0.0:443", "[::]:443" ],
    "PublicEndPoints": [ "203.0.113.10:443" ],
    "SslCertificatesPassword": null
  },
  "ServerConfig": {
    "LogAnonymizer": true,
    "AddListenerIpsToNetwork": "*"
  },
  "LogLevel": "Information"
}

Para escutar apenas em um endereço (como ao usar um IP de saída dedicado), adicione-o também em TcpEndPoints. Fora do Docker, o servidor adiciona esse endereço à rede da máquina automaticamente, se necessário.

Se usar também UdpEndPoints ou QuicEndPoints, defina o mesmo endereço do TCP.

Em provedores de nuvem onde a máquina tem apenas IPs privados (como AWS, Google Cloud, Azure ou Oracle Cloud), escute no IP privado ou em todos os endereços, e informe o IP público em PublicEndPoints.

Reinicie o servidor com sudo systemctl restart VpnHoodServer ou com sudo docker restart VpnHoodServer no Docker. Para verificar, gere uma chave com vhserver gen: a linha HostEndPoints: exibirá os endereços configurados.

Chaves já distribuídas

Como cada chave contém os endereços de quando foi criada, aplicativos com chaves antigas continuarão tentando o endereço anterior. Como o aplicativo atualiza a chave sozinho ao se conectar, mantenha o servidor ouvindo no endereço antigo por alguns dias após a alteração antes de removê-lo.

Em um servidor gerenciado, mantenha-o como ponto de acesso com Mode Private e Listen Yes: os aplicativos recebem a nova chave automaticamente com Push token to clients ativo. Em um servidor avulso, mantenha o endereço antigo apenas em TcpEndPoints.

Aplicativos que perderem o acesso ao endereço antigo precisarão de uma nova chave. Usando um nome de domínio com certificado emitido por uma autoridade certificadora, as chaves localizam o novo endereço via DNS sem interromper o serviço.

Próximos passos