Por exemplo, configure assim na configuração
dns:
enable: true
listen: :53
enhanced-mode: redir-host
nameserver:
- 223.5.5.5
fallback:
- 8.8.8.8
Minha pergunta é o que o fallback faz?
Eu li este artigo: O impacto da poluição do DNS no Clash (para Windows)
O artigo dizia que as solicitações simultâneas são feitas do DNS no servidor de nomes e substituto, e o primeiro resultado da resposta no servidor de nomes é selecionado como referência. Use GEOIP para determinar a área deste IP. Se pertencer ao país (CN) ou a um endereço reservado, responderá diretamente ao cliente. Nesse caso, o resultado do fallback é respondido ao cliente
Mas o artigo também disse que quando se julga que o IP poluído requer um proxy, o Clash ainda pode funcionar normalmente neste momento, porque o Clash não envia esse endereço IP para o servidor proxy, mas envia diretamente o host para o servidor proxy. A resolução do DNS é realizada no servidor proxy, para que a solicitação possa obter um endereço IP mais adequado e fazer melhor uso dos recursos do CDN.
Estou intrigado porque, uma vez que o servidor de nomes pode determinar diretamente o IP poluído, o IP poluído enviará diretamente o host para o servidor proxy e o servidor proxy resolverá o IP correto e compatível com CDN. Não há necessidade de fallback?
Eu sei que devo estar pensando algo errado, estou aqui para pedir um conselho, não ria de mim ...
O dns embutido é para resolver o problema de resolução de dns do proxy transparente, não é necessário abri-lo para uso normal
O IP poluído não pode ser julgado, mas quando o GeoIP retornado pelo primeiro DNS não for CN, o valor do DNS substituto será considerado. Como o GeoIP poluído está todo no exterior, o conflito pode evitar a poluição desse nível. Claro, a premissa é Defina o DNS upstream do grupo de fallback (como DNS livre de poluição [extinção básica exposta na parede], por meio de portas não padrão, DNS sobre TLS / HTTPS).
Você pode consultar: https://github.com/Dreamacro/clash/issues/621#issuecomment -614702773
Quanto ao wiki cfw, mesmo que esteja contaminado, significa que se a regra de correspondência de conexão atual resultar em um proxy, o clash mudará a conexão iniciada pelo IP para seu nome de host original e a enviará para o nó remoto, portanto, até mesmo o cliente / O navegador obtém o IP poluído e não afetará a conexão final, porque o IP poluído foi descartado e reaplicado com o nome do host original quando enviado ao proxy remoto via clash, que é redirecionado A origem do nome do modo de host.
Consulte também:
nameserver
o servidor em não estiver fallback
não é necessárioProxy
, elas simplesmente não usam o IP resolvido e enviam o nome de domínio diretamente para o servidor proxy, que resolve o problema de CDN.DIRECT
, ela iniciará diretamente uma conexão com o IP resolvido.
.
Meu entendimento deve estar correto, certo? @Dreamacro
ps: A documentação do Clash realmente não é muito detalhada, verifique a informação em todos os lugares ...
nameserver
o servidor em não estiverfallback
não é necessário- Se as regras corresponderem a
Proxy
, elas simplesmente não usam o IP resolvido e enviam o nome de domínio diretamente para o servidor proxy, que resolve o problema de CDN.- E se a regra corresponder a
DIRECT
, ela iniciará diretamente uma conexão com o IP resolvido.
- Ao usar o proxy Socks5 / Http (s), o sistema não precisa saber o endereço IP de destino para se conectar, simplesmente envie a solicitação de nome de domínio para o servidor proxy.
- Ao usar um proxy transparente, por ser uma implementação TCP / IP padrão, o pacote que o Clash obtém não contém informações de nome de domínio, então Clash deve usar a função DNS embutida para executar um mapeamento de nome de domínio IP <->, para que o Clash possa enviar o sistema O DST-IP no pacote TCP / UDP é restaurado para o nome de domínio e a regra é correspondida
.
Meu entendimento deve estar correto, certo? @Dreamacro
ps: A documentação do Clash realmente não é muito detalhada, verifique a informação em todos os lugares ...
Com licença, se não for usado como proxy transparente, mas apenas como cliente, o uso do redirecion-host terá uma resolução a mais do que o modo ip falso (assumindo que haja um nome de domínio proxy)?
@ akw5454521
O modo fake-ip não envolve realmente a resolução de dns. Depois que o clash recebe a solicitação de dns, ele envia diretamente o IP reservado para o usuário e estabelece uma conexão diretamente com o servidor remoto por meio de socks5 por meio do nome de domínio na solicitação de dns, e então volta para o ip reservado O usuário estabelece a conexão real
O modo de host de redirecionamento precisa ser analisado, e o resultado analisado é significativo apenas quando corresponde à regra de conexão direta (estabelece uma conexão direta). Não importa se o resultado analisado do nome de domínio que precisa ser proxy é falso, porque esta etapa é igual ao IP falso acima O objetivo a ser alcançado é o mesmo, bastando que o usuário e choque estabeleçam a correspondência entre o nome de domínio e o IP, a solicitação ao servidor remoto é o nome do domínio em vez do IP resolvido.
Quanto ao problema de velocidade, fake-ip o maior tempo possível
Gostaria de perguntar, se no modo redirecion-host, se o GeoIP determinar que não é CN, ele fará fallback, e se atender às condições do proxy ao mesmo tempo, então o host será enviado diretamente para a remota para análise, ou seja, se o IP recebido pelo cliente Não importa se for verdade (porque se for julgado que o agente deve ser resolvido da extremidade remota), então eu gostaria de perguntar qual é o significado do grupo substituto, é melhor usar a poluição no servidor de nomes diretamente, de qualquer maneira, ela deve ser resolvida da extremidade remota.
(Obs: Pessoalmente, acho que somente quando um nome de domínio está contaminado e é determinado que não é um proxy, o fallback realmente funcionará)
Além disso, pode haver um atraso muito grande ao solicitar o dns no fallback (como tls: //dns.google etc. ), então o cliente espera muito tempo, certo?
Comentários muito úteis
O IP poluído não pode ser julgado, mas quando o GeoIP retornado pelo primeiro DNS não for CN, o valor do DNS substituto será considerado. Como o GeoIP poluído está todo no exterior, o conflito pode evitar a poluição desse nível. Claro, a premissa é Defina o DNS upstream do grupo de fallback (como DNS livre de poluição [extinção básica exposta na parede], por meio de portas não padrão, DNS sobre TLS / HTTPS).
Você pode consultar: https://github.com/Dreamacro/clash/issues/621#issuecomment -614702773
Quanto ao wiki cfw, mesmo que esteja contaminado, significa que se a regra de correspondência de conexão atual resultar em um proxy, o clash mudará a conexão iniciada pelo IP para seu nome de host original e a enviará para o nó remoto, portanto, até mesmo o cliente / O navegador obtém o IP poluído e não afetará a conexão final, porque o IP poluído foi descartado e reaplicado com o nome do host original quando enviado ao proxy remoto via clash, que é redirecionado A origem do nome do modo de host.
Consulte também: