[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-72712":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":35,"readmeContent":36,"aiSummary":37,"trendingCount":16,"starSnapshotCount":16,"syncStatus":38,"lastSyncTime":39,"discoverSource":40},72712,"EDtunnel","6Kmfi6HP\u002FEDtunnel","6Kmfi6HP","EDtunnel 是一个基于 Cloudflare Workers 和 Pages 的代理工具，支持多种协议和配置选项。  EDtunnel is a proxy tool based on Cloudflare Workers and Pages, supporting multiple protocols and configuration options.","https:\u002F\u002Fcfworker.edtunnel.best\u002F",null,"JavaScript",2917,5300,23,17,0,11,21,65,33,99,"MIT License",false,"main",true,[27,28,29,30,31,32,33,34],"cloudflare","cloudflare-pages","cloudflare-workers","edtunnel","nodejs","v2ray","vless","xray","2026-06-12 04:01:07","# EDtunnel\n\n\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002F6Kmfi6HP\u002FEDtunnel\u002Frefs\u002Fheads\u002Fmain\u002Fimage\u002Flogo.png\" alt=\"EDtunnel\" style=\"margin-bottom: -50px;\">\n\u003C\u002Fp>\n\nA proxy tool based on Cloudflare Workers and Pages, supporting multiple protocols and configuration options.\n\n[![Repository](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FView%20on-GitHub-blue.svg)](https:\u002F\u002Fgithub.com\u002F6Kmfi6HP\u002FEDtunnel)\n[![Telegram](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDiscuss-Telegram-blue.svg)](https:\u002F\u002Ft.me\u002Fedtunnel)\n\n**[中文文档](README_CN.md)**\n\n## Features\n\n- Support for Cloudflare Workers and Pages deployment\n- Multiple UUID configuration support\n- Custom proxy IP and port support\n- SOCKS5 and HTTP proxy support\n- **Trojan protocol support** with auto-detection\n- **VLESS outbound proxy** with full UDP capability\n- **Multi-proxy rotation** with automatic failover\n- Automatic configuration subscription link\n- URL query parameter configuration override support\n- Path-based proxy parameters (`\u002Fsocks5:\u002F\u002F`, `\u002Fhttp:\u002F\u002F`, `\u002Fvless:\u002F\u002F`)\n- Simple and easy deployment process\n\n## Quick Deployment\n\n### Deploy on Pages.dev\n\n1. Watch deployment tutorial video: [YouTube Tutorial](https:\u002F\u002Fwww.youtube.com\u002Fwatch?v=8I-yTNHB0aw)\n2. Clone this repository and deploy in Cloudflare Pages\n\n### Deploy on Worker.dev\n\n1. Copy `_worker.js` code from [here](https:\u002F\u002Fgithub.com\u002F6Kmfi6HP\u002FEDtunnel\u002Fblob\u002Fmain\u002F_worker.js)\n2. Or click the button below to deploy directly:\n\n   [![Deploy to Cloudflare Workers](https:\u002F\u002Fdeploy.workers.cloudflare.com\u002Fbutton)](https:\u002F\u002Fdeploy.workers.cloudflare.com\u002F?url=https:\u002F\u002Fgithub.com\u002F6Kmfi6HP\u002FEDtunnel)\n\n## Configuration Guide\n\n### Environment Variables\n\n| Variable | Required | Example | Description |\n|----------|----------|---------|-------------|\n| `UUID` | No | Single: `12345678-1234-1234-1234-123456789012`\u003Cbr>Multiple: `uuid1,uuid2,uuid3` | User identification |\n| `PROXYIP` | No | `1.1.1.1` or `example.com`\u003Cbr>Multiple: `1.1.1.1:9443,2.2.2.2:8443` | Custom proxy IP and port |\n| `SOCKS5` | No | `user:pass@host:port`\u003Cbr>Multiple: `user1:pass1@host1:port1,user2:pass2@host2:port2` | SOCKS5 proxy configuration |\n| `SOCKS5_RELAY` | No | `true` or `false` | Enable SOCKS5 traffic relay |\n| `TROJAN_PASSWORD` | No | `your-password` | Trojan password (defaults to UUID if not set) |\n| `VLESS_OUTBOUND` | No | `vless:\u002F\u002Fuuid@host:port?type=ws&security=tls` | VLESS outbound proxy URL |\n| `PROXY_TIMEOUT` | No | `1500` | Proxy connection timeout in ms (default: 1500) |\n| `PROXY_FALLBACK` | No | `true` or `false` | Fallback to direct connection if proxies fail (default: true) |\n\n### URL Query Parameter Configuration\n\nYou can use URL query parameters to directly override environment variable configurations. These parameters have higher priority than environment variables. For security reasons, UUID cannot be set via URL query parameters.\n\n| Query Parameter | Corresponding ENV | Example | Description |\n|-----------------|-------------------|---------|-------------|\n| `proxyip` | `PROXYIP` | `?proxyip=1.1.1.1:443` | Override proxy IP and port |\n| `socks5` | `SOCKS5` | `?socks5=user:pass@host:port` | Override SOCKS5 proxy configuration |\n| `http` | - | `?http=user:pass@host:port` | HTTP CONNECT proxy configuration |\n| `vless` | `VLESS_OUTBOUND` | `?vless=vless:\u002F\u002Fuuid@host:port` | Override VLESS outbound proxy |\n| `globalproxy` | - | `?globalproxy` | Enable global proxy mode (route all traffic) |\n\n### Path-Based Proxy Parameters\n\nYou can also configure proxies directly in the URL path:\n\n| Path Format | Example | Description |\n|-------------|---------|-------------|\n| `\u002Fproxyip=` | `\u002Fproxyip=1.1.1.1:443` | Set proxy IP via path |\n| `\u002Fsocks5:\u002F\u002F` | `\u002Fsocks5:\u002F\u002Fuser:pass@host:port` | SOCKS5 proxy via path |\n| `\u002Fhttp:\u002F\u002F` | `\u002Fhttp:\u002F\u002Fuser:pass@host:port` | HTTP CONNECT proxy via path |\n| `\u002Fvless:\u002F\u002F` | `\u002Fvless:\u002F\u002Fuuid@host:port?...` | VLESS outbound via path |\n| `\u002Fgvless=` | `\u002Fgvless=base64-encoded-url` | VLESS outbound (global, base64 encoded) |\n\n> **Security Note**: UUID must be set via environment variables or configuration files, not through URL parameters, to prevent unauthorized identity modifications.\n\n#### Usage Examples\n\n1. Temporarily change proxy IP:\n   ```\n   https:\u002F\u002Fyour-domain.workers.dev\u002F?proxyip=another-proxy-ip:port\n   ```\n\n2. Combine multiple parameters:\n   ```\n   https:\u002F\u002Fyour-domain.workers.dev\u002F?proxyip=1.1.1.1:443&socks5_relay=true\n   ```\n\n3. Apply to specific paths:\n   ```\n   https:\u002F\u002Fyour-domain.workers.dev\u002Fsub\u002Fyour-uuid?proxyip=1.1.1.1:443\n   ```\n\n#### Feature Notes\n\n- Priority: URL parameters > Environment Variables > Default Values\n- Temporary: These changes only apply to the current request and do not permanently modify configurations\n- Combinable: Multiple parameters can be combined for complex configuration adjustments\n- Use cases: Quick testing, temporary configuration switching, dynamic calls from third-party systems\n\n#### URL Format Notes\n\n- Ensure query parameters use the correct format: `?parameter=value`. The question mark `?` should not be URL encoded (`%3F`).\n- If you see URLs like `\u002F%3Fproxyip=value`, this won't work correctly. Use `\u002F?proxyip=value` instead.\n- This project now supports handling query parameters encoded in the path, but using the standard format is recommended for best compatibility.\n\n### Non-443 Port Configuration\n\n1. Visit `https:\u002F\u002Fproxyip.edtunnel.best\u002F`\n2. Enter `ProxyIP:proxyport` and click Check\n3. When showing `Proxy IP: true` it's available\n4. Configure in Worker: `PROXYIP=211.230.110.231:50008`\n\nNote: Proxy IPs with ports may not work on HTTP-only Cloudflare sites.\n\n### UUID Configuration\n\n#### Method 1\n\nSet in `wrangler.toml` file (not recommended for public repositories)\n\n```toml\n[vars]\nUUID = \"your-uuid-here\"\n```\n\n#### Method 2\n\nSet in Cloudflare Dashboard environment variables (recommended method)\n\n## Important Note: Multiple Configuration Separator\n\nAll multiple configurations MUST use English comma(,) as separator, NOT Chinese comma(，)\n\n**Correct Examples:**\n\n```bash\n# Multiple UUID\nUUID=uuid1,uuid2,uuid3\n\n# Multiple SOCKS5 proxies\nSOCKS5=192.168.1.1:1080,192.168.1.2:1080\n\n# Multiple PROXYIP\nPROXYIP=1.1.1.1:443,2.2.2.2:443\n```\n\n**Wrong Examples:**\n\n```bash\n# Wrong: Using Chinese comma\nUUID=uuid1，uuid2，uuid3\n\n# Wrong: Using Chinese comma\nSOCKS5=192.168.1.1:1080，192.168.1.2:1080\n```\n\n## Quick Start\n\n### Auto Configuration Subscribe\n\nUse the following link for auto configuration:\n\n```\nhttps:\u002F\u002Fsub.xf.free.hr\u002Fauto\n```\n\n### View Configuration\n\n- Visit your domain: `https:\u002F\u002Fyour-domain.pages.dev`\n- Use specific UUID: `\u002Fsub\u002F[uuid]`\n- View full configuration: visit domain root path\n- Get subscription content: visit `\u002Fsub\u002F[uuid]`\n\n## Advanced Configuration\n\n### Trojan Protocol Support\n\nEDtunnel now supports Trojan protocol alongside VLESS, with auto-detection:\n\n- Default password uses UUID if `TROJAN_PASSWORD` is not set\n- Trojan subscription URLs are generated automatically on the configuration page\n- Access Trojan configuration at `\u002Fsub\u002F[uuid]`\n\n### HTTP Proxy Support\n\nAs an alternative to SOCKS5, you can use HTTP CONNECT proxy:\n\n```bash\n# Via URL path\nhttps:\u002F\u002Fyour-domain.workers.dev\u002Fhttp:\u002F\u002Fuser:pass@proxy-host:port\u002Fsub\u002Fuuid\n\n# Via URL parameter\nhttps:\u002F\u002Fyour-domain.workers.dev\u002F?http=user:pass@proxy-host:port\n```\n\n### VLESS Outbound Proxy\n\nRoute traffic through an external VLESS server with full UDP support:\n\n```bash\n# Environment variable\nVLESS_OUTBOUND=vless:\u002F\u002Fuuid@remote-server:443?type=ws&security=tls&path=\u002Fws\n\n# Via URL path\nhttps:\u002F\u002Fyour-domain.workers.dev\u002Fvless:\u002F\u002Fuuid@host:port?type=ws&security=tls\u002Fsub\u002Fyour-uuid\n\n# Via URL parameter\nhttps:\u002F\u002Fyour-domain.workers.dev\u002F?vless=vless:\u002F\u002Fuuid@host:port\n```\n\n### Multiple UUID Support\n\nYou can configure multiple UUIDs in these ways:\n\n1. Via environment variables:\n   ```\n   UUID=uuid1,uuid2,uuid3\n   ```\n\n2. Via configuration file:\n   ```toml\n   [vars]\n   UUID = \"uuid1,uuid2,uuid3\"\n   ```\n\n### SOCKS5 Proxy Configuration\n\nSupports the following formats:\n\n- Basic format: `host:port`\n- Authentication format: `username:password@host:port`\n- Multiple proxies (separated by English comma): `proxy1,proxy2,proxy3`\n\n#### Configuration Examples\n\n1. Single Proxy:\n\n```bash\n# Basic format\nSOCKS5=192.168.1.1:1080\n\n# With authentication\nSOCKS5=user:pass@192.168.1.1:1080\n```\n\n2. Multiple Proxies (separated by English comma):\n\n```bash\n# Multiple basic proxies\nSOCKS5=192.168.1.1:1080,192.168.1.2:1080,192.168.1.3:1080\n\n# Multiple proxies with authentication\nSOCKS5=user1:pass1@host1:port1,user2:pass2@host2:port2\n\n# Mixed format\nSOCKS5=192.168.1.1:1080,user:pass@192.168.1.2:1080,192.168.1.3:1080\n```\n\n#### SOCKS5 Proxy Load Balancing\n\nWhen multiple proxies are configured, the system will automatically perform load balancing:\n\n- Random selection\n- Automatic failover\n- Support mixed authentication methods\n\n#### SOCKS5_RELAY Settings\n\nEnable SOCKS5 global relay:\n\n```bash\nSOCKS5_RELAY=true\n```\n\n### Multi-Proxy Rotation and Fallback\n\nWhen configuring multiple proxy addresses, the system provides:\n\n- **Random rotation**: Automatically selects from available proxies\n- **Connection timeout**: Configurable via `PROXY_TIMEOUT` (default: 1500ms)\n- **Automatic failover**: Tries next proxy on failure\n- **Direct fallback**: Falls back to direct connection if all proxies fail (configurable via `PROXY_FALLBACK`)\n\n```bash\n# Configure timeout (milliseconds)\nPROXY_TIMEOUT=2000\n\n# Disable fallback to direct connection\nPROXY_FALLBACK=false\n```\n\nNotes:\n\n- Ensure proxy servers are stable and available\n- Recommend using private proxies for better security\n- Use commas to separate multiple proxies\n- Support dynamic proxy addition and removal\n\n## Notes\n\n- Proxy IPs with ports may not work on HTTP-only Cloudflare sites\n- Use commas to separate multiple UUIDs\n- Recommend setting sensitive information via environment variables\n- Update regularly for latest features and security fixes\n\n## Environment Variable Settings\n\n### Workers.dev Settings\n\nConfigure environment variables in Workers settings page\n![workers](image\u002Fimage-1.png)\n\n### Pages.dev Settings\n\nConfigure environment variables in Pages settings page\n![pages](image\u002Fimage-2.png)\n\n## Get Help\n\n- Telegram Group: [EDtunnel Group](https:\u002F\u002Ft.me\u002Fedtunnel)\n- GitHub Repository: [EDtunnel](https:\u002F\u002Fgithub.com\u002F6Kmfi6HP\u002FEDtunnel)\n- Issue Report: [Create New Issue](https:\u002F\u002Fgithub.com\u002F6Kmfi6HP\u002FEDtunnel\u002Fissues)\n- Feature Request: [Submit Request](https:\u002F\u002Fgithub.com\u002F6Kmfi6HP\u002FEDtunnel\u002Fdiscussions)\n\n## Contributing\n\nWelcome Pull Requests to improve the project! Please ensure:\n\n1. Code follows project standards\n2. Add necessary tests\n3. Update relevant documentation\n4. Clearly describe the reasons for changes\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details\n\n## Star History\n\n\u003Ca href=\"https:\u002F\u002Fstar-history.com\u002F#6Kmfi6HP\u002FEDtunnel&Date\">\n  \u003Cpicture>\n    \u003Csource media=\"(prefers-color-scheme: dark)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=6Kmfi6HP\u002FEDtunnel&type=Date&theme=dark\" \u002F>\n    \u003Csource media=\"(prefers-color-scheme: light)\" srcset=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=6Kmfi6HP\u002FEDtunnel&type=Date\" \u002F>\n    \u003Cimg alt=\"Star History Chart\" src=\"https:\u002F\u002Fapi.star-history.com\u002Fsvg?repos=6Kmfi6HP\u002FEDtunnel&type=Date\" \u002F>\n  \u003C\u002Fpicture>\n\u003C\u002Fa>\n","EDtunnel 是一个基于 Cloudflare Workers 和 Pages 的代理工具，支持多种协议和配置选项。其核心功能包括对 Cloudflare Workers 和 Pages 的部署支持、多 UUID 配置、自定义代理 IP 和端口、SOCKS5 和 HTTP 代理支持、Trojan 协议支持、VLESS 出站代理（全 UDP 支持）、多代理轮换及自动故障转移等。此外，它还提供了自动配置订阅链接以及 URL 查询参数配置覆盖等功能。此项目适用于需要通过 Cloudflare 网络进行安全访问的场景，如绕过地理限制或提高网络连接的安全性与稳定性。",2,"2026-06-11 03:43:17","high_star"]