App Proxy

How to Access ChatGPT Behind a Proxy: Fixing unsupported_country

ChatGPT from restricted networks shows several distinct failures: stuck login, blank page, captcha loops, or unsupported_country—and they are different problems with different fixes. Separate "proxy not on," "bad region," and DNS/IP risk before jumping to Tun, or you will chase the wrong layer for an hour.

The web app follows the system proxy in most browsers. For the CLI/API path, see Codex; for the whole toolkit approach, Tun & AI.

The one check that decides everything

Before any fix, confirm the path actually reaches the site. With the proxy on, run:

curl -sI -x http://127.0.0.1:7897 https://chatgpt.com | grep -iE "^HTTP|cf-mitigated|cf-ray"

A cf-mitigated: challenge header means the path works and you were handed a verification—this is a Cloudflare loop, not a region block (handle it in human verification loops). A 403 with unsupported_country_region_territory is a region problem. No response at all is a path problem. The header tells you which section below to read.

Triage by symptom

Symptom Layer First move
unsupported_country (403) Exit region unsupported Change region node (latency, provider)
Blank page / endless spin Path or DNS Connections present? (system proxy, sites blocked) then DNS
Captcha / "verify you are human" loops Exit IP reputation Cleaner node IP, pin the challenge host
Login succeeds, then logged out Exit IP churn Disable auto-switching for chatgpt.com

unsupported_country vs Access denied

These two are easy to confuse and need opposite responses. unsupported_country_region_territory means the exit node sits in a region OpenAI does not serve—switch to a supported-region node and it clears. Access denied / Error 1020 means the exit IP itself is blocklisted—switching regions does not help, you need a different, cleaner node in any supported region. When both appear, region comes first: clear the 403, then deal with the IP if a 1020 remains. Account-side "unusual activity" prompts belong to exit-IP risk control.

Acceptance

  1. System proxy on; chatgpt.com shows hits in Connections.
  2. Login/chat works without a region reject.
  3. Still weird: try a private window (rules out stale cookies/extensions); for mobile, mobile or LAN share.

Share one stack with Cursor/Claude

Browser OK does not mean CLI/IDE OK. The web app uses the system proxy; the editors and terminals need their own capture—system proxy for web, Tun for editors/terminals. See Cursor, Claude Code, Gemini. Push domestic bulk traffic back out of the tunnel with DIRECT rules so the proxy hop does not slow downloads.

Apps and stop

Official apps (iOS/Android/desktop) often ignore the system proxy and need Tun to be captured. Region rejects need new nodes, not endless DNS edits—if you have swapped three nodes in three regions and still get 403, the account's region setting, not the config, is the limit. Builds: download center.

Get a proxy that lets you pick regions

ChatGPT is region-sensitive; you need a clean node in a supported region. Get Clash Verge Rev from the download center, then pick nodes and configure DNS below.