Se Codex nenehno znova povezuje? Preverite DNS in usmerjanje v Clash

Zadnja posodobitev: 2026-09-10

Napake Codex, kot so Reconnecting..., stream disconnected before completion in error sending request, lahko vključujejo motnje v DNS ali nepravilno usmerjanje v Clash. Ta vodnik pojasnjuje, kako raziskati to možnost, uporabiti ciljno izboljšavo za Clash Verge Rev in preveriti rezultat.

Kaj poročila skupnosti dejansko kažejo

Uporabniki na Reddit so poročali o prekinjenih opravilih, usmerjenih na chatgpt.com/backend-api/codex/responses, ponavljajočih se poskusih ponovne povezave in napakah telesa odgovora. Ta poročila potrjujejo simptome, ne pa diagnoze DNS. Prekinjena zahteva, zanka ponovnega povezovanja

Ločena razprava opisuje napake med oddaljenim zgoščevanjem konteksta. Komentator predlaga preiskavo proxyja, vendar razprava ne potrjuje preverjenega vzroka. Razprava o zgoščevanju

Poročila na X kažejo podobna vprašanja: objava z 9. septembra opisuje trajne napake pretoka, medtem ko objava s 6. septembra poroča o časovni omejitvi nedejavnosti SSE med oddaljenim zgoščevanjem. Nobena ne vsebuje primerjave DNS. To so uporabni primeri težav uporabnikov, vendar ne potrjujejo skupnega vzroka. Poročilo o toku na X, Poročilo o zgoščevanju na X

Simptom Kaj raziskati
Takojšnja časovna omejitev z napako razreševalnika DNS, dosegljivost vozlišča in ali promet vstopi v Clash
ChatGPT deluje v brskalniku, Codex pa ne Razlike v proxyju, DNS, potrdilih in izhodni poti
Izhod se začne, nato pa se tok prekine Dolgotrajne povezave, spremembe omrežja in napake storitve
Ne uspejo samo dolgi pogovori ali zgoščevanje Primerjajte z majhnim novim opravilom; raziščite napake seje in strežnika
HTTP 401, 403, 429 ali 5xx Preglejte izvor in telo odgovora glede preverjanja pristnosti, pravilnikov, omejitev ali napak storitve

Preverite stanje storitve OpenAI in zabeležite čas ter različico odjemalca. Za obtičale klepete OpenAI priporoča tudi preverjanje čakajočih odobritev in poskus z manjšim, osredotočenim novim klepetom. Različici za namizje in CLI se lahko razlikujeta. Uradno odpravljanje težav

Lokalni primer: nepričakovan odgovor DNS je sprožil DIRECT

V eni zabeleženi preiskavi v macOS z uporabo Clash Verge Rev in Mihomo so bila proxy vozlišča dosegljiva, vendar se je chatgpt.com ujemal s pravilom GeoIP/CN in poskusil neposredno povezavo, ki je potekla. Primerjava s šifriranim DNS, doseženim prek proxyja, je pokazala nenavaden odgovor na lokalni poti razreševanja.

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

Obravnavati je treba dve težavi s konfiguracijo: pot razreševanja in odločitev o usmerjanju. Ta zabeleženi primer ni merilo niti dokaz, da imajo druge napake Codex isti vzrok. Nenavaden odgovor sam po sebi tudi ne more določiti odgovornega posrednika ali posebej potrditi zastrupljanja predpomnilnika DNS.

Diagnosticirajte pred spreminjanjem konfiguracije

Preverite dnevnik povezav

Poiščite dejansko ime gostitelja v napaki, vključno z chatgpt.com ali openai.com. Zabeležite ujemajoče se pravilo, verigo povezave in napako ob času odpovedi. Povezava, ki bi morala uporabljati proxy, vendar izbere DIRECT, upravičuje pregled vrstnega reda pravil. Mihomo pravila usmerjanja vrednoti od zgoraj navzdol. Dokumentacija o usmerjanju

Če se ne pojavi nobena ujemajoča se povezava, najprej ugotovite, ali ta odjemalec uporablja Clash. Uspeh v brskalniku ne potrjuje poti, ki jo uporablja ločen proces.

Primerjajte poti razreševanja

V macOS preglejte sistemski razreševalnik in njegov trenutni odgovor:

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

Za šifrirano primerjavo zamenjajte 7890 s svojim HTTP/mešanim portom 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'

Zahteva uporablja Cloudflarejev vmesnik DNS JSON. Preverite ploščo povezave: izrecen lokalni proxy zagotavlja vstop v Clash, vendar pravila Clash še vedno določajo končno izhodno pot.

Različni naslovi IP sami po sebi niso dokaz motenj. Razlike lahko pojasnijo izbira CDN, predpomnjenje, družine naslovov in Fake-IP. Sintetični naslov iz obsega Fake-IP v Clash ni sam po sebi sumljiv. Nenavaden odgovor povežite z nepravilno potjo in napako, nato pa primerjajte z drugo preverjeno omrežno potjo. Če je omogočen TUN, je lahko prestrežen tudi dig @resolver; to ni samodejno neodvisen preizkus navzgornjega strežnika.

Uporabite ciljno izboljšavo za Clash Verge Rev

