Skip to content

🚀🚀🚀ETP(Easy Tunnel Proxy)是一个轻量级的高性能内网穿透应用,支持TCP、HTTP等协议,TLS 1.3安全加密传输协议,多客户端认证,支持Linux、macos、windows操作系统,兼容amd64和arm64架构以及支持SpringBoot生态集成,该应用用于将内网服务暴露到公网,供外部访问。

License

Notifications You must be signed in to change notification settings

xiaoniucode/etp

Repository files navigation

Logo
A lightweight NAT traversal reverse proxy application implemented with Netty.

✨ Introduction

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.

🌟 Features

  • 📡 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

🎨 Dashboard Screenshots

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.

Login
Login Page
Dashboard
Monitoring Dashboard
Client List
Client List
Add Mapping
Add Mapping
Mapping List
Mapping List
Traffic Statistics
Traffic Statistics

🚀 Quick Start

Download the appropriate release package for your operating system. The server is typically deployed on a machine with a public IP address.

🖥️ Server Setup

This demonstrates how to expose an internal MySQL service to the public network on port 3307 through simple configuration.

Edit the configuration file etps.toml and 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 system

Start 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 &

💻 Client etpc Configuration

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 configuration

Start 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.

Feedback

To report issues: issues

📈 Project Trends

Star History

About

🚀🚀🚀ETP(Easy Tunnel Proxy)是一个轻量级的高性能内网穿透应用,支持TCP、HTTP等协议,TLS 1.3安全加密传输协议,多客户端认证,支持Linux、macos、windows操作系统,兼容amd64和arm64架构以及支持SpringBoot生态集成,该应用用于将内网服务暴露到公网,供外部访问。

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published