Defina os endereços IP do seu servidor
Uma chave de acesso informa aos aplicativos a qual endereço se conectar. O servidor costuma identificar isso automaticamente, mas em uma máquina com múltiplos IPs pode ser preciso defini-lo: o endereço em que o servidor escuta e o endereço inserido nas chaves.
Como o servidor identifica seu endereço
Por padrão, o servidor escuta em todos os endereços da máquina, na porta TCP 443.
Para as chaves, ele consulta o endereço por meio de seu tráfego de saída: pergunta a um serviço web de onde vem essa conexão. 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 identifica o endereço correto na maioria dos casos. Configure manualmente quando:
- A máquina envia tráfego por um endereço diferente daquele usado para conexões, como um IP de saída dedicado. A consulta automática detectaria o IP de saída.
- A máquina possui mais de um IP público e as chaves devem usar um endereço específico.
- A consulta falha, por exemplo, se a máquina não alcançar o serviço web. Nesse caso, um servidor independente não inicia e o log exibe
PublicEndPoints has not been configured properly.
Em um servidor gerenciado
No VpnHood! MANAGER, abra Servers, selecione o servidor e localize seus Access Points. Cada ponto de acesso é um endereço do servidor com suas portas.
203.0.113.10, entra nas chaves. O antigo, 198.51.100.20, fica de fora, mas o servidor continua escutando nele para atender aplicativos com chaves antigas.
Para configurá-los manualmente, desative Automatic Configuration: enquanto estiver ativa, a lista não pode ser alterada. O MANAGER solicita confirmação porque o servidor será reiniciado 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 endereço em todas as chaves de acesso do farm de servidores. Public mantém fora das chaves, e o MANAGER só o envia ao aplicativo ao direcioná-lo para este servidor. Private nunca é enviado aos aplicativos.
- Listen define se o servidor escuta no endereço. Marque Yes apenas para endereços roteados pelo provedor até a máquina: no Linux, o servidor adiciona automaticamente à sua rede um endereço de escuta que a máquina não possui.
UDP Port e QUIC Port são opcionais; -1 desativa qualquer uma delas.
Em nuvens onde a máquina possui apenas IPs 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 automaticamente.
Para conferir, abra o farm de servidores: a página lista os endereços incluídos nas chaves em Access Points.
Em um servidor independente
O servidor lê as configurações em /opt/VpnHoodServer/storage/appsettings.json. Novas instalações não têm esse arquivo: basta criá-lo e o servidor passará a usá-lo. Duas opções em FileAccessManager definem os endereços:
TcpEndPointslista os endereços e portas em que o servidor escuta.PublicEndPointslista os endereços e portas que entram nas chaves de acesso. Use apenas endereços reais:0.0.0.0ou[::]aqui impedem o servidor de iniciar.
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 em apenas um endereço, como em um IP de saída dedicado, adicione-o também em TcpEndPoints. Fora do Docker, o servidor vincula esse endereço à rede da máquina por conta própria, caso ela ainda não o tenha.
Se usar também UdpEndPoints ou QuicEndPoints, defina para eles 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 insira o IP público em PublicEndPoints.
Em seguida, 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: mostrará os endereços incluídos.
Chaves já distribuídas
Como a chave guarda os endereços de quando foi criada, aplicativos com chaves antigas continuam tentando o endereço anterior. Como cada aplicativo atualiza a chave automaticamente ao se conectar, mantenha o servidor escutando no endereço antigo por alguns dias 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 porque Push token to clients fica ativado por padrão. Em um servidor avulso (standalone), 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, evitando interrupções em futuras alterações.