laylink/.env.example
2026-05-30 17:50:45 +08:00

106 lines
6.9 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

[config]
APP_ENV=dev
# 应用运行环境;可选值通常为 dev、test、prodprod 下应启用更严格的认证与日志策略。
LOG_LEVEL=debug
# 日志级别;建议值为 debug、info、warning、error当前 MVP 预留该配置用于后续日志工厂。
AUDIT_LOG=runtime/audit.log
# 审计日志文件路径;建议使用 runtime/*.logMVP 会按 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=0
# 是否关闭 KCP 拥塞控制0 开启拥塞控制更稳1 更激进但容易挤爆 UDP 发送缓冲。
LAYLINK_KCP_SEND_WINDOW=256
# KCP 发送窗口;越大吞吐潜力越高但更容易拥堵,常用 128、256、512、1024。
LAYLINK_KCP_RECV_WINDOW=512
# KCP 接收窗口;应不小于发送窗口,常用 256、512、1024。
LAYLINK_KCP_MTU_BYTES=1200
# KCP MTU建议 1200 避免公网路径分片,内网可尝试 1350。
LAYLINK_KCP_TICK_MS=10
# PHP transport tick 间隔;单位毫秒。通常与 LAYLINK_KCP_INTERVAL_MS 一致。
LAYLINK_KCP_UDP_SEND_QUEUE_BYTES=16777216
# UDP EAGAIN 发送队列上限;单位字节。发送缓冲暂满时会排队重试,超过后关闭该 KCP 会话。
LAYLINK_KCP_UDP_FLUSH_PACKETS=256
# 每次 tick 最多刷出的 UDP packet 数;拥堵时可调低到 64 或 128追求吞吐可调高。
LAYLINK_KCP_OUTPUT_DRAIN_PACKETS=256
# 每次从 native KCP 输出队列搬到 UDP 发送队列的最大 packet 数;调低可减少单个大下载占用事件循环时间。
[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:9001AGENT_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 或 userpassuserpass 使用 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、kcpudp 为预留实现。
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 包跨进程丢状态。