Skip to content

Commit 82a8cbf

Browse files
therealalephclaude
andcommitted
docs(github-actions-tunnel): warn that cloudflared methods may not work from Iran ISP (#849)
Apps Script's outbound runs from Google datacenter IPs, which Cloudflare's anti-bot heuristics flag as bots and serves a 403 / Persian Google Docs error on the Apps Script → trycloudflare.com / your-CF-domain step. This blocks both Method 1 (cloudflared Quick) and Method 3 (cloudflared Named) from Iran ISP per #849's reproducible report. ngrok (Method 2) doesn't go through CF edge so it works. Updated the methods table with a "Iran ISP friendly?" column + a callout block above explaining the failure mode + recommends Method 2 (ngrok) as the starting point for Iran-based users. Methods 1 and 3 stay documented for completeness — they DO work on networks where CF's anti-bot doesn't fire against Google datacenter IPs. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent a797830 commit 82a8cbf

1 file changed

Lines changed: 19 additions & 8 deletions

File tree

assets/github-actions-tunnel/README.md

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,14 +28,25 @@ purchase a VPS. Uses GitHub Actions free hosted runners to run the official
2828
Three methods are provided, ordered by setup complexity. Each is documented in
2929
its own guide with step-by-step instructions.
3030

31-
| # | Method | Guide | Account Required | URL Behavior |
32-
|---|---|---|---|---|
33-
| 1 | cloudflared Quick Tunnel | [cloudflared-quick.md][quick] | None | New URL each session |
34-
| 2 | ngrok Tunnel | [ngrok.md][ngrok] | ngrok (free) | New URL each session |
35-
| 3 | cloudflared Named Tunnel | [cloudflared-named.md][named] | Cloudflare + domain | **Permanent URL** |
36-
37-
**New to Full tunnel mode?** Start with [Method 1][quick] — no accounts
38-
needed beyond GitHub and Google.
31+
| # | Method | Guide | Account Required | URL Behavior | Iran ISP friendly? |
32+
|---|---|---|---|---|---|
33+
| 1 | cloudflared Quick Tunnel | [cloudflared-quick.md][quick] | None | New URL each session | ⚠️ See note below |
34+
| 2 | ngrok Tunnel | [ngrok.md][ngrok] | ngrok (free) | New URL each session | ✅ Works |
35+
| 3 | cloudflared Named Tunnel | [cloudflared-named.md][named] | Cloudflare + domain | **Permanent URL** | ⚠️ See note below |
36+
37+
> **⚠️ Important — cloudflared methods may not work from Iran ISP.** Apps Script
38+
> outbound runs from Google datacenter IPs, which Cloudflare's anti-bot system
39+
> flags as bots and serves a 403 / Persian Google Docs error page (#849). This
40+
> blocks the Apps Script → trycloudflare.com / your-domain step. **If you're on
41+
> Iran ISP, start with Method 2 (ngrok) instead** — ngrok's edge IPs are not
42+
> on Cloudflare's flagged list. cloudflared Methods 1 and 3 may still work for
43+
> users on networks where Cloudflare's anti-bot heuristics aren't firing
44+
> against Apps Script's outbound, so they're documented for completeness.
45+
46+
**New to Full tunnel mode?** If you're on Iran ISP, start with [Method 2 (ngrok)][ngrok]
47+
— it's the most reliable. If you're on a network where CF anti-bot doesn't
48+
fire against Google datacenter IPs, [Method 1 (cloudflared Quick)][quick] is
49+
the simplest (no third-party signup).
3950

4051
**Need a stable URL that survives restarts?** Use [Method 3][named] — requires
4152
a one-time Cloudflare CLI setup but the URL never changes.

0 commit comments

Comments
 (0)