跳到主要内容

Spring Boot 集成

etp 支持将客户端内嵌到 Spring Boot 应用中运行,只需引入 Maven/Gradle 依赖并配置,即可实现一键穿透,非常适用于临时调试、开发环境访问等场景。

环境要求

  • JDK 8+
  • Maven 或 Gradle

引入依赖

最新版本可从 Maven 中央仓库 中获取,目前支持 Spring Boot 2.x/3.x/4.x

<dependency>
<groupId>io.github.xiaoniucode</groupId>
<artifactId>etp-spring-boot-starter</artifactId>
<version>0.3.0</version>
</dependency>

快速开始

# application.yml
etp:
client:
enabled: true
server-addr: 127.0.0.1
auth:
token: your-token-here

控制台会输出远程访问地址相关信息。

完整配置案例

# application.yml
etp:
client:
enabled: true
server-addr: 127.0.0.1
auth:
token: your-token-here

connection:
retry:
initial-delay: 1
max-delay: 20
max-retries: 5

transport:
tls:
enabled: true
cert-file: classpath:cert/client.crt
key-file: classpath:cert/client.key
ca-file: classpath:cert/ca.crt
key-password:

proxy:
protocol: http
local-ip: 127.0.0.1
auto-domain: true
custom-domains:
- a.domain.com
- b.domain.com
sub-domains:
- sub1
- sub2

transport:
encrypt: true
multiplex: true

bandwidth:
limit-total: 100Mbps
limit-in: 50Mbps
limit-out: 50Mbps

basic-auth:
enabled: true
users:
- user: admin
pass: 123456
- user: guest
pass: 123456

access-control:
enabled: false
mode: allow
allow:
- 192.168.1.0/24
- 10.0.0.0/8
deny:
- 192.168.1.100/32

配置参数说明

基础配置

参数名类型默认值描述
etp.client.enabledBooleanfalse是否启用 ETP 代理
etp.client.server-addrString127.0.0.1代理服务通信地址
etp.client.server-portInteger9527代理服务通信端口

认证配置

参数名类型默认值描述
etp.client.auth.tokenString-访问令牌

连接配置

参数名类型默认值描述
etp.client.connection.retry.initial-delayInteger1初始重试延迟(秒)
etp.client.connection.retry.max-delayInteger20最大延迟时间(秒)
etp.client.connection.retry.max-retriesInteger5最大重试次数

TLS加密传输配置

参数名类型默认值描述
etp.client.transport.tls.enabledBooleantrue是否启用 TLS
etp.client.transport.tls.cert-fileString-客户端证书路径
etp.client.transport.tls.key-fileString-客户端私钥路径
etp.client.transport.tls.ca-fileString-CA 证书路径
etp.client.transport.tls.key-passwordString-私钥密码

代理配置

参数名类型默认值描述
etp.client.proxy.protocolStringhttp协议类型(http/tcp)
etp.client.proxy.local-ipString127.0.0.1内网服务地址
etp.client.proxy.remote-portInteger-TCP 远程端口,不填自动生成
etp.client.proxy.auto-domainBooleantrue是否自动分配域名
etp.client.proxy.custom-domainsList<String>-自定义域名列表
etp.client.proxy.sub-domainsList<String>-子域名列表

自定义传输

参数名类型默认值描述
etp.client.proxy.transport.encryptBooleantrue是否启用加密
etp.client.proxy.transport.multiplexBooleantrue是否启用多路复用(共享隧道)

带宽限制配置

参数名类型默认值描述
etp.client.proxy.bandwidth.limit-totalString-总带宽限制
etp.client.proxy.bandwidth.limit-inString-入站带宽限制
etp.client.proxy.bandwidth.limit-outString-出站带宽限制

认证配置

参数名类型默认值描述
etp.client.proxy.basic-auth.enabledBooleanfalse是否启用 BasicAuth
etp.client.proxy.basic-auth.usersList-用户列表

访问控制配置

参数名类型默认值描述
etp.client.proxy.access-control.enabledBooleanfalse是否启用访问控制
etp.client.proxy.access-control.modeStringallow控制模式(allow/deny)
etp.client.proxy.access-control.allowSet<String>-白名单 IP 列表
etp.client.proxy.access-control.denySet<String>-黑名单 IP 列表

更多细节请参考使用手册