Codex verbindet sich ständig neu? Prüfen Sie DNS und Clash-Routing

Zuletzt aktualisiert: 2026-09-10

Codex-Fehler wie Reconnecting..., stream disconnected before completion und error sending request können DNS-Störungen oder fehlerhaftes Clash-Routing betreffen. Dieser Leitfaden erklärt, wie Sie diese Möglichkeit untersuchen, eine gezielte Clash Verge Rev-Verbesserung anwenden und das Ergebnis überprüfen.

Was Community-Berichte tatsächlich zeigen

Reddit-Nutzer haben unterbrochene Aufgaben gemeldet, die auf chatgpt.com/backend-api/codex/responses abzielen, wiederholte Neuverbindungsversuche und Fehler im Antwortkörper. Diese Berichte belegen Symptome, keine DNS-Diagnose. Unterbrochene Anfrage, Reconnection-Schleife

Eine separate Diskussion beschreibt Fehler während der Remote-Kontextkompaktierung. Ein Kommentator schlägt vor, den Proxy zu untersuchen, aber die Diskussion stellt keine verifizierte Ursache fest. Diskussion zur Kompaktierung

Berichte auf X zeigen ähnliche Fragen: Ein Beitrag vom 9. September beschreibt anhaltende Stream-Fehler, während ein Beitrag vom 6. September ein SSE-Idle-Timeout während der Remote-Kompaktierung meldet. Keiner liefert einen DNS-Vergleich. Das sind nützliche Beispiele für Nutzerprobleme, aber sie belegen keine gemeinsame Ursache. X-Stream-Bericht, X-Kompaktierungsbericht

Symptom Was zu untersuchen ist
Sofortiges Timeout mit einem Resolver-Fehler DNS, Erreichbarkeit des Knotens und ob der Traffic in Clash eintritt
ChatGPT funktioniert im Browser, aber Codex schlägt fehl Unterschiede bei Proxy, DNS, Zertifikaten und Egress
Ausgabe beginnt, dann trennt sich der Stream Langlebige Verbindungen, Netzwerkänderungen und Dienstfehler
Nur lange Gespräche oder Kompaktierung schlagen fehl Mit einer kleinen neuen Aufgabe vergleichen; Sitzungs- und Serverfehler untersuchen
HTTP 401, 403, 429 oder 5xx Herkunft und Inhalt der Antwort auf Authentifizierung, Richtlinien, Limits oder Dienstfehler prüfen

Prüfen Sie den OpenAI-Dienststatus und notieren Sie die Uhrzeit sowie die Client-Version. Bei festhängenden Chats empfiehlt OpenAI außerdem, ausstehende Genehmigungen zu prüfen und einen kleineren, fokussierten neuen Chat zu versuchen. Desktop- und CLI-Versionen können sich unterscheiden. Offizielle Fehlerbehebung

Ein lokaler Fall: Eine unerwartete DNS-Antwort löste DIRECT aus

In einer aufgezeichneten macOS-Untersuchung mit Clash Verge Rev und Mihomo waren Proxy-Knoten erreichbar, aber chatgpt.com stimmte mit einer GeoIP/CN-Regel überein und versuchte eine direkte Verbindung, die in ein Timeout lief. Ein Vergleich mit verschlüsseltem DNS, das über den Proxy erreicht wurde, zeigte auf dem lokalen Auflösungspfad eine anomale Antwort.

Request to chatgpt.com
  → anomalous DNS answer
  → no earlier matching OpenAI domain rule
  → GeoIP selects DIRECT
  → connection times out and Codex retries

Es gibt zwei Konfigurationsprobleme, die angegangen werden müssen: den Auflösungspfad und die Routing-Entscheidung. Dieser aufgezeichnete Fall ist kein Benchmark und kein Beweis dafür, dass andere Codex-Fehler dieselbe Ursache haben. Eine anomale Antwort allein kann auch nicht den verantwortlichen Vermittler identifizieren oder speziell DNS-Cache-Poisoning belegen.

