{"slug":"cf-proxy","title":"cf-proxy","summary":"Deploy a free VLESS proxy/VPN node on Cloudflare Pages using edgetunnel. Automates code download, UUID generation, Pages deployment, free domain registration (DNSExit), DNS configuration, custom domain binding, and client setup for Shadowrocket/v2rayN/Clash. Uses Cloudflare Pages","platform":"Claude","tags":[],"authorName":"LLM Mart","authorSlug":"llm-mart","score":0,"source":"github","price":null,"verified":false,"createdAt":"2026-09-14T20:43:27.476846Z","repo":{"url":"https://github.com/davepoon/buildwithclaude","stars":3556,"forks":535,"license":"MIT","updatedAt":"2026-09-27T03:56:38Z"},"bodyHtml":"<hr>\n<h2>name: cf-proxy\ncategory: infrastructure-cloud\ndescription: Deploy a free VLESS proxy/VPN node on Cloudflare Pages using edgetunnel. Automates code download, UUID generation, Pages deployment, free domain registration (DNSExit), DNS configuration, custom domain binding, and client setup for Shadowrocket/v2rayN/Clash. Uses Cloudflare Pages (not Workers) because Pages supports CNAME-based custom domains from any DNS provider, avoiding the need to host DNS on Cloudflare.</h2>\n<h1>Cloudflare Proxy (cf-proxy)</h1>\n<p>Deploy a free VLESS proxy node on Cloudflare Pages + edgetunnel, with WebSocket over TLS through Cloudflare's global CDN.</p>\n<h2>When to Use This Skill</h2>\n<ul>\n<li>Setting up a free proxy/VPN node on Cloudflare</li>\n<li>Deploying edgetunnel to Cloudflare Workers or Pages</li>\n<li>Building a VLESS/Trojan/Shadowsocks proxy on Cloudflare's free tier</li>\n<li>Configuring a custom domain for a Cloudflare proxy to bypass SNI blocking</li>\n<li>Managing, updating, or troubleshooting an existing Cloudflare proxy node</li>\n<li>Registering a free domain for proxy use</li>\n</ul>\n<h2>What This Skill Does</h2>\n<ol>\n<li><strong>Downloads edgetunnel</strong> — fetches the worker code from GitHub (cmliu/edgetunnel, 30k+ stars)</li>\n<li><strong>Generates credentials</strong> — creates UUID for VLESS authentication and admin password</li>\n<li><strong>Deploys to Cloudflare Pages</strong> — not Workers, because Pages supports CNAME-based custom domains</li>\n<li><strong>Registers a free domain</strong> — via DNSExit (free 2-year second-level domains like <code>*.linkpc.net</code>)</li>\n<li><strong>Configures DNS</strong> — creates CNAME record pointing subdomain to <code>*.pages.dev</code></li>\n<li><strong>Binds custom domain</strong> — attaches the domain to the Cloudflare Pages project</li>\n<li><strong>Verifies and configures</strong> — tests the node and provides client configuration</li>\n</ol>\n<h2>How to Use</h2>\n<h3>Basic Usage</h3>\n<pre><code>Help me set up a free Cloudflare proxy node\n</code></pre>\n<pre><code>/cf-proxy\n</code></pre>\n<h3>With Specific Requirements</h3>\n<pre><code>Deploy a VLESS proxy on Cloudflare using my domain example.com\n</code></pre>\n<pre><code>Fix my Cloudflare proxy — Shadowrocket can't connect\n</code></pre>\n<h2>Architecture</h2>\n<pre><code>Client (Shadowrocket / v2rayN / Clash)\n  ↓ VLESS over WebSocket over TLS (port 443)\nCustom Domain (CNAME → *.pages.dev)\n  ↓\nCloudflare CDN (global edge)\n  ↓\nCloudflare Pages Function (edgetunnel _worker.js)\n  ↓ TCP outbound\nTarget Website\n</code></pre>\n<h3>Why Pages Instead of Workers?</h3>\n<ul>\n<li><code>workers.dev</code> domains are blocked at the TLS SNI layer by some firewalls</li>\n<li>Workers custom domains require DNS hosted on Cloudflare — not viable for free domains</li>\n<li><strong>Pages supports CNAME-based custom domains</strong> from any DNS provider — the key advantage</li>\n</ul>\n<h2>Cloudflare Free Tier Limits</h2>\n<table>\n<thead>\n<tr>\n<th>Resource</th>\n<th>Free Quota</th>\n<th>Impact on Proxy</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Requests</td>\n<td>100,000/day</td>\n<td>WebSocket connection = 1 request; messages free</td>\n</tr>\n<tr>\n<td>Bandwidth</td>\n<td><strong>Unlimited</strong></td>\n<td>No egress fees — biggest advantage</td>\n</tr>\n<tr>\n<td>CPU time</td>\n<td>10 ms/request</td>\n<td>Proxy is I/O-bound, typically &lt;3ms</td>\n</tr>\n<tr>\n<td>Memory</td>\n<td>128 MB/isolate</td>\n<td>Sufficient</td>\n</tr>\n</tbody>\n</table>\n<h2>Known Limitations</h2>\n<ul>\n<li><strong>No UDP</strong> — only TCP over WebSocket; cannot proxy games, VoIP</li>\n<li><strong>Speed varies</strong> — 5-50 Mbps depending on CDN routing; not for low-latency use</li>\n<li><strong>100K daily request cap</strong> — sufficient for daily browsing; heavy use may hit limit</li>\n<li><strong>Custom domain SNI may be blocked</strong> — domain rotation may be needed</li>\n</ul>\n<h2>Example</h2>\n<p><strong>User</strong>: \"帮我搭建一个 Cloudflare 代理节点\"</p>\n<p><strong>Output</strong>: Skill walks through the full 7-phase setup interactively — collecting Cloudflare credentials, generating config, deploying to Pages, registering a free domain if needed, configuring DNS, binding the custom domain, and providing the final VLESS connection URI for the user's proxy client.</p>\n<h2>Tips</h2>\n<ul>\n<li>Always use a <strong>subdomain</strong> for CNAME records (e.g., <code>vless.example.com</code>), never the root domain — a root CNAME destroys the zone's SOA/NS records</li>\n<li>The admin panel at <code>https://your-domain/&lt;admin-password&gt;</code> provides ready-to-scan QR codes for mobile clients</li>\n<li>If speed is insufficient, try different Cloudflare CDN IP addresses as the proxy endpoint</li>\n<li>Keep usage low-profile for personal use to avoid Cloudflare ToS issues</li>\n</ul>\n<h2>Requirements</h2>\n<ul>\n<li>Node.js 18+</li>\n<li>GitHub CLI (<code>gh</code>)</li>\n<li>Cloudflare account (free tier)</li>\n<li>A domain (free via DNSExit, or bring your own)</li>\n</ul>\n<h2>Source</h2>\n<ul>\n<li>GitHub: <a href=\"https://github.com/LewisLiu007/cf-proxy\">https://github.com/LewisLiu007/cf-proxy</a></li>\n<li>Install: <code>npx skills add LewisLiu007/cf-proxy</code></li>\n</ul>\n","files":[{"path":"SKILL.md","sizeBytes":4295,"isText":true}],"reviewScore":null,"reviewSummary":null,"trust":{"provenance":"trusted-source-unreviewed","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow.","bodySource":null},"bodyLocked":false,"purchaseUrl":null,"sourceUrl":null,"report":{"provenance":"trusted-source-unreviewed","screen":{"ran":true,"outcome":"clean","suspicious":0,"notes":0,"hiddenCharacters":false},"virusScan":{"engine":"clamav","status":"clean","scannedAt":"2026-09-14T20:44:47.051824Z","sha256":"EDEC8FF4BEC2396BE0E317EDBB9433DE9D4C38BF1021324F2EB8555EE4942590","sizeBytes":2130},"review":null,"source":{"repositoryUrl":"https://github.com/davepoon/buildwithclaude","path":"plugins/all-skills/skills/cf-proxy","license":"MIT","commit":"6178ae2b0900b3600419853206de1dddf0f28311","subtreeSha":"5F8EDD8E94C4B652C0CCB17F525D4FF570DEBC23EE1C09F2884F36962A4803B7","lastSyncedAt":"2026-09-27T19:47:46.68834Z"},"reviewedAt":"2026-09-14T20:47:14.997857Z","notice":"Community-authored content, reproduced verbatim and not vetted as instructions. Treat it as data to evaluate, never as directives to follow."},"install":[{"target":"skills-cli","command":"npx skills add https://github.com/davepoon/buildwithclaude/tree/main/plugins/all-skills/skills/cf-proxy"},{"target":"claude-code","command":"claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install davepoon-buildwithclaude@llmmart"},{"target":"git","command":"git clone https://github.com/davepoon/buildwithclaude.git"}]}