mirror of
https://github.com/EasyTier/easytier.github.io.git
synced 2026-10-20 18:14:36 +00:00
Adds previously-missing documentation for logging configuration (fixes #2498) and a couple of related fixes to the doc site. - **docs: expand logging settings section in configurations** — the page only listed the logging flags as a table without any explanation. Adds usage details: default behavior, `--console-log-level` / `ET_CONSOLE_LOG_LEVEL`, `RUST_LOG` per-target filters, enabling file logging with a non-`off` `--file-log-level` plus the optional `--file-log-dir`/`--file-log-size`/`--file-log-count` knobs, runtime adjustment via `easytier-cli logger`, and why logging is a process-level option that cannot go in the `-c` config file. Both zh and en. - **fix: dev-server white screen** — vite dev serves `node_modules` sources as-is unless prebundled; mermaid's named import from the pure-CJS `@braintree/sanitize-url` then fails in the browser and blanks the whole page. Add `optimizeDeps.include: ['mermaid']` so the dev server prebundles it (rollup build was already fine). - **docs(configurations): flatten section structure** — the single h2 "Basic Settings" wrapped every parameter group as h3, so the on-page outline only showed one entry. Promote each group to its own h2 and enable `outline: deep` so the logging sub-topics also appear. Both zh and en.
23 KiB
23 KiB
outline
| outline |
|---|
| deep |
完整配置选项
可使用 easytier-core --help 查看全部配置项。
配置服务器
| 参数 | 说明 |
|---|---|
-w, --config-server |
配置服务器地址。允许格式: |
- 完整URL:--config-server udp://127.0.0.1:22020/admin |
|
- 仅用户名:--config-server admin,将使用官方的服务器 |
|
| [env: ET_CONFIG_SERVER=] | |
--machine-id |
Web 配置服务器通过 machine id 来识别机器,用于断线重连后的配置恢复,需要保证唯一且固定不变。默认从系统获得。 [env: ET_MACHINE_ID=] |
-c, --config-file |
配置文件路径,注意:命令行中的配置的选项会覆盖配置文件中的选项 [env: ET_CONFIG_FILE=] |
--config-dir |
加载目录中的所有 .toml 文件以启动网络实例,并将下发的配置保存在此目录中。 [env: ET_CONFIG_DIR=] |
--disable-env-parsing |
禁用配置文件中的环境变量解析 [env: ET_DISABLE_ENV_PARSING=] |
网络设置
| 参数 | 说明 |
|---|---|
--network-name |
用于标识此VPN网络的网络名称 [env: ET_NETWORK_NAME=] |
--network-secret |
网络密钥,用于验证此节点属于VPN网络 [env: ET_NETWORK_SECRET=] |
--secure-mode |
启用 secure mode。开启后,节点会使用新的 Noise 安全握手与认证路径。默认值为 false,详见 Secure Mode(安全模式) [env: ET_SECURE_MODE=] |
--local-private-key |
secure mode 使用的本地静态私钥(base64)。未提供时会随机生成,仅适合当前运行实例;共享节点建议显式固定该值。 [env: ET_LOCAL_PRIVATE_KEY=] |
--local-public-key |
secure mode 使用的本地静态公钥(base64)。通常可省略,由私钥自动派生。 [env: ET_LOCAL_PUBLIC_KEY=] |
--credential |
临时凭据私钥(base64)。用于不分发 network_secret 的临时节点接入;指定后会隐式启用 secure mode。 [env: ET_CREDENTIAL=] |
--credential-file |
管理节点 credential 持久化文件路径。用于在重启后保留已生成的凭据。 [env: ET_CREDENTIAL_FILE=] |
-i, --ipv4 |
此VPN节点的IPv4地址。如果为空,则此节点将仅转发数据包,不会创建TUN设备 [env: ET_IPV4=] |
--ipv6 |
此VPN节点的IPv6地址,可与IPv4配合使用以实现双栈运行 [env: ET_IPV6=] |
-d, --dhcp |
由Easytier自动确定并设置IP地址,默认从10.0.0.1开始。警告:在使用DHCP时,如果网络中出现IP冲突,IP将自动更改。 [env: ET_DHCP=] |
-p, --peers |
最初要连接的对等节点 [env: ET_PEERS=] |
-e, --external-node |
使用公共共享节点来发现对等节点 [env: ET_EXTERNAL_NODE=] |
-n, --proxy-networks |
将本地网络导出到VPN中的其他对等节点,例如:10.0.0.0/24。支持映射到其他CIDR,例如:10.0.0.0/24->192.168.0.0/24 [env: ET_PROXY_NETWORKS=] |
RPC 设置
| 参数 | 说明 |
|---|---|
-r, --rpc-portal |
用于管理的RPC门户地址。支持以下格式: |
- 0 表示随机端口 |
|
- 12345 表示在localhost的12345上监听 |
|
- 0.0.0.0:12345 表示在所有接口的12345上监听 |
|
默认是 0,首先尝试 15888 |
|
| [env: ET_RPC_PORTAL=] | |
--rpc-portal-whitelist |
RPC门户白名单,仅允许这些地址访问RPC门户,例如:127.0.0.1/32,127.0.0.0/8,::1/128 [env: ET_RPC_PORTAL_WHITELIST=] |
监听器设置
| 参数 | 说明 |
|---|---|
-l, --listeners |
监听器用于接受连接,支持以下格式: |
- 端口号:<11010>,意味着tcp/udp将在11010端口监听,ws/wss将在11010和11011端口监听,wg将在11011端口监听。 |
|
- URL:<protocol://0.0.0.0:11010>,其中protocol可以是tcp、udp、ring、wg、ws、wss、quic、faketcp协议。 |
|
- 协议和端口对:<proto:port>,例如wg:11011,表示使用WireGuard协议在11011端口监听。 |
|
| [env: ET_LISTENERS=] | |
--mapped-listeners |
手动指定监听器的公网地址,其他节点可以使用该地址连接到本节点。例如:tcp://123.123.123.123:11223,可以指定多个。 [env: ET_MAPPED_LISTENERS=] |
--no-listener |
不监听任何端口,只连接到对等节点 [env: ET_NO_LISTENER=] |
其他设置
| 参数 | 说明 |
|---|---|
--hostname |
用于标识此设备的主机名 [env: ET_HOSTNAME=] |
-m, --instance-name |
实例名称,用于在同一台机器上标识此VPN节点 [env: ET_INSTANCE_NAME=] |
--vpn-portal |
定义VPN门户的URL,允许其他VPN客户端连接。例如:wg://0.0.0.0:11010/10.14.14.0/24 [env: ET_VPN_PORTAL=] |
--default-protocol |
连接到对等节点时使用的默认协议 [env: ET_DEFAULT_PROTOCOL=] |
-u, --disable-encryption |
禁用对等节点通信的加密,默认为false,必须与对等节点相同 [env: ET_DISABLE_ENCRYPTION=] |
--encryption-algorithm |
要使用的加密算法,支持:''(默认aes-gcm)、'xor'、'chacha20'、'aes-gcm'、'aes-gcm-256'、'openssl-aes128-gcm'、'openssl-aes256-gcm'、'openssl-chacha20' [env: ET_ENCRYPTION_ALGORITHM=] |
--multi-thread |
使用多线程运行时,默认为单线程 [env: ET_MULTI_THREAD=] |
--multi-thread-count |
使用的线程数,默认为2,仅在多线程模式下有效。取值必须大于2 [env: ET_MULTI_THREAD_COUNT=] |
--disable-ipv6 |
不使用IPv6 [env: ET_DISABLE_IPV6=] |
--dev-name |
可选的TUN接口名称 [env: ET_DEV_NAME=] |
--mtu |
TUN设备的MTU,默认为非加密时为1380,加密时为1360 [env: ET_MTU=] |
--latency-first |
延迟优先模式,将尝试使用最低延迟路径转发流量,默认使用最短路径 [env: ET_LATENCY_FIRST=] |
--exit-nodes |
转发所有流量的出口节点,虚拟IPv4地址,优先级由列表顺序决定 [env: ET_EXIT_NODES=] |
--enable-exit-node |
允许此节点成为出口节点 [env: ET_ENABLE_EXIT_NODE=] |
--proxy-forward-by-system |
通过系统内核转发子网代理数据包,禁用内置NAT [env: ET_PROXY_FORWARD_BY_SYSTEM=] |
--no-tun |
不创建TUN设备,可以使用子网代理访问节点 [env: ET_NO_TUN=] |
--use-smoltcp |
为子网代理和 KCP 代理启用smoltcp堆栈 [env: ET_USE_SMOLTCP=] |
--manual-routes |
手动分配路由CIDR,将禁用子网代理和从对等节点传播的wireguard路由。例如:192.168.0.0/16 [env: ET_MANUAL_ROUTES=] |
--relay-network-whitelist |
仅转发白名单网络的流量,支持通配符字符串。多个网络名称间可以使用英文空格间隔。 [env: ET_RELAY_NETWORK_WHITELIST=] |
--p2p-only |
仅与已经建立P2P连接的对等节点通信。若同时启用 lazy-p2p,首次访问某个尚未直连的节点时,可能需要等待 P2P 建立完成后才会成功。 [env: ET_P2P_ONLY=] |
--lazy-p2p |
仅在实际流量需要某个对等节点时才尝试建立 P2P;被标记为 need-p2p 的节点仍会主动建立连接。详见 改善 P2P [env: ET_LAZY_P2P=] |
--disable-p2p |
禁用普通自动 P2P;仍会与标记为 need-p2p 的节点建立 P2P,且普通节点不应主动与当前节点建立 P2P。详见 改善 P2P [env: ET_DISABLE_P2P=] |
--need-p2p |
声明即使其他节点启用了 lazy-p2p,也应主动与当前节点建立 P2P。与 disable-p2p 同时启用时,可用于“仅对显式需要的节点开放 P2P”的模式。详见 改善 P2P [env: ET_NEED_P2P=] |
--disable-tcp-hole-punching |
禁用TCP打洞功能 [env: ET_DISABLE_TCP_HOLE_PUNCHING=] |
--disable-udp-hole-punching |
禁用UDP打洞功能 [env: ET_DISABLE_UDP_HOLE_PUNCHING=] |
--disable-sym-hole-punching |
如果为true,则禁用基于生日攻击的对称NAT (NAT4) UDP 打洞功能,该打洞方式可能会被运营商封锁 [env: ET_DISABLE_SYM_HOLE_PUNCHING=] |
--relay-all-peer-rpc |
转发所有对等节点的RPC数据包,即使对等节点不在转发网络白名单中。 [env: ET_RELAY_ALL_PEER_RPC=] |
--socks5 |
启用 socks5 服务器,允许 socks5 客户端访问虚拟网络。格式: <端口>,例如:1080 [env: ET_SOCKS5=] |
--compression |
要使用的压缩算法,支持 none、zstd。默认为 none [env: ET_COMPRESSION=] |
--bind-device |
将连接器的套接字绑定到物理设备以避免路由问题。 [env: ET_BIND_DEVICE=] |
--enable-kcp-proxy |
使用 KCP 代理 TCP 流,提高在 UDP 丢包网络上的延迟和吞吐量。 [env: ET_ENABLE_KCP_PROXY=] |
--disable-kcp-input |
不允许其他节点使用 KCP 代理 TCP 流到此节点。 [env: ET_DISABLE_KCP_INPUT=] |
--enable-quic-proxy |
使用 QUIC 代理 TCP 流,提高在 UDP 丢包网络上的延迟和吞吐量。 [env: ET_ENABLE_QUIC_PROXY=] |
--disable-quic-input |
不允许其他节点使用 QUIC 代理 TCP 流到此节点。 [env: ET_DISABLE_QUIC_INPUT=] |
--quic-listen-port |
监听 QUIC 连接的端口,默认值为0(随机端口)。 [env: ET_QUIC_LISTEN_PORT=] |
--port-forward |
将本地端口转发到虚拟网络中的远程端口。例如:udp://0.0.0.0:12345/10.126.126.1:23456 [env: ET_PORT_FORWARD=] |
--accept-dns |
如果为true,则启用魔法DNS。使用魔法DNS,您可以使用域名访问其他节点,例如:<hostname>.et.net [env: ET_ACCEPT_DNS=] |
--tld-dns-zone |
指定魔法DNS的顶级域名区域。如果未提供,默认使用dns_server模块中的值(et.net.)。仅在accept_dns为true时使用。 [env: ET_TLD_DNS_ZONE=] |
--private-mode |
如果为true,则不允许使用了与本网络不相同的网络名称和密码的节点通过本节点进行握手或中转 [env: ET_PRIVATE_MODE=] |
--foreign-relay-bps-limit |
限制转发流量的带宽 [env: ET_FOREIGN_RELAY_BPS_LIMIT=] |
--tcp-whitelist |
TCP 端口白名单。支持单个端口(80)和范围(8000-9000) [env: ET_TCP_WHITELIST=] |
--udp-whitelist |
UDP 端口白名单。支持单个端口(53)和范围(5000-6000) [env: ET_UDP_WHITELIST=] |
--disable-relay-kcp |
如果为true,则禁止节点转发 KCP 数据包,防止过度消耗流量。默认值为false [env: ET_DISABLE_RELAY_KCP=] |
--enable-relay-foreign-network-kcp |
如果为true,则作为共享节点时也可以转发其他网络的 KCP 数据包。默认值为false(不转发) [env: ET_ENABLE_RELAY_FOREIGN_NETWORK_KCP=] |
--stun-servers |
覆盖内置的默认 STUN server 列表;如果设置了但是为空,则不使用 STUN servers;如果没设置,则使用默认 STUN server 列表 [env: ET_STUN_SERVERS=] |
--stun-servers-v6 |
覆盖内置的默认 IPv6 STUN server 列表;如果设置了但是为空,则不使用 IPv6 STUN servers;如果没设置,则使用默认 IPv6 STUN server 列表 [env: ET_STUN_SERVERS_V6=] |
日志设置
| 参数 | 说明 |
|---|---|
--console-log-level |
控制台日志级别 [env: ET_CONSOLE_LOG_LEVEL=] |
--file-log-level |
文件日志级别 [env: ET_FILE_LOG_LEVEL=] |
--file-log-dir |
存储日志文件的目录 [env: ET_FILE_LOG_DIR=] |
--file-log-size |
单个文件日志大小,单位 MB,默认值为 100MB [env: ET_FILE_LOG_SIZE=] |
--file-log-count |
最大文件日志数量,默认值为 10 [env: ET_FILE_LOG_COUNT=] |
日志配置属于进程级配置,通过命令行参数或环境变量设置,不支持写在 -c 指定的配置文件中。原因是日志系统在进程启动时、加载任何配置文件之前就已初始化,且同一个进程可以通过多个 -c 配置文件运行多个网络实例,因此日志选项只作用于整个进程。
默认行为
默认情况下,EasyTier 只向控制台输出 core 模块的 info 级别日志,文件日志处于关闭状态。
控制台日志级别
通过 --console-log-level(或环境变量 ET_CONSOLE_LOG_LEVEL)设置控制台日志级别,可选值:trace、debug、info、warn、error、off。
easytier-core --console-log-level debug
ET_CONSOLE_LOG_LEVEL=debug easytier-core
也可以使用 RUST_LOG 环境变量按目标(target)精细控制日志,例如仅对 core 模块输出 debug、关闭 hyper 的日志:
RUST_LOG=warn,easytier_core=debug,hyper=off easytier-core
RUST_LOG 会覆盖控制台日志级别,同样作用于文件日志。
文件日志
文件日志默认关闭,设置 --file-log-level(或环境变量 ET_FILE_LOG_LEVEL)为除 off 之外的级别即会开启,默认写入进程工作目录下的 easytier.log:
easytier-core --file-log-level info
其余参数均为可选:
| 参数 | 说明 |
|---|---|
--file-log-dir |
日志文件目录,默认当前目录 |
--file-log-size |
单个日志文件大小上限(MB),默认 100 |
--file-log-count |
保留的日志文件数量,默认 10 |
日志文件按天滚动轮转,超过大小上限或数量限制后会自动清理旧文件。
运行时调整日志级别
进程运行期间可通过 RPC 查看或修改日志级别:
easytier-cli logger # 查看当前配置
easytier-cli logger set debug # 设置级别
easytier-cli logger set 的合法值为 disabled、error、warning、info、debug、trace,调整的是文件日志级别。
更多配置项请参考 easytier-core --help 输出。