106 lines
6.9 KiB
Plaintext
106 lines
6.9 KiB
Plaintext
[config]
|
||
APP_ENV=dev
|
||
# 应用运行环境;可选值通常为 dev、test、prod,prod 下应启用更严格的认证与日志策略。
|
||
LOG_LEVEL=debug
|
||
# 日志级别;建议值为 debug、info、warning、error,当前 MVP 预留该配置用于后续日志工厂。
|
||
AUDIT_LOG=runtime/audit.log
|
||
# 审计日志文件路径;建议使用 runtime/*.log,MVP 会按 JSON Lines 格式追加写入。
|
||
LAYLINK_FRAME_ENCRYPTION=none
|
||
# Agent 与 POP Server 之间 Frame 加密方式;可选 none、chacha20,两端必须一致。
|
||
LAYLINK_FRAME_ENCRYPTION_KEY=
|
||
# Frame 加密密钥;LAYLINK_FRAME_ENCRYPTION=chacha20 时必填。可填普通口令,或 hex:32字节十六进制,或 base64:32字节base64。
|
||
LAYLINK_DATA_CHUNK_BYTES=1048576
|
||
# TCP DATA 帧分片大小;单位字节。较大值可减少帧数量并提升吞吐,建议 262144、524288、1048576、2097152。
|
||
LAYLINK_MAX_SEND_BUFFER_BYTES=67108864
|
||
# 单连接发送缓冲区上限;单位字节。大文件下载建议 33554432 或 67108864,内存紧张时调小。
|
||
LAYLINK_BACKPRESSURE_HIGH_WATERMARK_BYTES=33554432
|
||
# 背压触发水位;单位字节。应小于 LAYLINK_MAX_SEND_BUFFER_BYTES,达到后会暂停上游读取直到缓冲排空。
|
||
|
||
[kcp]
|
||
LAYLINK_KCP_BACKEND=ffi
|
||
# KCP 实现后端;可选 ffi、php。ffi 使用 native ikcp.c 动态库,生产建议使用;php 是调试回退实现。
|
||
LAYLINK_KCP_FFI_LIB=native/kcp/liblaylink_kcp.so
|
||
# native KCP 动态库路径;LAYLINK_KCP_BACKEND=ffi 时使用。相对路径按项目根目录解析,先运行 scripts/build-kcp-ffi.sh 构建。
|
||
LAYLINK_KCP_NODELAY=1
|
||
# KCP nodelay 开关;1 更低延迟,0 更保守。拥堵明显时可保持 1 并调大 interval 或关闭 nc。
|
||
LAYLINK_KCP_INTERVAL_MS=10
|
||
# KCP 内部 update 间隔;单位毫秒。常用 10、20、30,越小越低延迟但 CPU/发包更高。
|
||
LAYLINK_KCP_FAST_RESEND=2
|
||
# KCP 快速重传阈值;0 关闭,2 是常见低延迟设置,丢包网络可尝试 2-4。
|
||
LAYLINK_KCP_NO_CONGESTION_CONTROL=1
|
||
# 是否关闭 KCP 拥塞控制;1 为高吞吐模式,接近早期 100Mbps 默认值;丢包/拥堵明显时改 0。
|
||
LAYLINK_KCP_SEND_WINDOW=1024
|
||
# KCP 发送窗口;高吞吐建议 1024,保守可用 256 或 512。
|
||
LAYLINK_KCP_RECV_WINDOW=1024
|
||
# KCP 接收窗口;应不小于发送窗口,高吞吐建议 1024。
|
||
LAYLINK_KCP_MTU_BYTES=1350
|
||
# KCP MTU;高吞吐建议 1350,若公网链路分片/丢包明显则改 1200。
|
||
LAYLINK_KCP_TICK_MS=10
|
||
# PHP transport tick 间隔;单位毫秒。通常与 LAYLINK_KCP_INTERVAL_MS 一致。
|
||
LAYLINK_KCP_UDP_SEND_QUEUE_BYTES=67108864
|
||
# UDP EAGAIN 发送队列上限;单位字节。高吞吐建议 67108864,内存紧张或拥堵明显时调低。
|
||
LAYLINK_KCP_UDP_FLUSH_PACKETS=1024
|
||
# 每次 tick 最多刷出的 UDP packet 数;高吞吐建议 1024,拥堵时可调低到 256 或 128。
|
||
LAYLINK_KCP_OUTPUT_DRAIN_PACKETS=1024
|
||
# 每次从 native KCP 输出队列搬到 UDP 发送队列的最大 packet 数;高吞吐建议 1024,单连接影响事件循环时调低。
|
||
|
||
[client-agent]
|
||
NODE_ID=client-01
|
||
# 当前 Agent 的节点 ID;必须存在于 config/nodes.php,例如 client-01。
|
||
NODE_TYPE=client
|
||
# 当前 Agent 的节点类型;当前 MVP 使用 client,需与 config/nodes.php 中的 node_type 一致。
|
||
NODE_TOKEN=CHANGE_ME
|
||
# 当前 Agent 连接 POP Server 时使用的节点密钥;必须与 config/nodes.php 中对应节点的 token 一致。
|
||
NODE_ZONE=default
|
||
# 当前 Agent 所在逻辑区域;可按部署场景填写,例如 local、corp、restricted-a。
|
||
POP_SERVER_ADDRESS=tcp://127.0.0.1:9001
|
||
# Agent 出站连接 POP Server 的地址;格式为 tcp://host:port,例如 tcp://10.1.0.2:9001;AGENT_TRANSPORT_PROTOCOL=kcp 时会使用同一 host:port 的 UDP。
|
||
AGENT_TRANSPORT_PROTOCOL=tcp
|
||
# 当前 Agent 到 POP Server 使用的传输协议;可选值 tcp、udp、kcp;必须被 POP_ALLOWED_AGENT_TRANSPORTS 允许,当前可运行值为 tcp、kcp。
|
||
CLIENT_AGENT_POP_CONNECTIONS=1
|
||
# Client Agent 到 POP Server 的并行长连接数量;默认 1。提高到 2、4 可分摊多会话,当前 tcp/kcp 生效。
|
||
CLIENT_AGENT_AUTH_TOKEN=dev-token
|
||
# Client Agent 为 SOCKS5/HTTP 代理入口生成 OPEN 帧时使用的客户端认证 token;当前 MVP 默认 dev-token。
|
||
CLIENT_AGENT_USER_ID=admin
|
||
# Client Agent 为 SOCKS5/HTTP 代理入口生成 OPEN 帧时使用的默认用户 ID;需能匹配 config/policies.php。
|
||
CLIENT_AGENT_SOCKS5_ENABLED=true
|
||
# 是否启用 SOCKS5 本地入口;可选 true/false,适合只能配置 SOCKS5 代理的应用。
|
||
CLIENT_AGENT_SOCKS5_LISTEN_IP=127.0.0.1
|
||
# SOCKS5 本地入口监听 IP;默认 127.0.0.1 仅允许本机访问,如需局域网访问可改为 0.0.0.0。
|
||
CLIENT_AGENT_SOCKS5_LISTEN_PORT=1080
|
||
# SOCKS5 本地入口监听端口;常见值 1080。
|
||
CLIENT_AGENT_SOCKS5_UDP_LISTEN_IP=127.0.0.1
|
||
# SOCKS5 UDP ASSOCIATE 本地 UDP relay 监听 IP;默认 127.0.0.1。
|
||
CLIENT_AGENT_SOCKS5_UDP_LISTEN_PORT=1081
|
||
# SOCKS5 UDP ASSOCIATE 本地 UDP relay 监听端口;应用发起 UDP ASSOCIATE 后会收到该端口。
|
||
CLIENT_AGENT_SOCKS5_UDP_ADVERTISE_IP=127.0.0.1
|
||
# SOCKS5 UDP ASSOCIATE 返回给应用的 UDP relay IP;本机使用 127.0.0.1,局域网代理可改为 Client Agent 可达地址。
|
||
CLIENT_AGENT_SOCKS5_AUTH_MODE=no-auth
|
||
# SOCKS5 认证模式;可选 no-auth 或 userpass,userpass 使用 RFC1929 用户名/密码认证。
|
||
CLIENT_AGENT_SOCKS5_USERNAME=
|
||
# SOCKS5 用户名;仅当 CLIENT_AGENT_SOCKS5_AUTH_MODE=userpass 时使用。
|
||
CLIENT_AGENT_SOCKS5_PASSWORD=
|
||
# SOCKS5 密码;仅当 CLIENT_AGENT_SOCKS5_AUTH_MODE=userpass 时使用。
|
||
CLIENT_AGENT_HTTP_PROXY_ENABLED=false
|
||
# 是否启用 HTTP 代理本地入口;可选 true/false,支持 HTTP CONNECT 和普通 HTTP 绝对 URL 请求。
|
||
CLIENT_AGENT_HTTP_PROXY_LISTEN_IP=127.0.0.1
|
||
# HTTP 代理本地入口监听 IP;默认 127.0.0.1 仅允许本机访问。
|
||
CLIENT_AGENT_HTTP_PROXY_LISTEN_PORT=8080
|
||
# HTTP 代理本地入口监听端口;常见值 8080、7890。
|
||
CLIENT_AGENT_RAW_JSON_ENABLED=false
|
||
# 是否启用 raw-json 调试入口;可选 true/false,启用后客户端需先发送一行 JSON 请求。
|
||
CLIENT_AGENT_RAW_JSON_LISTEN_IP=127.0.0.1
|
||
# raw-json 调试入口监听 IP;默认 127.0.0.1。
|
||
CLIENT_AGENT_RAW_JSON_LISTEN_PORT=9000
|
||
# raw-json 调试入口监听端口;常见值 9000。
|
||
|
||
[pop-server]
|
||
POP_AGENT_LISTEN=0.0.0.0:9001
|
||
# POP Server 监听 Agent 长连接的地址;格式为 host:port,例如 0.0.0.0:9001 或 127.0.0.1:9001。
|
||
POP_ALLOWED_AGENT_TRANSPORTS=tcp,kcp
|
||
# POP Server 允许 Client Agent 使用的传输协议;可写逗号数组 tcp,kcp,也可写 JSON 数组 ["tcp","kcp"];当前已实现 tcp、kcp,udp 为预留实现。
|
||
POP_AGENT_TCP_WORKERS=1
|
||
# POP Server TCP Agent listener 的 worker 数量;TCP 模式可按 CPU 和并发提高到 2、4、8。只使用 KCP 时该值不影响 KCP。
|
||
POP_AGENT_KCP_WORKERS=1
|
||
# POP Server KCP/UDP Agent listener 的 worker 数量;当前必须为 1,因为 KCP 会话状态在单 worker 内维护,多 worker 会导致 UDP 包跨进程丢状态。
|