Clash: Varios problemas del modo IP falso como proxy de puerta de enlace

Creado en 12 may. 2019  ·  17Comentarios  ·  Fuente: Dreamacro/clash

  1. Actualmente, Clash no responde a los paquetes ICMP de ip falsa, lo que puede causar un comportamiento inesperado de algunas aplicaciones.
  2. Debido a que se usa IP falsa y Clash no tiene actualmente capacidades de reenvío UDP, algunas aplicaciones UDP intentarán conectarse a la IP falsa y fallarán (como TeamSpeak)

Todos 17 comentarios

El modo TUN resolverá estos dos problemas

Me gustaría preguntar, ahora uso Choque como un proxy transparente en el enrutador, y espero usar IP falsa, ¿puedo usar el modo TUN? Si es así, ¿puedo compartir alguna información de configuración?

Espero usar ip falsa (en comparación con redir-host) porque creo que es más razonable. En la actualidad, casi todas las situaciones funcionan bien. El único problema es que la conexión falla cuando la detección de King Glory se retrasa. Supongo que es porque udp usa fake. problema de ip, así que me gustaría preguntar.

Muchas gracias.

TUN aún no se ha implementado. Mi práctica actual es tomar fakeip sin UDP y tomar redir-host (es decir, abrir dos instancias de Clash)

El sábado, 27 de julio de 2019 a las 2:43 a.m., AylinZhao [email protected] escribió:

Me gustaría preguntar, ahora uso Choque como un proxy transparente en el enrutador, y espero usar IP falsa, ¿puedo usar el modo TUN? Si es así, ¿puedo compartir alguna información de configuración?

Quiere usar falso
La razón de ip (en comparación con redir-host) es que es más razonable. En la actualidad, casi todas las situaciones funcionan bien. El único problema es que la conexión falla cuando la detección del rey de la gloria se retrasa. Supongo que es porque udp usa fake
problema de ip, así que me gustaría preguntar.

Muchas gracias.

-
Recibes esto porque eres el autor del hilo.

Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/Dreamacro/clash/issues/179?email_source=notifications&email_token=AB6FI752JQQZPMZBH4KYEHLQBNAWRA5CNFSM4HMJDBC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJ25MVBW63LNMVXHJ25MVBW63LNMVXHJK25MZBH4KYEHLQBNAWRA5CNFSM4HMJDBC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJ25MVBW63LNMVXHJ25MVBW63LNMVXHJ25MVBH4KYEHLQBNAWRA5CNFSM5
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AB6FI7YKTOA2BX525XOUELLQBNAWRANCNFSM4HMJDBCQ
.

@BirkhoffLee Gracias, esta idea es muy buena, ¿puedo desviarme a diferentes instancias a través de iptables?Si es así, ¿puede compartir el método de desvío

@BirkhoffLee Gracias, esta idea es muy buena, ¿se desvía a diferentes instancias a través de iptables?Si es así, ¿puede compartir el método de desvío

El mismo método que una instancia, pero dos iptables DNAT:

# 到 fake ip range 的 tcp 全部轉發到 clash fakeip
iptables -t nat -A clash_lan -p tcp -d 198.18.0.0/16 -j DNAT --to-destination 10.0.1.6:23456

# 其他 tcp 80/443 全部轉發到 clash redirhost
iptables -t nat -A clash_lan \! -d 198.18.0.0/16 -p tcp --dport 80 -j DNAT --to-destination 10.0.1.6:9999
iptables -t nat -A clash_lan \! -d 198.18.0.0/16 -p tcp --dport 443 -j DNAT --to-destination 10.0.1.6:9999

iptables -t nat -A PREROUTING -p tcp -j clash_lan

Además de DNS falso inventado por Sukka

iptables -t nat -N clash_fakedns
iptables -t nat -A clash_fakedns -p udp --dport 53 -j DNAT --to-destination 10.0.1.6:23453
iptables -t nat -A clash_fakedns -p tcp --dport 53 -j DNAT --to-destination 10.0.1.6:23453

iptables -t nat -A PREROUTING -p udp -d 198.19.0.0/24 -j clash_fakedns
iptables -t nat -A PREROUTING -p tcp -d 198.19.0.0/24 -j clash_fakedns

De esta forma, el dispositivo que necesita IP falsa puede cambiar el DNS a 198.19.0.1.

EDITAR: CIDR IP falso corregido

Gracias por compartir. Entiendo que esto es para implementar diferentes estrategias de resolución mediante la configuración de diferentes dns para diferentes dispositivos.

Mi situación actual es que bajo la condición de que el enrutador esté configurado con un proxy transparente, algo de tráfico udp (la prueba de retraso de King Honor) del mismo dispositivo (mi teléfono móvil) espera ser manejado correctamente, no sé si hay alguna forma.

La solución preferida es que todo se haga en el enrutador y sea transparente para todos los dispositivos.

Gracias por compartir. Entiendo que esto es para implementar diferentes estrategias de resolución mediante la configuración de diferentes dns para diferentes dispositivos.

Mi situación actual es que bajo la condición de que el enrutador esté configurado con un proxy transparente, algo de tráfico udp (la prueba de retraso de King Honor) del mismo dispositivo (mi teléfono móvil) espera ser manejado correctamente, no sé si hay alguna forma.

La solución preferida es que todo se haga en el enrutador y sea transparente para todos los dispositivos.

Aún no

Entiende, gracias de nuevo

