Clash: Mehrere Probleme des gefälschten IP-Modus als Gateway-Proxy

Erstellt am 12. Mai 2019  ·  17Kommentare  ·  Quelle: Dreamacro/clash

  1. Derzeit reagiert Clash nicht auf ICMP-Pakete mit gefälschten IP-Adressen, was bei einigen Anwendungen zu unerwartetem Verhalten führen kann
  2. Da gefälschte IP-Adressen verwendet werden und Clash derzeit nicht über UDP-Weiterleitungsfunktionen verfügt, versuchen einige UDP-Anwendungen, eine Verbindung zur gefälschten IP-Adresse herzustellen, und schlagen fehl (z. B. TeamSpeak).

Alle 17 Kommentare

Der TUN-Modus löst diese beiden Probleme

Ich möchte fragen, ich verwende Clash als transparenten Proxy auf dem Router und hoffe, Fake-IP zu verwenden. Kann ich den TUN-Modus verwenden? Wenn ja, kann ich einige Konfigurationsinformationen freigeben?

Ich hoffe, dass ich eine gefälschte IP-Adresse verwenden kann (im Vergleich zu Redir-Host), da dies meiner Meinung nach vernünftiger ist. Derzeit funktionieren fast alle Situationen gut. Das einzige Problem besteht darin, dass die Verbindung fehlschlägt, wenn die Erkennung des Königs der Herrlichkeit verzögert wird. Ich denke, dies liegt daran, dass udp eine gefälschte IP-Adresse verwendet. IP-Problem, also möchte ich fragen.

Vielen Dank.

TUN wurde noch nicht implementiert. Meine derzeitige Praxis besteht darin, Fakeip ohne UDP zu verwenden und bei Bedarf Redir-Host zu verwenden (dh zwei Clash-Instanzen zu öffnen).

Am Samstag, den 27. Juli 2019 um 02:43 Uhr schrieb AylinZhao [email protected] :

Ich möchte fragen, ich verwende jetzt clash als transparenten Proxy auf dem Router und hoffe, fake-ip zu verwenden. Kann ich den TUN-Modus verwenden? Wenn ja, kann ich einige Konfigurationsinformationen freigeben?

Willst du Fälschung verwenden
Der Grund für IP (im Vergleich zu Redir-Host) ist, dass es vernünftiger ist. Derzeit funktionieren fast alle Situationen gut. Das einzige Problem ist, dass die Verbindung nicht hergestellt werden kann, wenn die Erkennung des Königs der Herrlichkeit verzögert wird. Ich denke, das liegt daran, dass udp Fälschungen verwendet
IP-Problem, also möchte ich fragen.

Vielen Dank.

- -
Sie erhalten dies, weil Sie den Thread verfasst haben.

Antworte direkt auf diese E-Mail und sieh sie dir auf GitHub an
https://github.com/Dreamacro/clash/issues/179?email_source=notifications&email_token=AB6FI752JQQZPMZBH4KYEHLQBNAWRA5CNFSM4HMJDBC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJ25MVBW63LNMVXHJ25MVBW63LNMVXHJ25MVBH4KYEHLQBNAWRA5CNFSM4HMJDBC2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJ25MVBW63LNMVXHJ25MVBW63LNMVXHJK25MZBH4H4S
oder schalten Sie den Thread stumm
https://github.com/notifications/unsubscribe-auth/AB6FI7YKTOA2BX525XOUELLQBNAWRANCNFSM4HMJDBCQ
.

@BirkhoffLee Danke, diese Idee ist sehr gut. Darf ich über iptables zu verschiedenen Instanzen umleiten?Wenn ja, können Sie die Umleitungsmethode teilen

@BirkhoffLee Danke, diese Idee ist sehr gut.

Dieselbe Methode wie eine Instanz, jedoch zwei 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

Plus Fake DNS von Sukka erfunden

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

Auf diese Weise kann das Gerät, das eine gefälschte IP benötigt, den DNS in 198.19.0.1 ändern.

EDIT: Fake IP CIDR korrigiert

Danke für das Teilen. Ich verstehe, dass dies dazu dient, unterschiedliche Auflösungsstrategien zu erreichen, indem unterschiedliche DNS für unterschiedliche Geräte eingestellt werden.

Meine derzeitige Situation ist, dass unter der Bedingung, dass der Router mit einem transparenten Proxy ausgestattet ist, dasselbe Gerät (mein Mobiltelefon) und ein gewisser udp-Verkehr (der Verzögerungstest des Ehrenkönigs) darauf hoffen, korrekt verarbeitet zu werden, ich nicht weiß, ob es einen Weg gibt.

Die bevorzugte Lösung besteht darin, dass alles auf dem Router ausgeführt wird und für alle Geräte transparent ist.

Danke für das Teilen. Ich verstehe, dass dies dazu dient, unterschiedliche Auflösungsstrategien zu erreichen, indem unterschiedliche DNS für unterschiedliche Geräte eingestellt werden.

Meine derzeitige Situation ist, dass unter der Bedingung, dass der Router mit einem transparenten Proxy ausgestattet ist, dasselbe Gerät (mein Mobiltelefon) und ein gewisser udp-Verkehr (der Verzögerungstest des Ehrenkönigs) darauf hoffen, korrekt verarbeitet zu werden, ich nicht weiß, ob es einen Weg gibt.

Die bevorzugte Lösung besteht darin, dass alles auf dem Router ausgeführt wird und für alle Geräte transparent ist.

Noch nicht

Verstehe, nochmals vielen Dank

