Primeiro, ao fazer o roteamento, geralmente não é necessário usar também iptables
, a menos que você queira fazer algo complicado por algum motivo.
Você não disse se está dividindo o tráfego com base em uma lista de endereços completos ou se está dividindo por prefixos etc. Então, edite sua pergunta e forneça essas informações.
Se você dividir com base em endereços completos, a solução mais simples é apenas adicionar nomes para esses endereços a /etc/hosts
. A pesquisa nesse arquivo tem precedência sobre a pesquisa de DNS (a menos que seja configurado de outra forma em nssswitch.conf
). Naturalmente, os endereços IP neste arquivo e no arquivo de roteamento precisam ser atualizados se forem alterados.
Outra opção é usar /etc/resolv.conf
. De man 5 resovler
:
nameserver Name server IP address
Internet address of a name server that the resolver should query [...] Up to MAXNS (currently 3, see ) name servers may be listed, one per keyword. If there are multiple servers, the resolver library queries them in the order listed.
No entanto, esse arquivo geralmente é gerado automaticamente por várias outras partes do sistema, e os detalhes diferem da distribuição do Linux para a distribuição do Linux. Portanto, você deve descobrir quais scripts são executados para seu cliente DHCP e / ou OpenVPN para atualizar esse arquivo com as informações de servidor de nomes recebidas e, em seguida, modificar esses scripts para que as entradas nameserver
acabem em resolv.conf
na ordem correta. / p>
Nesse formulário, ele só funcionará se o servidor DNS chinês não retornar um endereço IP para domínios bloqueados. Se o servidor DNS chinês se comportar de maneira diferente, por exemplo Se você tiver que testar o IP retornado para descobrir se ele está bloqueado ou não, ou se você precisar de diferentes tipos de testes, ele ficará ainda mais difícil: você terá que usar algum tipo de proxy DNS local que faça esses testes, e provavelmente modificar o código de um software proxy existente.
Eu diria que outras pessoas na China que já usaram VPNs já enfrentaram o mesmo problema, então possivelmente há também algumas soluções prontas por aí, mas a comunidade internacional provavelmente não sabe sobre isso.