Ta predloga zahteva Clash Verge Rev z Mihomo, obstoječo naročnino in delujoče proxy vozlišče. Gre za naročniški Script, ne za popoln samostojen profil. Najprej varnostno kopirajte trenutno konfiguracijo. Če že uporabljate script, vključite spremembo v njegovo obstoječo funkcijo main(config). Preglejte končno izvajalno konfiguracijo po vseh korakih izboljšave. Dokumentacija za Script v Clash Verge Rev

Nastavite CODEX_PROXY_GROUP na obstoječo skupino in v tej skupini izberite delujoče proxy vozlišče. Nastavite NODE_DNS na DoH razreševalnik, ki deluje, preden se proxy poveže, in pravilno razrešuje imena gostiteljev vozlišč. Primer AliDNS je namenjen preverjanju v omrežju celinske Kitajske; zamenjajte ga, kadar ni primeren. Ne uporablja se za razreševanje spodnjih domen AI.

// 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 doda DNS pravilnik za posamezne domene in na začetek doda proxy pravila, pri tem pa ohrani druga pravila in pravilnike domen. Spremeni razreševanje imen gostiteljev vozlišč. Ti štirje domenski priponi sta začetni obseg, ne pa izčrpen seznam vseh funkcij Codex, ponudnikov po meri, storitev MCP ali prenosov opravil.

Mihomo podpira nameserver-policy za posamezne domene in izrecno proxy pripono na naslovu DNS strežnika. Razreševanje vozlišč potrebuje neodvisno pot, da se izogne krožni odvisnosti. Sklic za konfiguracijo DNS

Ciljni skript ohrani obstoječe fallback nastavitve. Preden jih zamenjate, ločeno preglejte širše odvisnosti DNS. Preverite tudi zastarele preslikave hosts ali nasprotujoče si, bolj specifične pravilnike.

TUN preverite ločeno

Za procese, ki ne uporabljajo sistemskega proxyja, omogočite TUN v Clash Verge Rev in preverite, da teče. Naslednja polja združite v svoj obstoječi objekt TUN in pri tem ohranite njegove druge nastavitve:

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

To pokriva UDP in TCP DNS na vratih 53. Mihomo dokumentira omejitve za DNS, usmerjen v LAN, v macOS in Windows; šifrirani DNS, ki ga upravlja aplikacija, prav tako ni zajet s temi pravili za vrata 53. Preverite vedenje razreševalnika in vmesnika, namesto da predpostavite, da stikalo zajame vsako zahtevo. Sklic za TUN

Ločeno preverite konfiguracijo, usmerjanje in Codex

Najprej preverite končno konfiguracijo glede napak, sklicev na skupine in vrstnega reda pravil. Če je na voljo CLI za Mihomo, mihomo -t -f <final-config-path> preveri, ali se konfiguracija razčleni. To ne dokazuje povezljivosti.

Nato preglejte dejansko usmerjanje povezave in zaženite HTTPS preizkus s preverjanjem potrdila prek svojih dejanskih lokalnih vrat:

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/

Odziv predvidene storitve po uspešnem preverjanju potrdila potrdi izmenjavo HTTP za ta preizkus. 401 ali 403 lahko še vedno blokira dostop. To ne dokazuje, da deluje overjena zahteva Codex, in onemogočanje preverjanja potrdila bi ta preizkus razvrednotilo.

Na koncu v odjemalcu, kjer je prej prišlo do napake, dokončajte majhno opravilo. Nameščen in overjen CLI lahko zažene naslednje neobvezno preverjanje, ki izvede dejansko zahtevo modelu in porabi kvoto računa:

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

Uspeh CLI preveri samo to zahtevo CLI; če je do napake prišlo v namizni aplikaciji, jo preizkusite ločeno. Znova preverite po posodobitvi naročnine, spremembi omrežja in spanju/prebujanju. Poznejši sloji konfiguracije ali preimenovane skupine lahko še vedno pokvarijo izboljšavo.

Pogosto zastavljena vprašanja

Ali zadostuje, da sistemski DNS spremenim na 8.8.8.8?

Ni nujno. Sam naslov razreševalnika ne vzpostavi šifriranja, proxy usmerjanja ali dosegljivosti. Skupaj preverite razreševalnik, prenos in izhodno pot.

Zakaj Codex odpove, čeprav Clash teče?

Proces morda obide proxy, se ujema s pravilom direct ali pa je odvisen od nedosegljivega DNS vozlišča. Težava morda tudi ni povezana z DNS. Ugotovite dejansko povezavo, preden hkrati spremenite več nastavitev.

Kaj pa, če se še vedno prekinja?

Če DNS, TLS in usmerjanje delujejo, raziščite stanje storitve, velikost pogovora, različico odjemalca, stabilnost povezave vozlišča in natančno telo napake. OpenAI dokumentira mesta za povratne informacije in dnevnike; pred deljenjem preglejte dnevnike glede skrivnosti. Odpravljanje težav in dnevniki

Kako razveljavim spremembo?

Onemogočite dodani Script in obnovite varnostno kopiran profil, nastavitve TUN in morebitne sistemske nastavitve DNS, ki ste jih spremenili. Ločena arhitektura proxy-providers lahko pozneje naročnine vozlišč izolira od lokalnega DNS in pravil, vendar za ta ciljni popravek ni potrebna.

Za korake namestitve in uvoza glejte nastavitev Clash Verge. Za druge napake glejte odpravljanje težav Clash. Ta diagnostični postopek lahko uporabite z obstoječo združljivo naročnino; nakup druge storitve ni predpogoj za preizkušanje DNS.