Diagnostizieren Sie vor dem Ändern der Konfiguration

Das Verbindungsprotokoll prüfen

Suchen Sie nach dem tatsächlichen Hostnamen im Fehler, einschließlich chatgpt.com oder openai.com. Notieren Sie die zugeordnete Regel, die Verbindungskette und den Fehler zum Zeitpunkt des Fehlers. Eine Verbindung, die einen Proxy verwenden sollte, aber DIRECT auswählt, rechtfertigt eine Überprüfung der Regelreihenfolge. Mihomo bewertet Routing-Regeln von oben nach unten. Routing-Dokumentation

Wenn keine passende Verbindung erscheint, stellen Sie zuerst fest, ob dieser Client Clash verwendet. Ein Erfolg im Browser belegt nicht den Pfad, den ein separater Prozess nutzt.

Auflösungspfade vergleichen

Untersuchen Sie unter macOS den System-Resolver und seine aktuelle Antwort:

scutil --dns
dscacheutil -q host -a name chatgpt.com

Für einen verschlüsselten Vergleich ersetzen Sie 7890 durch Ihren Clash-HTTP-/Mixed-Port:

curl --noproxy '' --proxy http://127.0.0.1:7890 \
  --connect-timeout 10 --max-time 20 \
  -H 'accept: application/dns-json' \
  'https://1.1.1.1/dns-query?name=chatgpt.com&type=A'

Die Anfrage verwendet Cloudflares DNS-JSON-Schnittstelle. Prüfen Sie das Verbindungsfenster: Ein expliziter lokaler Proxy garantiert den Eintritt in Clash, aber die Clash-Regeln bestimmen weiterhin den endgültigen Egress.

Unterschiedliche IP-Adressen allein sind kein Beweis für Störungen. CDN-Auswahl, Caching, Adressfamilien und Fake-IP können Unterschiede erklären. Eine synthetische Adresse aus dem Fake-IP-Bereich von Clash ist nicht von Natur aus verdächtig. Korrelation Sie eine anomale Antwort mit dem falschen Pfad und dem Fehler und vergleichen Sie dann mit einem anderen verifizierten Netzwerkpfad. Bei aktiviertem TUN kann sogar dig @resolver abgefangen werden; es ist nicht automatisch ein unabhängiger Upstream-Test.

Wenden Sie eine gezielte Clash Verge Rev-Verbesserung an

Diese Vorlage erfordert Clash Verge Rev mit Mihomo, ein vorhandenes Abonnement und einen funktionierenden Proxy-Knoten. Es handelt sich um ein Abonnement-Skript, nicht um ein vollständiges eigenständiges Profil. Sichern Sie zuerst die aktuelle Konfiguration. Wenn Sie bereits ein Skript verwenden, integrieren Sie die Änderung in die vorhandene main(config)-Funktion. Überprüfen Sie die endgültige Laufzeitkonfiguration nach allen Verbesserungs-Schritten. Clash Verge Rev Script-Dokumentation

Setzen Sie CODEX_PROXY_GROUP auf eine vorhandene Gruppe und wählen Sie in dieser Gruppe einen funktionierenden Proxy-Knoten aus. Setzen Sie NODE_DNS auf einen DoH-Resolver, der funktioniert, bevor sich der Proxy verbindet, und Knotennamen korrekt auflöst. Das AliDNS-Beispiel ist für die Validierung in einem Festlandchina-Netzwerk gedacht; ersetzen Sie es, wenn es dafür nicht geeignet ist. Es wird nicht verwendet, um die unten genannten AI-Domains aufzulösen.

// Clash Verge Rev subscription Script. Use with an existing Mihomo profile.
// Replace this with the exact name of a working proxy group in that profile.
const CODEX_PROXY_GROUP = "REPLACE_WITH_EXISTING_PROXY_GROUP";

