Tunnel System V4 - Cloudflare Workers based tunnel system
Project description
Tunnel V4
A modern tunnel system built on Cloudflare Workers and Durable Objects.
Features
- 🚀 Remote Terminal - SSH-like terminal access to your servers
- 📡 SOCKS5 Proxy - Secure proxy through your nodes
- ⚡ Command Execution - Run commands remotely
- 🔒 Secure - End-to-end encrypted connections
- 🌍 Global - Powered by Cloudflare's edge network
Installation
pip install mp-tunnel
Quick Start
Start Agent on Your Server
# Basic usage
tunnel agent --id my-server @all
# With custom tags
tunnel agent --id my-server --tags env=prod,region=us @all
# Specific services only
tunnel agent --id my-server @term @socks5
Use CLI to Connect
# List nodes
tunnel list
# Remote terminal
tunnel term --node my-server
# Execute command
tunnel exec --node my-server "uptime"
# SOCKS5 proxy
tunnel socks5 --node my-server --port 1080
Configuration
Environment Variables
TUNNEL_WORKER_URL- Override default Worker URLTUNNEL_ENV- Environment (dev/prod)TUNNEL_DEBUG- Enable debug logging
Custom Worker URL
export TUNNEL_WORKER_URL="wss://your-worker.workers.dev"
tunnel agent --id my-server @all
Services
Built-in Services
@all- All services (exec, term, socks5)@exec- Remote command execution@term- Remote terminal@socks5- SOCKS5 proxy
Port Forwarding
# Forward local HTTP service
tunnel agent --id my-server myapi:8080:http
# Forward local TCP service
tunnel agent --id my-server mysql:3306:tcp
HTTP Forward (支持 HTTP 和 WebSocket)
HTTP forward 类型统一支持 HTTP 请求和 WebSocket 升级:
# 启动 Agent,转发本地 HTTP/WebSocket 服务
tunnel agent --id my-server myservice:8080:http
访问方式:
- 子域名模式:
https://myservice-tun.your-domain.com/path - 路径模式:
https://your-domain.com/http/myservice/path
本地地址自动替换:
对于返回本地地址的服务(如 Chrome DevTools Protocol),Agent 会自动将 JSON 响应中的 127.0.0.1:port 替换为占位符,Worker 再替换为公网域名。
示例 - 连接远程 CDP 浏览器:
from playwright.sync_api import sync_playwright
# 启动 Agent: tunnel agent --id browser orbita:9222:http
with sync_playwright() as p:
# 使用 https:// (Playwright 会自动获取 /json/version)
browser = p.chromium.connect_over_cdp("https://orbita-tun.your-domain.com")
page = browser.new_page()
page.goto("https://example.com")
browser.close()
Development
# Clone repository
git clone https://github.com/yourusername/tunnel-v4.git
cd tunnel-v4
# Install in development mode
export TUNNEL_DEV=1
pip install -e .
# Run agent (development uses tunnel4 command)
tunnel4 agent --id test @all
License
MIT License
Links
- Documentation: https://github.com/yourusername/tunnel-v4/docs
- Issues: https://github.com/yourusername/tunnel-v4/issues
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mp_tunnel-4.0.26.tar.gz.
File metadata
- Download URL: mp_tunnel-4.0.26.tar.gz
- Upload date:
- Size: 44.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca63e1d2c89bc1e12fb2e8850b5685b1a122b8bd309a321d7533476907874d67
|
|
| MD5 |
d1c8a8eb48c26262c4ff99862c397aa0
|
|
| BLAKE2b-256 |
c834a75e9c6283ed86b8251f4fae4d9564317e471a19581666ac95413606ffee
|
File details
Details for the file mp_tunnel-4.0.26-py3-none-any.whl.
File metadata
- Download URL: mp_tunnel-4.0.26-py3-none-any.whl
- Upload date:
- Size: 58.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
359ed6fc25877f44f37080c8b53a80498acc3edcc591ff714f866bb5c29dde12
|
|
| MD5 |
77e721cefba453158d413e8b82ed836a
|
|
| BLAKE2b-256 |
c024734c58593cbf198e2c8c0df9c47bb7aeb06dd5dd6b7390424f176b8a6fbd
|