você precisa de um dns local
adicione 2 zonas ao DNS local (o servidor de ligação também resolve o UAMLISTEN IP, Port UDP 53)
Exemplo:
HS_UAMLISTEN = 10.10.10.1
HS_DNS1 = 10.10.10.1
O Windows 10 e superior usam o link
Windows 8.1 e versões anteriores usam o link
zona: msftncsi.com
www IN A 190.46.255.40 (ou qualquer IP público)
zone: msftconnecttest.com
www IN A 13.107.4.52 (ou qualquer IP público)
Outra e melhor opção, usa RPZ (Response Policy Zones)
na zona local:
política de resposta {zone "rpz"; } qname-wait-recurse no;
zona "rpz" {
digite master;
arquivo "/etc/bind/db.rpz";
};
arquivo db.rpz:
www.msftconnecttest.com EM 13.107.4.52
www.msftncsi.com EM UM 190.46.255.40
190.46.255.40 e 13.107.4.52 são os endereços IP reais de cada URL. Não importa que você não tenha internet, já que o coovachilli antes do login sempre responde às portas TCP 80 para qualquer IP (não descartado em um Firewall ou IPTABLES)
Desta forma, o DNS resolve os hosts e o navegador redireciona a página.
Windows 10 funciona perfeitamente.
Para dispositivos Android:
connectivitycheck.gstatic.com EM UM 216.58.222.163
connectivitycheck.android.com EM UM 216.58.222.174
clients1.google.com EM UM 216.58.222.174
clients3.google.com EM UM 216.58.222.174
Eu tenho scripts que verificam o status da Internet, então, quando não há conexão, ela redireciona para uma página "internet temporariamente fora de serviço". O portal cativo também tem várias intervenções de acordo com as necessidades dos meus clientes.