Esta resposta pode não ajudá-lo porque é tão tarde, mas espero que ajude alguém que vem junto. Eu resolvi o problema que você descreveu usando nomes de domínio, um servidor DHCP local e um servidor DNS local que pode substituir nomes de domínio público.
Esse método obviamente depende de você ter um endereço DNS público que você pode usar no lugar dos endereços IP, não importa onde você vá. Existem serviços de DNS dinâmicos gratuitos que servirão para esse propósito. Você pode definir o endereço IP público em sua interface da Web.
Na sua LAN, você precisa de um servidor DNS que dê prioridade ao seu próprio registro de nomes de domínio. Nesse servidor, você precisa redefinir seu nome de domínio público para apontar para o endereço da LAN local do servidor. Além disso, o servidor DHCP precisa fornecer esse endereço do servidor DNS local ao seu dispositivo Android sempre que ele atribuir um endereço LAN ao dispositivo. Caso contrário, você obterá o registro DNS público e obterá o endereço IP público mesmo quando estiver na LAN . Depois de fazer isso, você pode se conectar à VPN usando o nome de domínio, não importa onde você esteja.
Visão ampla
Quando você estiver longe da LAN, seu dispositivo Android consultará os servidores DNS públicos fornecidos pelo seu ISP para o endereço IP da sua VPN.
myvpn.somepublicdomainname.net -> x.x.x.x (public IP)
Quando você está dentro da sua LAN, o seu dispositivo Android irá consultar o seu servidor DNS local.
myvpn.somepublicdomainname.net -> 192.168.1.2 (private IP)
Isso deve funcionar mesmo que sua VPN forneça um servidor DNS adicional para seus clientes.
Instalando um servidor DNS (dnsmasq)
A maneira mais fácil de configurar um servidor DNS da maneira que descrevi é instalar e configurar dnsmasq
. É um servidor DNS de cache muito leve (e servidor DHCP também, aliás).
Digite isto no terminal:
sudo apt-get update && sudo apt-get install -y dnsmasq
Insira a seguinte linha no final de /etc/dnsmasq.conf
:
addn-hosts=/etc/dnsmasq.hosts
Insira no arquivo /etc/dnsmasq.hosts
ou crie-o se ele não existir:
192.168.1.2 myvpn.somepublicdomainname.net.
Essa primeira parte ( 192.168.1.2
) precisa ser o endereço IP local da sua VPN, e a última parte ( myvpn.somepublicdomainname.net.
) precisa ser o nome do domínio público COM UM PERÍODO NO FINAL. Desculpe pelas tampas, mas é importante. Esse período final permite que o servidor saiba que é um domínio de nível superior.
Agora reinicie o dnsmasq:
sudo service dnsmasq restart
Neste ponto, você deve poder consultar o seu servidor DNS para o endereço IP da sua VPN e obter o endereço IP local em vez do endereço público. Teste-o usando dig para consultar o servidor DNS (assumirei que o IP do servidor DNS é 192.168.1.1
).
dig @192.168.1.1 myvpn.somepublicdomainname.net
Isso deve fornecer várias linhas de texto, mas você pode ignorar todas as que começam com uma vírgula ;
e se concentrar no que não tem:
myvpn.somepublicdomainname.net. 0 IN A 192.168.1.2
Se você vir isso, seu servidor DNS local fornecerá o endereço IP local em resposta a consultas. Esta é uma boa notícia. Se ele realmente fornecer o endereço IP público, será necessário verificar novamente sua configuração dnsmasq
. Talvez reinicie o servidor antes de ficar louco com muitas mudanças. Isso funciona um número surpreendente de vezes.
Agora, use o mesmo comando dig
e substitua myvpn.somepublicdomainname.net
por outros nomes de domínio público (como google.com
) para garantir que eles também estejam retornando corretamente. Se eles funcionarem, você pode reconfigurar com segurança seu servidor DHCP para usar seu novo servidor DNS!
Configurando um servidor DHCP
Suponho que você já tenha um servidor DHCP configurado na sua LAN. Esse é um serviço normalmente fornecido pelo seu roteador WiFi. Você precisará configurá-lo para usar seu novo servidor DNS primeiro, antes de qualquer outro servidor DNS. Esse procedimento varia, então deixarei a resposta para outra pergunta.
Possível problema
Se o seu dispositivo Android for configurado manualmente para usar servidores DNS específicos (como o popular 8.8.8.8
ou 8.8.4.4
do Google), você terá que voltar a usar servidores DNS atribuídos ao DHCP OU listar primeiro o servidor DNS da LAN e use 8.8.8.8
como fall-back. Listar manualmente seu servidor DNS da LAN primeiro certamente resultará em pesquisas de nome de domínio mais lentas sempre que você não estiver dentro da sua LAN, o que terá um efeito negativo em sua navegação na web. Há maneiras de contornar isso, mas eu suponho que você vá com os servidores DNS designados pelo DHCP e deixe a resposta desse problema para outra pergunta. Se você não sabe do que estou falando, isso provavelmente não se aplica à sua situação de qualquer maneira.