Codex se stále znovu připojuje? Zkontrolujte DNS a směrování Clash
Chyby Codexu jako Reconnecting..., stream disconnected before completion a error sending request mohou souviset s rušením DNS nebo nesprávným směrováním v Clash. Tato příručka vysvětluje, jak tuto možnost prozkoumat, použít cílené vylepšení pro Clash Verge Rev a ověřit výsledek.
Co skutečně ukazují hlášení komunity
Uživatelé na Redditu hlásili přerušované úlohy cílené na chatgpt.com/backend-api/codex/responses, opakované pokusy o znovupřipojení a chyby v těle odpovědi. Tato hlášení potvrzují příznaky, nikoli diagnózu DNS. Přerušený požadavek, smyčka opakovaného připojování
Samostatná diskuse popisuje selhání během vzdálené kompakce kontextu. Jeden komentující navrhuje prověřit proxy, ale diskuse neprokazuje ověřenou příčinu. Diskuse o kompakci
Hlášení na X ukazují podobné otázky: příspěvek ze 9. září popisuje trvalá selhání streamu, zatímco příspěvek ze 6. září uvádí SSE idle timeout během vzdálené kompakce. Ani jedno neposkytuje srovnání DNS. Jsou to užitečné příklady problémů uživatelů, ale neprokazují společnou příčinu. Zpráva o streamu na X, zpráva o kompakci na X
| Příznak | Co prozkoumat |
|---|---|
| Okamžitý timeout s chybou resolveru | DNS, dostupnost uzlu a zda provoz vstupuje do Clash |
| ChatGPT funguje v prohlížeči, ale Codex selhává | Rozdíly v proxy, DNS, certifikátech a odchozím provozu |
| Výstup se spustí, pak se stream odpojí | Dlouho běžící spojení, změny sítě a chyby služby |
| Selžou jen dlouhé konverzace nebo kompakce | Porovnejte s malým novým úkolem; prozkoumejte chyby relace a serveru |
| HTTP 401, 403, 429 nebo 5xx | Prohlédněte si původ odpovědi a tělo kvůli autentizaci, zásadám, limitům nebo selhání služby |
Zkontrolujte stav služby OpenAI a zaznamenejte čas a verzi klienta. Pro zaseknuté chaty OpenAI také doporučuje zkontrolovat čekající schválení a zkusit menší, cílený nový chat. Verze pro desktop a CLI se mohou lišit. Oficiální řešení problémů
Místní případ: neočekávaná odpověď DNS spustila DIRECT
V jednom zaznamenaném vyšetřování na macOS s použitím Clash Verge Rev a Mihomo byly proxy uzly dostupné, ale chatgpt.com odpovídal pravidlu GeoIP/CN a pokusil se o přímé připojení, které vypršelo. Porovnání s šifrovaným DNS dosaženým přes proxy ukázalo na lokální cestě rozlišení anomální odpověď.
Request to chatgpt.com
→ anomalous DNS answer
→ no earlier matching OpenAI domain rule
→ GeoIP selects DIRECT
→ connection times out and Codex retries
Jsou tu dva konfigurační problémy, které je třeba řešit: cesta rozlišení a rozhodnutí o směrování. Tento zaznamenaný případ není měřítko ani důkaz, že jiné selhání Codexu mají stejnou příčinu. Samotná anomální odpověď také nemůže určit odpovědný zprostředkující prvek ani konkrétně prokázat otravu DNS cache.
Diagnostikujte před změnou konfigurace
Zkontrolujte protokol připojení
Vyhledejte v chybě skutečný hostname, včetně chatgpt.com nebo openai.com. Zaznamenejte odpovídající pravidlo, řetězec připojení a chybu v době selhání. Připojení, které by mělo použít proxy, ale vybere DIRECT, vyžaduje revizi pořadí pravidel. Mihomo vyhodnocuje směrovací pravidla shora dolů. Dokumentace směrování
Pokud se žádné odpovídající připojení neobjeví, nejprve zjistěte, zda tento klient používá Clash. Úspěch v prohlížeči neprokazuje cestu použitou samostatným procesem.
Porovnejte cesty rozlišení
Na macOS zkontrolujte systémový resolver a jeho aktuální odpověď:
scutil --dns
dscacheutil -q host -a name chatgpt.com
Pro šifrované porovnání nahraďte 7890 svým HTTP/mixed portem v Clash:
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'
Požadavek používá Cloudflare DNS JSON interface. Zkontrolujte panel připojení: explicitní lokální proxy zaručuje vstup do Clash, ale pravidla Clash stále určují výsledný odchozí bod.
Samotné různé IP adresy nejsou důkazem rušení. Rozdíly mohou vysvětlit výběr CDN, kešování, rodiny adres a Fake-IP. Syntetická adresa z rozsahu Fake-IP v Clash není sama o sobě podezřelá. Spojte anomální odpověď s nesprávnou trasou a selháním a poté ji porovnejte s jinou ověřenou síťovou cestou. Se zapnutým TUN může být zachyceno i dig @resolver; není to automaticky nezávislý test upstreamu.
Použijte cílené vylepšení pro Clash Verge Rev
Tato šablona vyžaduje Clash Verge Rev s Mihomo, existující předplatné a funkční proxy uzel. Jde o Script předplatného, nikoli o kompletní samostatný profil. Nejprve zálohujte aktuální konfiguraci. Pokud už Script používáte, integrujte změnu do jeho stávající funkce main(config). Po všech krocích vylepšení zkontrolujte výslednou runtime konfiguraci. Dokumentace Scriptu Clash Verge Rev
Nastavte CODEX_PROXY_GROUP na existující skupinu a v té skupině vyberte funkční proxy uzel. Nastavte NODE_DNS na DoH resolver, který funguje ještě před připojením proxy a správně překládá názvy hostitelů uzlů. Příklad AliDNS je určen k ověření v síti na pevninské Číně; pokud je to nevhodné, nahraďte jej. Nepoužívá se k překladu níže uvedených AI domén.
// 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;
}
Skript přidává DNS politiku specifickou pro domény a vkládá proxy pravidla na začátek, přičemž zachovává ostatní pravidla a doménové politiky. Mění překlad názvů hostitelů uzlů. Čtyři přípony domén jsou výchozí rozsah, nikoli vyčerpávající seznam všech funkcí Codexu, vlastních providerů, služeb MCP nebo stahování úloh.
Mihomo podporuje doménově specifickou nameserver-policy a explicitní proxy příponu na adrese DNS serveru. Překlad uzlů potřebuje nezávislou cestu, aby se předešlo kruhové závislosti. DNS configuration reference
Cílený skript zachovává stávající nastavení fallbacku. Před jejich nahrazením samostatně zkontrolujte širší závislosti na DNS. Zkontrolujte také zastaralé mapování hosts nebo konfliktní, konkrétnější politiky.
Zkontrolujte TUN samostatně
U procesů, které nepoužívají systémový proxy, povolte TUN v Clash Verge Rev a ověřte, že běží. Následující pole sloučte do svého stávajícího objektu TUN a zachovejte jeho ostatní nastavení:
tun:
enable: true
auto-route: true
auto-detect-interface: true
dns-hijack:
- any:53
- tcp://any:53
Tato nastavení pokrývají UDP a TCP DNS na portu 53. Mihomo uvádí omezení pro DNS směrované do LAN na macOS a Windows; aplikacemi spravované šifrované DNS je také mimo tato pravidla pro port 53. Ověřte chování resolveru a rozhraní místo předpokladu, že přepínač pokrývá každý požadavek. TUN reference
Ověřte konfiguraci, směrování a Codex samostatně
Nejprve zkontrolujte výslednou konfiguraci na chyby, odkazy na skupiny a pořadí pravidel. Pokud je k dispozici CLI Mihomo, mihomo -t -f <final-config-path> ověří, zda se konfigurace parsuje. Neprokazuje to konektivitu.
Poté zkontrolujte skutečné směrování připojení a spusťte HTTPS probe s ověřením certifikátu přes váš skutečný lokální port:
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/
Odpověď z cílové služby po úspěšném ověření certifikátu pro tento probe zakládá HTTP výměnu. 401 nebo 403 mohou stále přístup blokovat. Neprokazuje to, že funguje ověřený požadavek Codexu, a vypnutí ověřování certifikátu by toto ověření znehodnotilo.
Nakonec dokončete malý úkol v klientovi, který původně selhal. Nainstalované a ověřené CLI může spustit následující volitelnou kontrolu, která odešle skutečný požadavek na model a používá účetní kvótu:
codex exec --skip-git-repo-check --sandbox read-only \
'Reply with exactly: PONG. Do not use tools.'
Úspěch CLI ověřuje pouze daný požadavek CLI; pokud k selhání došlo v desktopové aplikaci, otestujte ji samostatně. Zkontrolujte to znovu po aktualizaci předplatného, změně sítě a uspání/probuzení. Pozdější vrstvy konfigurace nebo přejmenované skupiny mohou vylepšení stále rozbít.
Často kladené otázky
Stačí změnit systémové DNS na 8.8.8.8?
Ne nutně. Samotná adresa resolveru nezajišťuje šifrování, směrování přes proxy ani dostupnost. Ověřte resolver, transport i egress společně.
Proč Codex selhává, když běží Clash?
Proces může proxy obejít, shodovat se s pravidlem direct nebo záviset na nedostupném DNS uzlu. Problém také nemusí souviset s DNS. Než změníte více nastavení najednou, najděte skutečné připojení.
Co když se to stále odpojuje?
Pokud DNS, TLS a směrování fungují, prověřte stav služby, velikost konverzace, verzi klienta, stabilitu připojení uzlu a přesné znění chybového těla. OpenAI dokumentuje zpětnou vazbu a umístění logů; před sdílením zkontrolujte logy na přítomnost tajemství. Troubleshooting and logs
Jak změnu vrátím zpět?
Vypněte přidaný Script a obnovte zálohovaný profil, nastavení TUN a všechna systémová nastavení DNS, která jste změnili. Samostatná architektura proxy-providers může později oddělit předplatná uzlů od lokálního DNS a pravidel, ale pro tuto cílenou opravu není nutná.
Pro kroky instalace a importu viz Clash Verge setup. Pro další selhání viz Clash troubleshooting. Tento diagnostický postup můžete použít se stávajícím kompatibilním předplatným; nákup jiné služby není předpokladem pro testování DNS.