Yhdistääkö Codex jatkuvasti uudelleen? Tarkista DNS ja Clash-reititys

Viimeksi päivitetty: 2026-09-10

Codex-virheet kuten Reconnecting..., stream disconnected before completion ja error sending request voivat liittyä DNS-häiriöihin tai virheelliseen Clash-reititykseen. Tässä oppaassa kerrotaan, miten tätä mahdollisuutta tutkitaan, miten kohdennettu Clash Verge Rev -parannus otetaan käyttöön ja miten tulos varmistetaan.

Mitä yhteisön raportit todella osoittavat

Reddit-käyttäjät ovat raportoineet keskeytyneitä tehtäviä, jotka kohdistuvat osoitteeseen chatgpt.com/backend-api/codex/responses, toistuvia uudelleenyhdistämisyrityksiä ja response body -virheitä. Nämä raportit osoittavat oireita, eivät DNS-diagnoosia. Keskeytynyt pyyntö, uudelleenyhdistämissilmukka

Erillisessä keskustelussa kuvataan epäonnistumisia etäkontekstin tiivistyksen aikana. Kommentoija ehdottaa proxyn tutkimista, mutta keskustelu ei osoita vahvistettua syytä. Tiivistyskeskustelu

Raportit X:ssä osoittavat samanlaisia kysymyksiä: syyskuun 9. päivän julkaisu kuvaa jatkuvia stream-epäonnistumisia, kun taas syyskuun 6. päivän julkaisu raportoi SSE idle timeout -tilanteen etätiivistyksen aikana. Kumpikaan ei tarjoa DNS-vertailua. Nämä ovat hyödyllisiä esimerkkejä käyttäjäongelmista, mutta ne eivät osoita yhteistä syytä. X stream -raportti, X tiivistysraportti

Oire Mitä tutkia
Välitön aikakatkaisu resolver-virheen kanssa DNS, solmun tavoitettavuus ja meneekö liikenne Clashiin
ChatGPT toimii selaimessa mutta Codex epäonnistuu Erot proxyssa, DNS:ssä, varmenteissa ja ulostuloreitissä
Tuloste alkaa, sitten stream katkeaa Pitkäkestoiset yhteydet, verkkomuutokset ja palveluvirheet
Vain pitkät keskustelut tai tiivistys epäonnistuvat Vertaa pieneen uuteen tehtävään; tutki istunto- ja palvelinvirheitä
HTTP 401, 403, 429 tai 5xx Tarkista vastauksen alkuperä ja body todennuksen, käytäntöjen, rajoitusten tai palveluhäiriöiden varalta

Tarkista OpenAI:n palvelun tila ja kirjaa aika sekä asiakasversion numero. Jumiutuneiden keskustelujen osalta OpenAI suosittelee myös tarkistamaan odottavat hyväksynnät ja kokeilemaan pienempää, kohdennettua uutta keskustelua. Työpöytä- ja CLI-versiot voivat erota toisistaan. Virallinen vianmääritys

Paikallinen tapaus: odottamaton DNS-vastaus laukaisi DIRECTin

Yhdessä tallennetussa macOS-tutkimuksessa, jossa käytettiin Clash Verge Reviä ja Mihomoa, proxysolmut olivat tavoitettavissa, mutta chatgpt.com vastasi GeoIP/CN-sääntöä ja yritti suoraa yhteyttä, joka aikakatkaistiin. Vertailu proxyn kautta tavoitettuun salattuun DNS:ään osoitti poikkeavan vastauksen paikallisessa nimenratkaisupolussa.

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

Ratkaistavana on kaksi määritysongelmaa: nimenratkaisupolku ja reitityspäätös. Tämä tallennettu tapaus ei ole vertailuarvo eikä todiste siitä, että muilla Codex-epäonnistumisilla olisi sama syy. Pelkkä poikkeava vastaus ei myöskään voi tunnistaa vastuullista välikättä eikä erityisesti osoittaa DNS-välimuistin myrkyttämistä.

Tee diagnoosi ennen määritysten muuttamista

Tarkista yhteysloki

Etsi virheestä todellinen hostname, mukaan lukien chatgpt.com tai openai.com. Kirjaa vastaava sääntö, yhteysketju ja virhe epäonnistumisen ajankohtana. Yhteys, jonka pitäisi käyttää proxya mutta joka valitsee DIRECT, edellyttää sääntöjärjestyksen tarkistusta. Mihomo arvioi reitityssäännöt ylhäältä alas. Reititysdokumentaatio

Jos vastaavaa yhteyttä ei näy, selvitä ensin, käyttääkö kyseinen asiakas Clashia. Selaimessa onnistuminen ei osoita, mitä polkua erillinen prosessi käyttää.

Vertaa nimenratkaisupolkuja

macOS:ssä tarkista järjestelmän resolver ja sen tämänhetkinen vastaus:

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

Salattua vertailua varten korvaa 7890 omalla Clash HTTP/mixed -portillasi:

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'

Pyyntö käyttää Cloudflaren DNS JSON -rajapintaa. Tarkista yhteyspaneeli: nimenomainen paikallinen proxy takaa pääsyn Clashiin, mutta Clash-säännöt määrittävät silti lopullisen ulostuloreitin.

Pelkästään erilaiset IP-osoitteet eivät ole todiste häiriöstä. CDN-valinta, välimuistitus, osoiteperheet ja Fake-IP voivat selittää erot. Clashin Fake-IP-alueelta tuleva synteettinen osoite ei ole itsessään epäilyttävä. Yhdistä poikkeava vastaus virheelliseen reittiin ja epäonnistumiseen ja vertaa sitten toiseen varmennettuun verkkopolkuun. Kun TUN on käytössä, jopa dig @resolver voidaan siepata; se ei automaattisesti ole riippumaton upstream-testi.

Ota käyttöön kohdennettu Clash Verge Rev -parannus

Tämä malli edellyttää Clash Verge Reviä Mihomolla, olemassa olevaa tilausta ja toimivaa proxysolmua. Tämä on tilauksen Script, ei täydellinen itsenäinen profiili. Varmuuskopioi nykyinen määritys ensin. Jos käytät jo scriptiä, integroi muutos sen olemassa olevaan main(config)-funktioon. Tarkista lopullinen ajonaikainen määritys kaikkien parannusvaiheiden jälkeen. Clash Verge Rev Script -dokumentaatio

Aseta CODEX_PROXY_GROUP olemassa olevaan ryhmään ja valitse kyseisestä ryhmästä toimiva välityspalvelinsolmu. Aseta NODE_DNS DoH-resolveriksi, joka toimii ennen kuin välityspalvelin muodostaa yhteyden ja ratkaisee solmujen isäntänimet oikein. AliDNS-esimerkki on tarkoitettu validointiin Manner-Kiinan verkossa; korvaa se, jos se ei sovellu. Sitä ei käytetä alla olevien AI-verkkotunnusten ratkaisemiseen.

// 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;
}

Skripti lisää verkkotunnuskohtaisen DNS-käytännön ja lisää välityspalvelinsäännöt alkuun säilyttäen samalla muut säännöt ja verkkotunnuskäytännöt. Se muuttaa solmujen isäntänimien ratkaisua. Nämä neljä verkkotunnuspäätettä ovat aloituslaajuus, eivät kattava luettelo kaikista Codex-ominaisuuksista, mukautetuista palveluntarjoajista, MCP-palveluista tai tehtävälatauksista.

Mihomo tukee verkkotunnuskohtaista nameserver-policy-käytäntöä ja erillistä välityspalvelinjälkiliitettä DNS-palvelimen osoitteessa. Solmujen ratkaisu tarvitsee riippumattoman reitin kehäriippuvuuden välttämiseksi. DNS-määritysten viite

Kohdistettu skripti säilyttää nykyiset fallback-asetukset. Tarkista laajemmat DNS-riippuvuudet erikseen ennen niiden korvaamista. Tarkista myös vanhentuneet hosts-määritykset tai ristiriitaiset, tarkemmat käytännöt.

Tarkista TUN erikseen