¿Puede considerar un modelo como falso-ip-proxy-solamente:

  1. Para los nombres de dominio que requieren proxy, devuelva ip falsa
  2. Para otros nombres de dominio, siempre se devolverá la IP real
    2.1 Si hay una regla de nombre de dominio que define la conexión directa, se requiere una IP real
    2.2 Para el segmento de IP que necesita proxy (reglas geográficas), también debe consultar la IP real primero y luego comparar la base de datos geográfica y luego iniciar una conexión.
    2.3 Para los segmentos IP restantes conectados directamente, también se requiere IP real

De esta forma, aún no se generan consultas dns innecesarias para los nombres de dominio que requieren proxy.
Para el segmento de IP que necesita un proxy, el tiempo para iniciar una conexión es el mismo.
Para otras situaciones, se requiere una IP real.

No sé si mi comprensión del proceso es correcta, corrígeme.

¿Puede considerar un modelo como falso-ip-proxy-solamente:

  1. Para los nombres de dominio que requieren proxy, devuelva ip falsa
  2. Para otros nombres de dominio, siempre se devolverá la IP real
    2.1 Si hay una regla de nombre de dominio que define la conexión directa, se requiere una IP real
    2.2 Para el segmento de IP que necesita proxy (reglas geográficas), también debe consultar la IP real primero y luego comparar la base de datos geográfica y luego iniciar una conexión.
    2.3 Para los segmentos IP restantes conectados directamente, también se requiere IP real

De esta forma, aún no se generan consultas dns innecesarias para los nombres de dominio que requieren proxy.
Para el segmento de IP que necesita un proxy, el tiempo para iniciar una conexión es el mismo.
Para otras situaciones, se requiere una IP real.

No sé si mi comprensión del proceso es correcta, corrígeme.

¿Solo se realiza la devolución de ip falsa en el nombre de dominio que se va a usar como proxy en las reglas, y el resto devuelve ip real?

@beyondkmp

@BirkhoffLee Gracias, esta idea es muy buena, ¿se desvía a diferentes instancias a través de iptables?Si es así, ¿puede compartir el método de desvío

El mismo método que una instancia, pero dos iptables DNAT:

# 到 fake ip range 的 tcp 全部轉發到 clash fakeip
iptables -t nat -A clash_lan -p tcp -d 198.18.0.0/16 -j DNAT --to-destination 10.0.1.6:23456

# 其他 tcp 80/443 全部轉發到 clash redirhost
iptables -t nat -A clash_lan \! -d 198.18.0.0/16 -p tcp --dport 80 -j DNAT --to-destination 10.0.1.6:9999
iptables -t nat -A clash_lan \! -d 198.18.0.0/16 -p tcp --dport 443 -j DNAT --to-destination 10.0.1.6:9999

iptables -t nat -A PREROUTING -p tcp -j clash_lan

Además de DNS falso inventado por Sukka

iptables -t nat -N clash_fakedns
iptables -t nat -A clash_fakedns -p udp --dport 53 -j DNAT --to-destination 10.0.1.6:23453
iptables -t nat -A clash_fakedns -p tcp --dport 53 -j DNAT --to-destination 10.0.1.6:23453

iptables -t nat -A PREROUTING -p udp -d 198.19.0.0/24 -j clash_fakedns
iptables -t nat -A PREROUTING -p tcp -d 198.19.0.0/24 -j clash_fakedns

De esta forma, el dispositivo que necesita IP falsa puede cambiar el DNS a 198.19.0.1.

EDITAR: CIDR IP falso corregido

Tu método es bueno, quiero probarlo, ¿puedo preguntar?
¿Cómo abrir 2 instancias de Clash? ¿Uno de los puertos proxy está configurado en 9999?

  1. Actualmente, Clash no responde a los paquetes ICMP de ip falsa, lo que puede causar un comportamiento inesperado de algunas aplicaciones.
  2. Debido a que se usa IP falsa y Clash no tiene actualmente capacidades de reenvío UDP, algunas aplicaciones UDP intentarán conectarse a la IP falsa y fallarán (como TeamSpeak)

https://github.com/vernesong/OpenClash/releases/tag/v0.33.7-beta
La versión 0.33.7 de Openclash proporciona una solución al establecer una lista de nombres de dominio para permitir que nombres de dominio específicos utilicen dns específicos.

https://github.com/Dreamacro/clash/releases/tag/TUN Puedes probar el binario experimental TUN

Este mecanismo de fakeip es tan complicado que no es más conveniente desempaquetar y obtener directamente el host como v2ray

En el modo de IP falsa, JMGO Cloud no puede conectarse a Internet

¿Puede considerar un modelo como falso-ip-proxy-solamente:

  1. Para los nombres de dominio que requieren proxy, devuelva ip falsa
  2. Para otros nombres de dominio, siempre se devolverá la IP real
    2.1 Si hay una regla de nombre de dominio que define la conexión directa, se requiere una IP real
    2.2 Para el segmento de IP que necesita proxy (reglas geográficas), también debe consultar la IP real primero y luego comparar la base de datos geográfica y luego iniciar una conexión.
    2.3 Para los segmentos IP restantes conectados directamente, también se requiere IP real

De esta forma, aún no se generan consultas dns innecesarias para los nombres de dominio que requieren proxy.
Para el segmento de IP que necesita un proxy, el tiempo para iniciar una conexión es el mismo.
Para otras situaciones, se requiere una IP real.

No sé si mi comprensión del proceso es correcta, corrígeme.

Espero que los desarrolladores puedan considerar estas nuevas características, pero todavía parece imposible hacerlo.

¿Fue útil esta página
0 / 5 - 0 calificaciones