Spring Boot 集成
etp 支持将客户端内嵌到 Spring Boot 应用中运行,只需引入 Maven/Gradle 依赖并配置,即可实现一键穿透,非常适用于临时调试、开发环境访问等场景。
环境要求
- JDK 8+
- Maven 或 Gradle
引入依赖
最新版本可从 Maven 中央仓库 中获取,目前支持 Spring Boot 2.x/3.x/4.x。
- Maven
- Gradle
<dependency>
<groupId>io.github.xiaoniucode</groupId>
<artifactId>etp-spring-boot-starter</artifactId>
<version>0.3.0</version>
</dependency>
implementation("io.github.xiaoniucode:etp-spring-boot-starter:0.3.0")
快速开始
# 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.enabled | Boolean | false | 是否启用 ETP 代理 |
| etp.client.server-addr | String | 127.0.0.1 | 代理服务通信地址 |
| etp.client.server-port | Integer | 9527 | 代理服务通信端口 |
认证配置
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| etp.client.auth.token | String | - | 访问令牌 |
连接配置
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| etp.client.connection.retry.initial-delay | Integer | 1 | 初始重试延迟(秒) |
| etp.client.connection.retry.max-delay | Integer | 20 | 最大延迟时间(秒) |
| etp.client.connection.retry.max-retries | Integer | 5 | 最大重试次数 |
TLS加密传输配置
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| etp.client.transport.tls.enabled | Boolean | true | 是否启用 TLS |
| etp.client.transport.tls.cert-file | String | - | 客户端证书路径 |
| etp.client.transport.tls.key-file | String | - | 客户端私钥路径 |
| etp.client.transport.tls.ca-file | String | - | CA 证书路径 |
| etp.client.transport.tls.key-password | String | - | 私钥密码 |
代理配置
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| etp.client.proxy.protocol | String | http | 协议类型(http/tcp) |
| etp.client.proxy.local-ip | String | 127.0.0.1 | 内网服务地址 |
| etp.client.proxy.remote-port | Integer | - | TCP 远程端口,不填自动生成 |
| etp.client.proxy.auto-domain | Boolean | true | 是否自动分配域名 |
| etp.client.proxy.custom-domains | List<String> | - | 自定义域名列表 |
| etp.client.proxy.sub-domains | List<String> | - | 子域名列表 |
自定义传输
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| etp.client.proxy.transport.encrypt | Boolean | true | 是否启用加密 |
| etp.client.proxy.transport.multiplex | Boolean | true | 是否启用多路复用(共享隧道) |
带宽限制配置
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| etp.client.proxy.bandwidth.limit-total | String | - | 总带宽限制 |
| etp.client.proxy.bandwidth.limit-in | String | - | 入站带宽限制 |
| etp.client.proxy.bandwidth.limit-out | String | - | 出站带宽限制 |
认证配置
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| etp.client.proxy.basic-auth.enabled | Boolean | false | 是否启用 BasicAuth |
| etp.client.proxy.basic-auth.users | List | - | 用户列表 |
访问控制配置
| 参数名 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| etp.client.proxy.access-control.enabled | Boolean | false | 是否启用访问控制 |
| etp.client.proxy.access-control.mode | String | allow | 控制模式(allow/deny) |
| etp.client.proxy.access-control.allow | Set<String> | - | 白名单 IP 列表 |
| etp.client.proxy.access-control.deny | Set<String> | - | 黑名单 IP 列表 |
更多细节请参考使用手册