Prosesseille, jotka eivät käytä järjestelmän välityspalvelinta, ota TUN käyttöön Clash Verge Rev:ssä ja varmista, että se on käynnissä. Yhdistä seuraavat kentät olemassa olevaan TUN-objektiisi säilyttäen sen muut asetukset:

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

Nämä kattavat UDP- ja TCP-DNS:n portissa 53. Mihomo dokumentoi rajoituksia LAN:iin suunnatulle DNS:lle macOS:ssä ja Windowsissa; myös sovelluksen hallinnoima salattu DNS jää näiden portti 53 -sääntöjen ulkopuolelle. Varmista resolverin ja verkkoliitännän toiminta sen sijaan, että olettaisit valinnan kattavan kaikki pyynnöt. TUN-viite

Vahvista määritykset, reititys ja Codex erikseen

Tarkista ensin lopullisesta määrityksestä virheet, ryhmäviittaukset ja sääntöjen järjestys. Jos Mihomo CLI on saatavilla, mihomo -t -f <final-config-path> tarkistaa, jäsentyykö määritys oikein. Se ei todista yhteyden toimivuutta.

Tarkista seuraavaksi todellinen yhteyden reititys ja suorita varmenteella vahvistettu HTTPS-koe oikean paikallisen porttisi kautta:

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/

Vastaus tarkoitetulta palvelulta onnistuneen varmenteen vahvistuksen jälkeen osoittaa HTTP-vaihdon tässä kokeessa. 401 tai 403 voi silti estää pääsyn. Se ei todista, että todennettu Codex-pyyntö toimii, ja varmenteen vahvistuksen poistaminen tekisi tästä tarkistuksesta mitättömän.

Suorita lopuksi pieni tehtävä asiakkaassa, jossa virhe alun perin ilmeni. Asennettu ja todennettu CLI voi suorittaa seuraavan valinnaisen tarkistuksen, joka tekee oikean mallipyynnön ja käyttää tilin kiintiötä:

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

CLI:n onnistuminen vahvistaa vain kyseisen CLI-pyynnön; testaa työpöytäsovellus erikseen, jos virhe ilmeni siellä. Tarkista uudelleen tilauspäivityksen, verkon muutoksen ja lepotilasta heräämisen jälkeen. Myöhemmät määrityskerrokset tai uudelleennimetyt ryhmät voivat silti rikkoa parannuksen.

Usein kysytyt kysymykset

Riittääkö järjestelmän DNS:n vaihtaminen osoitteeseen 8.8.8.8?

Ei välttämättä. Pelkkä resolverin osoite ei yksinään takaa salausta, välityspalvelinreititystä tai tavoitettavuutta. Varmista resolveri, siirtotapa ja ulostuloreitti yhdessä.

Miksi Codex epäonnistuu, vaikka Clash on käynnissä?

Prosessi saattaa ohittaa välityspalvelimen, osua suoraan sääntöön tai riippua solmun DNS:stä, joka ei ole saatavilla. Ongelma ei myöskään välttämättä liity DNS:ään. Selvitä todellinen yhteys ennen kuin muutat useita asetuksia kerralla.

Mitä jos yhteys katkeaa edelleen?

Jos DNS, TLS ja reititys toimivat, tutki palvelun tila, keskustelun koko, asiakkaan versio, solmuyhteyden vakaus ja tarkka virhesisältö. OpenAI dokumentoi palautteen ja lokien sijainnit; tarkista lokit salaisuuksien varalta ennen niiden jakamista. Vianmääritys ja lokit

Miten muutos kumotaan?

Poista lisätty Script käytöstä ja palauta varmuuskopioitu profiili, TUN-asetukset ja kaikki muuttamasi järjestelmän DNS-asetukset. Erillinen proxy-providers-arkkitehtuuri voi myöhemmin eristää solmutilaukset paikallisesta DNS:stä ja säännöistä, mutta sitä ei vaadita tähän kohdistettuun korjaukseen.

Asennus- ja tuontivaiheet löydät kohdasta Clash Verge -määritys. Muiden virheiden osalta katso Clash-vianmääritys. Voit käyttää tätä diagnostiikkaprosessia olemassa olevan yhteensopivan tilauksen kanssa; toisen palvelun ostaminen ei ole DNS:n testaamisen edellytys.