EDtunnel is a proxy tool based on Cloudflare Workers and Pages, supporting multiple protocols and configuration options.
- Support for Cloudflare Workers and Pages deployment
- Multiple UUID configuration support
- Custom proxy IP and port support
- SOCKS5 proxy support
- Automatic configuration subscription link
- URL query parameter configuration override support
- Simple and easy deployment process
-
Watch deployment tutorial video: YouTube Tutorial
-
Clone this repository and deploy in Cloudflare Pages
-
Copy
_worker.js
code from here -
Or click the button below to deploy directly:
Variable Name | Required | Example | Description |
---|---|---|---|
UUID |
No | Single: 12345678-1234-1234-1234-123456789012 Multiple: uuid1,uuid2,uuid3 |
User identification |
PROXYIP |
No | 1.1.1.1 or example.com Multiple: 1.1.1.1:9443,2.2.2.2:8443 |
Custom proxy IP and port |
SOCKS5 |
No | user:pass@host:port Multiple: user1:pass1@host1:port1,user2:pass2@host2:port2 |
SOCKS5 proxy configuration |
SOCKS5_RELAY |
No | true or false |
Enable SOCKS5 traffic relay |
You 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.
Query Parameter | Corresponding ENV | Example | Description |
---|---|---|---|
proxyip |
PROXYIP |
?proxyip=1.1.1.1:443 |
Override proxy IP and port |
socks5 |
SOCKS5 |
?socks5=user:pass@host:port |
Override SOCKS5 proxy configuration |
socks5_relay |
SOCKS5_RELAY |
?socks5_relay=true |
Override SOCKS5 relay setting |
Security Note: UUID must be set via environment variables or configuration files, not through URL parameters, to prevent unauthorized identity modifications.
-
Temporarily change proxy IP:
https://your-domain.workers.dev/?proxyip=another-proxy-ip:port
-
Combine multiple parameters:
https://your-domain.workers.dev/?proxyip=1.1.1.1:443&socks5_relay=true
-
Apply to specific paths:
https://your-domain.workers.dev/sub/your-uuid?proxyip=1.1.1.1:443
- Priority: URL parameters > Environment Variables > Default Values
- Temporary: These changes only apply to the current request and do not permanently modify configurations
- Combinable: Multiple parameters can be combined for complex configuration adjustments
- Use cases: Quick testing, temporary configuration switching, dynamic calls from third-party systems
- Ensure query parameters use the correct format:
?parameter=value
. The question mark?
should not be URL encoded (%3F
). - If you see URLs like
/%3Fproxyip=value
, this won't work correctly. Use/?proxyip=value
instead. - This project now supports handling query parameters encoded in the path, but using the standard format is recommended for best compatibility.
- Visit:
https://proxyip.edtunnel.best/
- Enter:
ProxyIP:proxyport
and click Check - When it shows
Proxy IP: true
, it’s available - Configure in Worker:
PROXYIP=211.230.110.231:50008
Note: Proxy IPs with ports may not work on HTTP-only Cloudflare sites.
Set in wrangler.toml
file (not recommended for public repositories)
[vars]
UUID = "your-uuid-here"
Set in Cloudflare Dashboard environment variables (recommended method)
All multiple configurations MUST use English comma (,) as separator, NOT Chinese comma (,)
✅ Correct Examples:
# Multiple UUIDs
UUID=uuid1,uuid2,uuid3
# Multiple SOCKS5 proxies
SOCKS5=192.168.1.1:1080,192.168.1.2:1080
# Multiple PROXYIP addresses
PROXYIP=1.1.1.1:443,2.2.2.2:443
❌ Wrong Examples:
# Wrong: Using Chinese comma
UUID=uuid1,uuid2,uuid3
# Wrong: Using Chinese comma
SOCKS5=192.168.1.1:1080,192.168.1.2:1080
Use the following link for auto configuration:
https://sub.xf.free.hr/auto
- Visit your domain:
https://your-domain.pages.dev
- Use specific UUID:
/sub/[uuid]
- View full configuration: visit domain root path
- Get subscription content: visit
/sub/[uuid]
You can configure multiple UUIDs in these ways:
-
Via environment variables:
UUID=uuid1,uuid2,uuid3
-
Via configuration file:
[vars] UUID = "uuid1,uuid2,uuid3"
Supported formats:
- Basic format:
host:port
- Authentication format:
username:password@host:port
- Multiple proxies (separated by English comma):
proxy1,proxy2,proxy3
- Single Proxy:
# Basic format
SOCKS5=192.168.1.1:1080
# With authentication
SOCKS5=user:pass@192.168.1.1:1080
- Multiple Proxies:
# Multiple basic proxies
SOCKS5=192.168.1.1:1080,192.168.1.2:1080,192.168.1.3:1080
# Multiple with authentication
SOCKS5=user1:pass1@host1:port1,user2:pass2@host2:port2
# Mixed format
SOCKS5=192.168.1.1:1080,user:pass@192.168.1.2:1080,192.168.1.3:1080
When multiple proxies are configured, the system will automatically perform load balancing:
- Random selection
- Automatic failover
- Support mixed authentication methods
Enable SOCKS5 global relay:
SOCKS5_RELAY=true
Notes:
- Ensure proxy servers are stable and available
- Recommend using private proxies for better security
- Use commas to separate multiple proxies
- Support dynamic proxy addition and removal
- Proxy IPs with ports may not work on HTTP-only Cloudflare sites
- Use commas to separate multiple UUIDs
- Recommend setting sensitive information via environment variables
- Update regularly for latest features and security fixes
Configure environment variables in the Workers settings page
Configure environment variables in the Pages settings page
- Telegram Group: EDtunnel Group
- Repository: EDtunnel
- Issue Report: Create New Issue
- Feature Request: Submit Request
Welcome Pull Requests to improve the project! Please ensure:
- Code follows project standards
- Add necessary tests
- Update relevant documentation
- Clearly describe the reasons for changes
This project is licensed under the MIT License - see the LICENSE file for details