etp (Easy Tunnel Proxy) is a lightweight, high-performance reverse proxy application for NAT traversal. It supports TCP, HTTP and upper-layer TCP protocols, as well as efficient and secure TLS 1.3 encryption. Both pure Toml static configuration and dynamic configuration via management interface are supported. etp enables rapid exposure of internal network services to the public internet, making them accessible for public users and development/testing purposes, while reducing the cost of purchasing public cloud servers.
- 📡 Supports TCP and HTTP protocols
- 🔐 Utilizes efficient and secure TLS 1.3 encryption
- 🍃 Seamlessly integrates with the Spring Boot & Cloud ecosystem
- 🖥️ Intuitive management UI for configuration
- 🛜 High-performance, low-latency data transfer
- 🚀 Millisecond-level startup
- 🔗 Automatic reconnection
- 🔐 Authentication
- 🐒 Supports multiple clients
- 🧿 Automatic port allocation for mapping
- 📄 Supports pure Toml configuration and web UI configuration
- 📺 Cross-platform, compatible with arm64 and amd64 architectures
- 💨 Lightweight with low resource consumption
In addition to supporting pure Toml static configuration, etp also provides a graphical management interface for easy operation. This greatly reduces management and usage costs while offering more comprehensive features.
Download the appropriate release package for your operating system. The server is typically deployed on a machine with a public IP address.
This demonstrates how to expose an internal MySQL service to the public network on port 3307 through simple configuration.
Edit the configuration file
etps.tomland add the following content:
bindPort = 9527
[[clients]]
name = "Mac" # [Required] Custom client name
secretKey = "your client authentication key" # [Required] Custom key
[[clients.proxies]]
name = "mysql" # Service name
type = "tcp" # [Required] Network transport protocol
localPort = 3306 # [Required] Internal service port
remotePort = 3307 # [Optional] Public service port; if not specified, a port will be randomly assigned by the systemStart the etp server on a Linux server. For external access, make sure to deploy it on a machine with a public IP address.
nohup ./etps -c etps.toml > /dev/null 2>&1 &Edit the configuration file
etpc.toml:
serverAddr = "x.x.x.x" # IP address of the server where etps is deployed
serverPort = 9527 # bindPort port of the server
secretKey = "your client authentication key" # Must match the server configurationStart the client on an internal computer (Unix example):
./etpc -c etpc.toml # Or run in the background: nohup ./etpc -c etpc.toml > /dev/null 2>&1 &🔔 Note: If the configuration file and executable are in the same folder, you do not need to use -c to specify the configuration.
After a successful startup, connect to MySQL using port 3307.
To report issues: issues