Können Sie ein solches Modell nur als Fake-IP-Proxy betrachten:

  1. Geben Sie für Domain-Namen, für die ein Proxy erforderlich ist, eine gefälschte IP-Adresse zurück
  2. Bei anderen Domainnamen wird immer die echte IP zurückgegeben
    2.1 Wenn es eine Domainnamenregel gibt, die die direkte Verbindung definiert, ist eine echte IP erforderlich
    2.2 Für das IP-Segment, für das ein Proxy erforderlich ist (Georegeln), muss zuerst auch die echte IP abgefragt, dann die Geodatenbank verglichen und dann eine Verbindung hergestellt werden
    2.3 Für die verbleibenden direkt verbundenen IP-Segmente ist auch eine echte IP erforderlich

Auf diese Weise werden immer noch keine unnötigen DNS-Abfragen für Domänennamen generiert, die als Proxy verwendet werden müssen.
Für das IP-Segment, das einen Proxy benötigt, ist die Zeit zum Herstellen einer Verbindung dieselbe.
In anderen Situationen ist eine echte IP erforderlich.

Ich weiß nicht, ob mein Verständnis des Prozesses korrekt ist. Bitte korrigieren Sie mich.

Können Sie ein solches Modell nur als Fake-IP-Proxy betrachten:

  1. Geben Sie für Domain-Namen, für die ein Proxy erforderlich ist, eine gefälschte IP-Adresse zurück
  2. Bei anderen Domainnamen wird immer die echte IP zurückgegeben
    2.1 Wenn es eine Domainnamenregel gibt, die die direkte Verbindung definiert, ist eine echte IP erforderlich
    2.2 Für das IP-Segment, für das ein Proxy erforderlich ist (Georegeln), muss zuerst auch die echte IP abgefragt, dann die Geodatenbank verglichen und dann eine Verbindung hergestellt werden
    2.3 Für die verbleibenden direkt verbundenen IP-Segmente ist auch eine echte IP erforderlich

Auf diese Weise werden immer noch keine unnötigen DNS-Abfragen für Domänennamen generiert, die als Proxy verwendet werden müssen.
Für das IP-Segment, das einen Proxy benötigt, ist die Zeit zum Herstellen einer Verbindung dieselbe.
In anderen Situationen ist eine echte IP erforderlich.

Ich weiß nicht, ob mein Verständnis des Prozesses korrekt ist. Bitte korrigieren Sie mich.

Nur die gefälschte IP-Rückgabe wird für den Domainnamen ausgeführt, der in den Regeln als Proxy verwendet werden soll, und für die echte IP?

@beyondkmp ja

@BirkhoffLee Danke, diese Idee ist sehr gut.

Dieselbe Methode wie eine Instanz, jedoch zwei 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

Plus Fake DNS von Sukka erfunden

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

Auf diese Weise kann das Gerät, das eine gefälschte IP benötigt, den DNS in 198.19.0.1 ändern.

EDIT: Fake IP CIDR korrigiert

Ihre Methode ist gut, ich möchte es versuchen, darf ich fragen,
Wie öffne ich 2 Clash-Instanzen? Einer der Proxy-Ports ist auf 9999 eingestellt?

  1. Derzeit reagiert Clash nicht auf ICMP-Pakete mit gefälschten IP-Adressen, was bei einigen Anwendungen zu unerwartetem Verhalten führen kann
  2. Da gefälschte IP-Adressen verwendet werden und Clash derzeit nicht über UDP-Weiterleitungsfunktionen verfügt, versuchen einige UDP-Anwendungen, eine Verbindung zur gefälschten IP-Adresse herzustellen, und schlagen fehl (z. B. TeamSpeak).

https://github.com/vernesong/OpenClash/releases/tag/v0.33.7-beta
Openclash Version 0.33.7 bietet eine Lösung, indem eine Domainnamenliste erstellt wird, damit bestimmte Domainnamen zu bestimmten DNS gehen können.

https://github.com/Dreamacro/clash/releases/tag/TUN Sie können die experimentelle TUN-Binärdatei ausprobieren

Dieser Fakeip-Mechanismus ist so kompliziert, dass es nicht bequemer ist, den Host wie v2ray direkt auszupacken und zu erhalten.

Im gefälschten IP-Modus kann die JMGO Cloud keine Verbindung zum Internet herstellen

Können Sie ein solches Modell nur als Fake-IP-Proxy betrachten:

  1. Geben Sie für Domain-Namen, für die ein Proxy erforderlich ist, eine gefälschte IP-Adresse zurück
  2. Bei anderen Domainnamen wird immer die echte IP zurückgegeben
    2.1 Wenn es eine Domainnamenregel gibt, die die direkte Verbindung definiert, ist eine echte IP erforderlich
    2.2 Für das IP-Segment, für das ein Proxy erforderlich ist (Georegeln), muss zuerst auch die echte IP abgefragt, dann die Geodatenbank verglichen und dann eine Verbindung hergestellt werden
    2.3 Für die verbleibenden direkt verbundenen IP-Segmente ist auch eine echte IP erforderlich

Auf diese Weise werden immer noch keine unnötigen DNS-Abfragen für Domänennamen generiert, die als Proxy verwendet werden müssen.
Für das IP-Segment, das einen Proxy benötigt, ist die Zeit zum Herstellen einer Verbindung dieselbe.
In anderen Situationen ist eine echte IP erforderlich.

Ich weiß nicht, ob mein Verständnis des Prozesses korrekt ist. Bitte korrigieren Sie mich.

Ich hoffe, dass Entwickler solche neuen Funktionen in Betracht ziehen können, aber es scheint immer noch unmöglich, dies zu tun.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen