forked from jasonwong1991/easy_proxies
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathconfig.example.yaml
More file actions
177 lines (158 loc) · 12.5 KB
/
Copy pathconfig.example.yaml
File metadata and controls
177 lines (158 loc) · 12.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
# ═══════════════════════════════════════════════════════════════
# Easy Proxies 完整配置文件
# ═══════════════════════════════════════════════════════════════
# ───────────────────────────────────────────────────────────────
# 运行模式
# ───────────────────────────────────────────────────────────────
# pool: 单端口代理池,所有节点共享一个端口,自动负载均衡
# multi-port: 多端口模式,每个节点独立端口
# hybrid: 混合模式,同时启用 pool + multi-port
mode: pool
# 日志级别: debug, info, warn, error
log_level: info
# ───────────────────────────────────────────────────────────────
# 日志轮转配置
# ───────────────────────────────────────────────────────────────
# output: "stdout"(仅控制台)或 "file"(控制台+文件轮转),默认 stdout
# file: 日志文件路径,默认 logs/easy_proxies.log
# max_size: 单个日志文件最大 MB,超出后自动轮转,默认 50
# max_backups: 保留旧日志文件个数,默认 3
# max_age: 保留旧日志文件天数,默认 7
# compress: 是否压缩轮转后的旧日志,默认 false
log:
output: stdout
file: logs/easy_proxies.log
max_size: 50
max_backups: 3
max_age: 7
compress: false
# 全局跳过 SSL 证书验证(默认 false,不建议在生产环境启用)
skip_cert_verify: false
# 外部 IP 地址,用于导出配置时替换 0.0.0.0(可选)
# external_ip: "your.public.ip"
# ───────────────────────────────────────────────────────────────
# 监听配置(Pool 模式入口,支持 HTTP/SOCKS5)
# ───────────────────────────────────────────────────────────────
listener:
address: 0.0.0.0 # 监听地址
port: 2323 # 监听端口
username: username # 代理认证用户名
password: password # 代理认证密码
# ───────────────────────────────────────────────────────────────
# 代理池配置
# ───────────────────────────────────────────────────────────────
pool:
# 调度模式: sequential(顺序), random(随机), balance(均衡), latency(最低延迟)
mode: sequential
# 连续失败多少次后加入黑名单
failure_threshold: 3
# 黑名单持续时间(建议 1h-6h,默认 24h 可能过长)
# 节点被黑名单后将完全不可用,直到时间到期或手动释放
# 可通过 WebUI 或 API 手动释放:POST /api/nodes/{tag}/release
blacklist_duration: 24h
# 是否启用代理重试:节点拨号失败后自动切换下一个节点重试
# 多端口模式下池只有 1 个成员,重试会再次拨同一节点
retry_enabled: true
# 重试次数(包含首次拨号),默认 3
retry_attempts: 3
# ───────────────────────────────────────────────────────────────
# 粘性代理配置(可选,仅 pool / hybrid 模式生效)
# ───────────────────────────────────────────────────────────────
# 开启后会额外监听一个独立端口(默认 listener.port + 1,即 2324)。
# 通过该端口接入的客户端会按「来源 IP」固定绑定到同一个上游节点,
# 从而保持出口 IP 稳定(避免轮询导致 IP 频繁跳变触发风控/掉登录态)。
# 绑定为永久保持,仅当该节点被拉黑/移除时才会重新选择节点。
# 监听地址与认证复用 listener 配置。原 2323 端口(非粘性)不受影响,二者共存。
sticky:
enabled: false # 是否启用粘性代理端口
port: 2324 # 粘性端口(留空或 0 则默认为 listener.port + 1)
# ───────────────────────────────────────────────────────────────
# 多端口模式配置(multi-port / hybrid 模式使用)
# ───────────────────────────────────────────────────────────────
multi_port:
address: 0.0.0.0 # 监听地址
base_port: 24000 # 起始端口号
username: mpuser # 默认认证用户名
password: mppass # 默认认证密码
# ───────────────────────────────────────────────────────────────
# 管理面板配置
# ───────────────────────────────────────────────────────────────
management:
enabled: true # 是否启用管理面板
listen: 0.0.0.0:9091 # 监听地址
probe_target: http://cp.cloudflare.com/generate_204 # 健康检查目标
password: "" # WebUI 访问密码,为空则不需要密码
# ───────────────────────────────────────────────────────────────
# DNS 配置(用于节点域名解析,尤其是 VMess)
# ───────────────────────────────────────────────────────────────
dns:
server: 223.5.5.5 # DNS 服务器地址
fallback_servers: # DNS 解析失败时的备用服务器(主 DNS 为国内 DNS 时自动添加)
- 8.8.8.8 # Google DNS
- 1.1.1.1 # Cloudflare DNS
port: 53 # DNS 端口
strategy: prefer_ipv4 # as_is / prefer_ipv4 / prefer_ipv6 / ipv4_only / ipv6_only
# ───────────────────────────────────────────────────────────────
# GeoIP 地域分区配置(可选)
# ───────────────────────────────────────────────────────────────
# 启用后会为节点打上地域标签(jp/kr/us/hk/tw/other),用于 WebUI 统计和筛选。
geoip:
enabled: true # 是否启用 GeoIP 地域标记
database_path: "./GeoLite2-Country.mmdb" # GeoIP 数据库路径(首次启动时自动下载)
auto_update_enabled: true # 是否启用自动更新数据库(推荐)
auto_update_interval: 24h # 自动更新间隔(默认 24 小时)
# 注意:
# - 首次启动会自动从 GitHub 下载 GeoIP 数据库(约 9MB)
# - 启用 auto_update_enabled 后,数据库会定期自动更新,无需重启容器
# - 更新过程采用热重载,不会中断现有连接
# ───────────────────────────────────────────────────────────────
# 订阅自动刷新配置(可选)
# ───────────────────────────────────────────────────────────────
# subscription_refresh:
# enabled: false # 是否启用定时刷新
# interval: 1h # 刷新间隔(默认 1 小时)
# timeout: 30s # 获取订阅的超时时间
# fetch_concurrency: 16 # 订阅抓取并发数(默认 16,最大 32)
# health_check_timeout: 60s # 新节点健康检查超时
# drain_timeout: 30s # 旧实例排空超时时间
# min_available_nodes: 1 # 最少可用节点数,低于此值不切换
# ═══════════════════════════════════════════════════════════════
# 节点配置方式(三选一或混合使用)
# ═══════════════════════════════════════════════════════════════
# ───────────────────────────────────────────────────────────────
# 方式 1: 订阅链接(推荐,自动获取并写入 nodes.txt)
# ───────────────────────────────────────────────────────────────
# subscriptions:
# - "https://example.com/subscribe?token=xxx"
# - "https://another.com/api/v1/client/subscribe?token=yyy"
# ───────────────────────────────────────────────────────────────
# 方式 2: 节点文件(每行一个代理 URI)
# ───────────────────────────────────────────────────────────────
# nodes_file: nodes.txt
# ───────────────────────────────────────────────────────────────
# 方式 3: 直接在配置文件中配置节点
# ───────────────────────────────────────────────────────────────
nodes:
# 最简配置:只需 URI,名称从 # 后自动提取
- uri: "vless://uuid@server:443?security=tls&type=ws&path=/path#节点名称"
# 完整配置:手动指定名称和端口
# - name: "自定义名称"
# uri: "ss://base64@server:8388"
# port: 24001 # 手动指定端口(multi-port/hybrid 模式)
# username: "custom_user" # 覆盖默认认证(可选)
# password: "custom_pass"
# ───────────────────────────────────────────────────────────────
# 支持的代理协议
# ───────────────────────────────────────────────────────────────
# - VMess: vmess://base64_encoded_json
# - VLESS: vless://uuid@server:port?params#name
# - Trojan: trojan://password@server:port?params#name
# - SS: ss://method:password@server:port#name
# ss://base64(method:password)@server:port#name
# ss://base64(method:password@server:port)#name
# - Hysteria2: hy2://password@server:port?params#name
# - SOCKS5: socks5://[user:pass@]server:port#name
# - HTTP: http://[user:pass@]server:port#name
# https://[user:pass@]server:port#name
# 注意:解析器可识别部分额外协议前缀(如 ssr://、hysteria://),
# 但当前内核实际构建仅支持以上 7 类,其他会被跳过并输出日志。