π Production-ready VLESS proxy server deployed on Cloudflare Workers with comprehensive features:
- β Multi-UUID Support - Support multiple users with different UUIDs
- β Global ProxyIP - 18+ global proxy IPs for bypassing restrictions
- β Auto Subscription - Standard subscription format for all clients
- β Best IP Testing - Built-in latency testing for optimal performance
- β Modern UI - Beautiful responsive web interface
- β Zero Config - Deploy and use immediately
- VLESS Protocol: Full support for VLESS over WebSocket + TLS
- Multi-UUID: Support multiple users with individual UUIDs
- Auto-Subscription: Standard base64 subscription for all clients
- ProxyIP Rotation: 18+ global proxy IPs with automatic selection
- Smart Routing: Intelligent routing with fallback mechanisms
- Global CDN: Powered by Cloudflare's 200+ data centers
- TLS 1.3: Latest encryption with perfect forward secrecy
- WebSocket: Optimized WebSocket transport with path customization
- DNS over HTTPS: Built-in secure DNS resolution
- IPv4/IPv6: Full dual-stack support
| Client | Android | iOS | Windows | macOS | Linux |
|---|---|---|---|---|---|
| v2rayNG | β | - | - | - | - |
| v2rayN | - | - | β | - | β |
| Shadowrocket | - | β | - | - | - |
| Quantumult X | - | β | - | - | - |
| Clash | β | β | β | β | β |
| Surge | - | β | - | β | - |
- Responsive Design: Works perfectly on all devices
- Real-time Stats: Live connection and performance statistics
- Best IP Testing: Built-in latency tester for optimal node selection
- One-Click Copy: Easy configuration copying with visual feedback
- Multi-language: Support for multiple languages
- Click the Deploy button above
- Login to Cloudflare
- Deploy to Workers
- Access your worker URL
- Copy VLESS link to your client
# Clone repository
git clone https://github.com/yourusername/vless-worker.git
cd vless-worker
# Deploy to Cloudflare Workers
npx wrangler deploy
# Your worker is ready at:
# https://vless-worker.your-username.workers.devEdit the UUIDs in _worker.js:
const userIDs = [
'd342d11e-d424-4583-b36e-524ab1f0afa4', // User 1
'e9e3cc13-db48-4cc1-8c24-7626439a5339', // User 2
'f47ac10b-58cc-4372-a567-0e02b2c3d479' // User 3
];# Linux/Mac
uuidgen
# Windows PowerShell
[System.Guid]::NewGuid()
# Online Generator
https://www.uuidgenerator.net/- Go to Cloudflare Workers Dashboard
- Select your worker β Settings β Triggers
- Add Custom Domain
- Enter your domain/subdomain
- Update client configurations
- Open worker URL in browser
- Copy the VLESS link
- Open v2rayNG β + β Import config from Clipboard
- Copy subscription link from worker homepage
- v2rayNG β β° β Subscription setting β +
- Add subscription URL:
https://your-worker-domain.com/sub - Update subscription
- Address:
your-worker-domain.com - Port:
443 - UUID:
your-uuid-from-worker - Security:
TLS - Network:
ws - Path:
/?ed=2048 - Host:
your-worker-domain.com
proxies:
- name: "π©CF-Worker"
type: vless
server: your-worker-domain.com
port: 443
uuid: your-uuid-here
network: ws
tls: true
udp: true
ws-opts:
path: "/?ed=2048"
headers:
Host: your-worker-domain.com[Proxy]
π©CF-Worker = vless, your-worker-domain.com, 443, username=your-uuid-here, ws=true, ws-path=/?ed=2048, ws-headers=Host:your-worker-domain.com, tls=true, sni=your-worker-domain.com| Endpoint | Description | Response |
|---|---|---|
/ |
Main homepage with configuration | HTML |
/sub |
Subscription for all clients | Base64 encoded configs |
/bestip |
Best IP testing tool | HTML interface |
/{uuid} |
Single VLESS configuration | Plain text |
/{uuid}/ty |
Config with traffic info | With subscription headers |
The worker includes 18+ global proxy IPs for optimal performance:
// CDN Endpoints
'cdn.xn--b6gac.eu.org'
'cdn-all.xn--b6gac.eu.org'
'workers.cloudflare.cyou'
// Visa Global Network
'www.visa.com'
'www.visa.com.sg'
'www.visa.com.hk'
'www.visa.co.jp'
// ... and moreThese IPs help bypass ISP restrictions and improve connection stability.
- Access
/bestipon your worker domain - Test latency to all proxy IPs
- Choose the fastest IPs for your location
- Real-time ping testing with visual results
- Support up to unlimited users with different UUIDs
- Each user gets individual configuration
- Automatic load balancing across proxy IPs
- Individual traffic statistics (coming soon)
- Automatic failover between proxy IPs
- DNS over HTTPS for blocked regions
- Multiple port support (80, 443, 8080, etc.)
- Protocol detection and optimization
- Global Latency: < 50ms (varies by location)
- Throughput: Up to 1Gbps per connection
- Uptime: 99.9% (Cloudflare SLA)
- Concurrent Connections: 1000+ per worker
- Geographic Coverage: 200+ cities worldwide
- Transport: TLS 1.3 with AEAD encryption
- Application: VLESS protocol with UUID authentication
- DNS: DNS over HTTPS (DoH) to 1.1.1.1
- Headers: Custom headers for traffic camouflage
- No Logging: Zero logging policy
- No Personal Data: Only UUID for authentication
- Traffic Encryption: End-to-end encryption
- Geographic Routing: No traffic inspection
- Check if UUID matches exactly
- Verify domain name spelling
- Try different ProxyIPs from
/bestip - Check if client supports VLESS
- Ensure UUID format is correct (8-4-4-4-12)
- Copy UUID exactly from worker homepage
- Regenerate UUID if necessary
- Verify path is
/?ed=2048 - Enable TLS in client settings
- Check Host header matches domain
- Try port 80 for restricted networks
- Use custom domain instead of
.workers.dev - Check if domain is blocked in your region
- Try different DNS servers (1.1.1.1, 8.8.8.8)
- Use
/bestipto find fastest ProxyIP - Try different global proxy IPs
- Check if your ISP throttles international traffic
- Test at different times of day
- Select ProxyIP closest to your location
- Avoid
.workers.devdomains in some regions - Use custom domain for better routing
- Real-time requests and errors
- Performance metrics and logs
- Traffic analysis and patterns
- Alert configuration for downtime
- Monitor subscription update frequency
- Check error rates in dashboard
- Set up alerts for unusual traffic
- Regular UUID rotation for security
- ProxyIP lists auto-refresh
- Cloudflare Workers auto-update
- Global CDN optimization
- Security patches applied automatically
- UUID rotation (recommended monthly)
- ProxyIP optimization based on performance
- Custom domain SSL certificate renewal
- Worker configuration updates
We welcome contributions! Please read our contributing guidelines:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
# Clone and setup
git clone https://github.com/yourusername/vless-worker.git
cd vless-worker
npm install
# Local development
npx wrangler dev
# Deploy to staging
npx wrangler deploy --env stagingThis project is licensed under the MIT License - see LICENSE for details.
- Cloudflare Workers - Serverless edge computing
- VLESS Protocol - Modern proxy protocol
- v2rayNG - Android client
- Community contributors and beta testers
- π Bug Reports: GitHub Issues
- π¬ Discussions: GitHub Discussions
- π Documentation: Wiki
- π Help: Telegram Group
**Traffic Info**: Upload/download statistics in subscription
-
Clone Repository
git clone https://github.com/yourusername/vless-worker.git cd vless-worker -
Login to Cloudflare
npx wrangler login
-
Deploy Worker
npx wrangler deploy
-
Access Your Worker
https://your-worker.your-username.workers.dev
Edit the CONFIG object in _worker.js:
const CONFIG = {
// Auto-generate UUID (set 'auto') or use custom UUID
uuid: 'auto',
// Primary proxy IP for bypassing restrictions
proxyIP: 'cdn.xn--b6gac.eu.org',
// API configuration
api: {
enabled: true,
token: 'your-secret-api-token-here' // β οΈ Change this!
},
// Custom paths
vless: {
path: '/vless' // VLESS WebSocket path
},
subscription: {
path: '/sub' // Subscription path
}
};Set these in Cloudflare Workers dashboard:
API_TOKEN=your-secret-api-token
CUSTOM_UUID=your-custom-uuid-here
PROXY_IP=your-preferred-proxy-ip- Copy the VLESS URL from your worker homepage
- Open v2rayNG β + β Import config from Clipboard
- Open v2rayNG β + β Manually input
- Fill in the details:
- Remarks: Your-Worker-Name
- Address: your-worker.your-username.workers.dev
- Port: 443
- UUID: (from worker homepage)
- Security: TLS
- Network: ws (WebSocket)
- Path: /vless
- Host: your-worker.your-username.workers.dev
- Open v2rayNG β β° β Subscription setting
- + β Add subscription
- Remarks: Your-Subscription-Name
- URL: https://your-worker.your-username.workers.dev/sub
- Update β Select subscription β Update
Add to your config.yaml:
proxies:
- name: "VLESS-Worker"
type: vless
server: your-worker.your-username.workers.dev
port: 443
uuid: your-uuid-here
network: ws
tls: true
ws-opts:
path: /vless
headers:
Host: your-worker.your-username.workers.devAdd to Surge configuration:
[Proxy]
VLESS-Worker = vless, your-worker.your-username.workers.dev, 443, username=your-uuid-here, ws=true, ws-path=/vless, ws-headers=Host:your-worker.your-username.workers.dev, tls=true, sni=your-worker.your-username.workers.devAll API endpoints require authentication:
# Method 1: Query parameter
curl "https://your-worker.your-username.workers.dev/api/info?token=your-api-token"
# Method 2: Authorization header
curl -H "Authorization: Bearer your-api-token" "https://your-worker.your-username.workers.dev/api/info"Get worker information and status
curl "https://your-worker.your-username.workers.dev/api/info?token=your-token"Response:
{
"status": "online",
"version": "2.0.0",
"hostname": "your-worker.your-username.workers.dev",
"uuid": "12345678-1234-4567-8901-123456789abc",
"timestamp": "2024-01-01T00:00:00.000Z",
"features": {
"vless": true,
"subscription": true,
"proxyIP": true,
"multiUUID": true
}
}Get VLESS configuration
curl "https://your-worker.your-username.workers.dev/api/config?token=your-token"Response:
{
"server": "your-worker.your-username.workers.dev",
"port": 443,
"uuid": "12345678-1234-4567-8901-123456789abc",
"encryption": "none",
"network": "ws",
"path": "/vless",
"security": "tls",
"url": "vless://12345678-1234-4567-8901-123456789abc@your-worker.your-username.workers.dev:443?encryption=none&security=tls&type=ws&host=your-worker.your-username.workers.dev&path=%2Fvless&sni=your-worker.your-username.workers.dev#VLESS-your-worker.your-username.workers.dev"
}Get usage statistics
curl "https://your-worker.your-username.workers.dev/api/stats?token=your-token"Response:
{
"connections": 42,
"uptime": 1640995200,
"traffic": {
"upload": 1073741824,
"download": 2147483648
},
"nodes": 8
}Get proxy node information
curl "https://your-worker.your-username.workers.dev/api/nodes?token=your-token"Response:
{
"total": 8,
"nodes": [
{
"id": 1,
"address": "cdn.xn--b6gac.eu.org",
"status": "online",
"ping": 25,
"country": "SG"
}
]
}Add ?proxyip=your-proxy-ip to your VLESS URL:
vless://uuid@worker-domain:443?proxyip=custom-proxy.com&...
The subscription endpoint automatically generates multiple configurations with different proxy IPs for redundancy.
- Go to Cloudflare Workers dashboard
- Select your worker
- Settings β Triggers β Add Custom Domain
- Enter your domain/subdomain
- Update client configurations with your custom domain
- Change API Token: Always change the default API token
- Custom UUID: Consider using a custom UUID instead of auto-generated
- Custom Paths: Change default paths (
/vless,/sub) for better security - Monitor Usage: Regularly check API statistics for unusual activity
- Rotate Tokens: Periodically rotate your API tokens
- TLS Encryption: All connections are encrypted with TLS
- Token Authentication: API endpoints are protected with token auth
- UUID Validation: Only valid UUIDs are accepted
- Rate Limiting: Built-in Cloudflare rate limiting
- DDoS Protection: Cloudflare's DDoS protection
- Monitor requests, errors, and performance in Cloudflare Workers dashboard
- Set up alerts for errors or unusual traffic patterns
- Use the
/api/statsendpoint to track usage - Monitor connection counts and traffic patterns
- Set up automated monitoring scripts
- Check Real-time Logs in Cloudflare Workers dashboard
- Monitor WebSocket connections and errors
- Track API usage and authentication attempts
Solution: Check that your UUID matches the one shown on the worker homepage
Solutions:
- Ensure you're using
wss://(secure WebSocket) - Check if the path is correct (
/vless) - Verify TLS is enabled in client
Solutions:
- Try different proxy IPs from the
/api/nodesendpoint - Check if your ISP blocks the worker domain
- Use a custom domain if available
Solutions:
- Delete and re-add the subscription
- Check subscription URL is correct
- Ensure internet connection is stable
Enable debug logging by adding to your worker:
console.log('Debug info:', {
pathname: url.pathname,
headers: Object.fromEntries(request.headers),
method: request.method
});- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
# Clone repository
git clone https://github.com/yourusername/vless-worker.git
cd vless-worker
# Install dependencies
npm install
# Start development server
npx wrangler dev
# Deploy to staging
npx wrangler deploy --env stagingThis project is licensed under the MIT License - see the LICENSE file for details.
- Cloudflare Workers - Serverless platform
- VLESS Protocol - Modern proxy protocol
- v2rayNG - Android client
- Community contributors and testers
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: Wiki
β Star this repository if it helps you!
Made with β€οΈ for the community