// Example bootstrap resolver for a mainland-China network. Verify reachability
// and node-hostname answers on your network, or replace with your trusted DoH.
// It must work BEFORE the proxy is established. It does not resolve AI domains.
const NODE_DNS = ["https://223.5.5.5/dns-query#DIRECT"];

function main(config) {
  const groups = config["proxy-groups"] || [];
  if (!groups.some((group) => group.name === CODEX_PROXY_GROUP)) {
    throw new Error("Set CODEX_PROXY_GROUP to an existing working proxy group.");
  }
  if (/[#&,\r\n]/.test(CODEX_PROXY_GROUP)) {
    throw new Error("Use a proxy group name without #, &, commas or newlines.");
  }

  const domains = ["chatgpt.com", "openai.com", "oaistatic.com", "oaiusercontent.com"];
  const doh = [
    "https://1.1.1.1/dns-query#" + CODEX_PROXY_GROUP,
    "https://8.8.8.8/dns-query#" + CODEX_PROXY_GROUP,
  ];
  const dns = config.dns || {};
  const policy = Object.assign({}, dns["nameserver-policy"] || {});
  domains.forEach((domain) => { policy["+." + domain] = doh.slice(); });
  dns.enable = true;
  dns["nameserver-policy"] = policy;
  dns["proxy-server-nameserver"] = NODE_DNS.slice();
  if (!Array.isArray(dns.nameserver) || dns.nameserver.length === 0) {
    dns.nameserver = NODE_DNS.slice();
  }
  config.dns = dns;

  const oldRules = Array.isArray(config.rules) ? config.rules : [];
  const aiRules = domains.map((domain) =>
    "DOMAIN-SUFFIX," + domain + "," + CODEX_PROXY_GROUP
  );
  config.rules = aiRules.concat(oldRules.filter((rule) => !aiRules.includes(rule)));
  return config;
}

Das Script fügt eine domänenspezifische DNS-Richtlinie hinzu und stellt Proxy-Regeln voran, während andere Regeln und Domain-Richtlinien erhalten bleiben. Es ändert die Auflösung von Knotennamen. Die vier Domain-Suffixe sind ein Ausgangsbereich, keine vollständige Liste jeder Codex-Funktion, jedes benutzerdefinierten Providers, jedes MCP-Dienstes oder jedes Task-Downloads.

Mihomo unterstützt eine domänenspezifische nameserver-policy und ein explizites Proxy-Suffix auf einer DNS-Serveradresse. Die Knotenauflösung benötigt einen unabhängigen Pfad, um eine zirkuläre Abhängigkeit zu vermeiden. DNS configuration reference

Das gezielte Script behält vorhandene Fallback-Einstellungen bei. Prüfen Sie umfassendere DNS-Abhängigkeiten separat, bevor Sie sie ersetzen. Achten Sie außerdem auf veraltete Hosts-Zuordnungen oder kollidierende, spezifischere Richtlinien.

TUN separat prüfen

Für Prozesse, die den Systemproxy nicht verwenden, aktivieren Sie TUN in Clash Verge Rev und verifizieren Sie, dass es ausgeführt wird. Fügen Sie die folgenden Felder in Ihr bestehendes TUN-Objekt ein und behalten Sie seine übrigen Einstellungen bei:

tun:
  enable: true
  auto-route: true
  auto-detect-interface: true
  dns-hijack:
    - any:53
    - tcp://any:53

Diese decken UDP- und TCP-DNS auf Port 53 ab. Mihomo dokumentiert Einschränkungen für LAN-gerichtetes DNS unter macOS und Windows; von der Anwendung verwaltetes verschlüsseltes DNS liegt ebenfalls außerhalb dieser Port-53-Regeln. Verifizieren Sie Resolver- und Interface-Verhalten, statt anzunehmen, dass der Schalter jede Anfrage abdeckt. TUN reference

Konfiguration, Routing und Codex separat verifizieren

Prüfen Sie zuerst die finale Konfiguration auf Fehler, Gruppenreferenzen und die Reihenfolge der Regeln. Wenn die Mihomo-CLI verfügbar ist, prüft mihomo -t -f <final-config-path>, ob die Konfiguration geparst werden kann. Das beweist keine Konnektivität.

Untersuchen Sie als Nächstes das tatsächliche Verbindungsrouting und führen Sie einen HTTPS-Probeaufruf mit Zertifikatsprüfung über Ihren echten lokalen Port aus:

curl --noproxy '' --proxy http://127.0.0.1:7890 \
  --connect-timeout 10 --max-time 20 \
  -o /dev/null -sS \
  -w 'HTTP=%{http_code} TLS=%{time_appconnect}s TOTAL=%{time_total}s\n' \
  https://chatgpt.com/

Eine Antwort vom vorgesehenen Dienst nach erfolgreicher Zertifikatsprüfung stellt für diese Probe einen HTTP-Austausch her. Ein 401 oder 403 kann den Zugriff dennoch blockieren. Es beweist nicht, dass eine authentifizierte Codex-Anfrage funktioniert, und das Deaktivieren der Zertifikatsprüfung würde diese Prüfung ungültig machen.

Schließen Sie schließlich eine kleine Aufgabe im Client ab, die ursprünglich fehlgeschlagen ist. Eine installierte, authentifizierte CLI kann die folgende optionale Prüfung ausführen, die eine echte Modellanfrage stellt und das Kontingent des Kontos verwendet:

codex exec --skip-git-repo-check --sandbox read-only \
  'Reply with exactly: PONG. Do not use tools.'

Ein Erfolg in der CLI verifiziert nur genau diese CLI-Anfrage; testen Sie die Desktop-App separat, wenn dort der Fehler auftrat. Prüfen Sie nach einem Abonnement-Update, einem Netzwerkwechsel und nach Ruhezustand/Aufwachen erneut. Spätere Konfigurationsschichten oder umbenannte Gruppen können eine Verbesserung weiterhin beeinträchtigen.

Häufig gestellte Fragen

Reicht es aus, den System-DNS auf 8.8.8.8 zu ändern?

Nicht unbedingt. Eine Resolver-Adresse allein stellt weder Verschlüsselung noch Proxy-Routing noch Erreichbarkeit sicher. Prüfen Sie Resolver, Transport und Egress zusammen.

Warum schlägt Codex fehl, während Clash ausgeführt wird?

Der Prozess umgeht möglicherweise den Proxy, trifft auf eine Direktregel oder hängt von nicht verfügbaren Node-DNS ab. Das Problem kann auch nichts mit DNS zu tun haben. Ermitteln Sie die tatsächliche Verbindung, bevor Sie mehrere Einstellungen auf einmal ändern.

Was ist, wenn es weiterhin Verbindungen trennt?

Wenn DNS, TLS und Routing funktionieren, untersuchen Sie den Dienststatus, die Gesprächsgröße, die Client-Version, die Stabilität der Knotenverbindung und den genauen Fehlertext. OpenAI dokumentiert Feedback- und Log-Speicherorte; prüfen Sie Logs auf Geheimnisse, bevor Sie sie teilen. Troubleshooting and logs

Wie mache ich die Änderung rückgängig?

Deaktivieren Sie das hinzugefügte Script und stellen Sie das gesicherte Profil, die TUN-Einstellungen und alle von Ihnen geänderten System-DNS-Einstellungen wieder her. Eine separate proxy-providers-Architektur kann später Knoten-Abonnements von lokalem DNS und Regeln isolieren, ist für diese gezielte Behebung aber nicht erforderlich.

Für Installations- und Import-Schritte siehe Clash Verge setup. Für andere Fehler siehe Clash troubleshooting. Sie können diesen Diagnoseprozess mit einem vorhandenen kompatiblen Abonnement verwenden; ein weiterer Dienstkauf ist keine Voraussetzung zum Testen von DNS.