Clash: [Pergunta] A função de fallback no dns

Criado em 17 abr. 2020  ·  6Comentários  ·  Fonte: Dreamacro/clash

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 ...

question

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:

Todos 6 comentários

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á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 ...

  • nameserver o servidor em não estiver fallback 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?

Esta página foi útil?
0 / 5 - 0 avaliações