_version: 2

core_clap:
  config_server:
    en: |+
      config server address, allow format:
      full url: --config-server udp://127.0.0.1:22020/admin, 'udp' can be replaced with tcp, ws, wss (when config server ws is proxied to wss)
      only user name: --config-server admin, will use official server
    zh-CN: |+
      配置服务器地址。允许格式：
      完整URL：--config-server udp://127.0.0.1:22020/admin，udp可以根据配置服务器替换为 tcp，ws，wss(配置服务器ws被代理为wss时)
      仅用户名：--config-server admin，将使用官方的服务器
  machine_id:
    en: |+
      the machine id to identify this machine, used for config recovery after disconnection, must be unique and fixed. default is from system.
    zh-CN: |+
      Web 配置服务器通过 machine id 来识别机器，用于断线重连后的配置恢复，需要保证唯一且固定不变。默认从系统获得。
  config_file:
    en: "path to the config file, NOTE: the options set by cmdline args will override options in config file"
    zh-CN: "配置文件路径，注意：命令行中的配置的选项会覆盖配置文件中的选项"
  config_dir:
    en: "Load all .toml files in the directory to start network instances, and store the received configurations in this directory."
    zh-CN: "加载目录中的所有 .toml 文件以启动网络实例，并将下发的配置保存在此目录中。"
  disable_env_parsing:
    en: "disable environment variable parsing in config file"
    zh-CN: "禁用配置文件中的环境变量解析"
  generate_completions:
    en: "generate shell completions"
    zh-CN: "生成 shell 补全脚本"
  network_name:
    en: "network name to identify this vpn network"
    zh-CN: "用于标识此VPN网络的网络名称"
  network_secret:
    en: "network secret to verify this node belongs to the vpn network"
    zh-CN: "网络密钥，用于验证此节点属于VPN网络"
  ipv4:
    en: "ipv4 address of this vpn node, if empty, this node will only forward packets and no TUN device will be created"
    zh-CN: "此VPN节点的IPv4地址，如果为空，则此节点将仅转发数据包，不会创建TUN设备"
  ipv6:
    en: "ipv6 address of this vpn node, can be used together with ipv4 for dual-stack operation"
    zh-CN: "此VPN节点的IPv6地址，可与IPv4一起使用以进行双栈操作"
  ipv6_public_addr_provider:
    en: "share this node's public IPv6 subnet with other peers so they can obtain public IPv6 addresses (Linux only)"
    zh-CN: "将此节点的公网 IPv6 子网共享给其他节点，使它们也能获得公网 IPv6 地址（仅 Linux 支持）"
  ipv6_public_addr_auto:
    en: "auto-obtain a public IPv6 address from a peer that shares its IPv6 subnet"
    zh-CN: "自动从共享了 IPv6 子网的对等节点获取一个公网 IPv6 地址"
  ipv6_public_addr_prefix:
    en: "manually specify the public IPv6 subnet to share, instead of auto-detecting from system routes"
    zh-CN: "手动指定要共享的公网 IPv6 子网，不自动从系统路由检测"
  dhcp:
    en: "automatically determine and set IP address by Easytier, and the IP address starts from 10.0.0.1 by default. Warning, if there is an IP conflict in the network when using DHCP, the IP will be automatically changed."
    zh-CN: "由Easytier自动确定并设置IP地址，默认从10.0.0.1开始。警告：在使用DHCP时，如果网络中出现IP冲突，IP将自动更改。"
  peers:
    en: "peers to connect initially"
    zh-CN: "最初要连接的对等节点"
  external_node:
    en: "use a public shared node to discover peers"
    zh-CN: "使用公共共享节点来发现对等节点"
  proxy_networks:
    en: |+
      export local networks to other peers in the vpn,  e.g.: 10.0.0.0/24.
      also support mapping proxy network to other cidr, e.g.: 10.0.0.0/24->192.168.0.0/24
      other peers can access 10.0.0.1 with ip 192.168.0.1
    zh-CN: |+
      将本地网络导出到VPN中的其他对等节点，例如：10.0.0.0/24。
      还支持将代理网络映射到其他CIDR，例如：10.0.0.0/24->192.168.0.0/24
      其他对等节点可以通过 IP 192.168.0.1 来访问 10.0.0.1
  rpc_portal:
    en: "rpc portal address to listen for management. 0 means random port, 12345 means listen on 12345 of localhost, 0.0.0.0:12345 means listen on 12345 of all interfaces. default is 0 and will try 15888 first"
    zh-CN: "用于管理的RPC门户地址。0表示随机端口，12345表示在localhost的12345上监听，0.0.0.0:12345表示在所有接口的12345上监听。默认是0，首先尝试15888"
  rpc_portal_whitelist:
    en: "rpc portal whitelist, only allow these addresses to access rpc portal, e.g.: 127.0.0.1,127.0.0.0/8,::1/128"
    zh-CN: "RPC门户白名单，仅允许这些地址访问RPC门户，例如：127.0.0.1/32,127.0.0.0/8,::1/128"
  listeners:
    en: |+
        listeners to accept connections, allow format:
        port number: <11010>. means tcp/udp will listen on 11010, ws/wss will listen on 11010 and 11011, wg will listen on 11011
        url: <tcp://0.0.0.0:11010>. tcp can be tcp, udp, ring, wg, ws, wss, quic, faketcp\n
        proto & port pair: <proto:port>. wg:11011, means listen on 11011 with wireguard protocol url and proto:port can occur multiple times.
    zh-CN: |+
      监听器用于接受连接，允许以下格式：
      端口号：<11010>，意味着tcp/udp将在11010端口监听，ws/wss将在11010和11011端口监听，wg将在11011端口监听。
      url：<tcp://0.0.0.0:11010>，其中tcp可以是tcp、udp、ring、wg、ws、wss、quic、faketcp协议。
      协议和端口对：<proto:port>，例如wg:11011，表示使用WireGuard协议在11011端口监听。URL 和 协议端口对 可以多次出现。
  no_listener:
    en: "do not listen on any port, only connect to peers"
    zh-CN: "不监听任何端口，只连接到对等节点"
  console_log_level:
    en: "console log level"
    zh-CN: "控制台日志级别"
  file_log_level:
    en: "file log level"
    zh-CN: "文件日志级别"
  file_log_dir:
    en: "directory to store log files"
    zh-CN: "存储日志文件的目录"
  hostname:
    en: "host name to identify this device"
    zh-CN: "用于标识此设备的主机名"
  instance_name:
    en: "instance name to identify this vpn node in same machine"
    zh-CN: "实例名称，用于在同一台机器上标识此VPN节点"
  vpn_portal:
    en: "url that defines the vpn portal, allow other vpn clients to connect. example: wg://0.0.0.0:11010/10.14.14.0/24, means the vpn portal is a wireguard server listening on vpn.example.com:11010, and the vpn client is in network of 10.14.14.0/24"
    zh-CN: "定义VPN门户的URL，允许其他VPN客户端连接。示例：wg://0.0.0.0:11010/10.14.14.0/24，表示VPN门户是监听在vpn.example.com:11010的wireguard服务器，VPN客户端在10.14.14.0/24网络中"
  default_protocol:
    en: "default protocol to use when connecting to peers"
    zh-CN: "连接到对等节点时使用的默认协议"
  disable_encryption:
    en: "disable encryption for peers communication, default is false, must be same with peers"
    zh-CN: "禁用对等节点通信的加密，默认为false，必须与对等节点相同"
  encryption_algorithm:
    en: "encryption algorithm to use, supported: '', 'xor', 'chacha20', 'aes-gcm', 'aes-gcm-256', 'openssl-aes128-gcm', 'openssl-aes256-gcm', 'openssl-chacha20'. Empty string means default (aes-gcm)"
    zh-CN: "要使用的加密算法，支持：''（默认aes-gcm）、'xor'、'chacha20'、'aes-gcm'、'aes-gcm-256'、'openssl-aes128-gcm'、'openssl-aes256-gcm'、'openssl-chacha20'"
  multi_thread:
    en: "use multi-thread runtime, default is single-thread"
    zh-CN: "使用多线程运行时，默认为单线程"
  multi_thread_count:
    en: "the number of threads to use, default is 2, only effective when multi-thread is enabled, must be greater than 2"
    zh-CN: "使用的线程数，默认为2，仅在多线程模式下有效。取值必须大于2"
  disable_ipv6:
    en: "do not use ipv6"
    zh-CN: "不使用IPv6"
  dev_name:
    en: "optional tun interface name"
    zh-CN: "可选的TUN接口名称"
  mtu:
    en: "mtu of the TUN device, default is 1380 for non-encryption, 1360 for encryption"
    zh-CN: "TUN设备的MTU，默认为非加密时为1380，加密时为1360"
  latency_first:
    en: "latency first mode, will try to relay traffic with lowest latency path, default is using shortest path"
    zh-CN: "延迟优先模式，将尝试使用最低延迟路径转发流量，默认使用最短路径"
  exit_nodes:
    en: "exit nodes to forward all traffic to, a virtual ipv4 address, priority is determined by the order of the list"
    zh-CN: "转发所有流量的出口节点，虚拟IPv4地址，优先级由列表顺序决定"
  enable_exit_node:
    en: "allow this node to be an exit node"
    zh-CN: "允许此节点成为出口节点"
  proxy_forward_by_system:
    en: "forward packet to proxy networks via system kernel, disable internal nat for network proxy"
    zh-CN: "通过系统内核转发子网代理数据包，禁用内置NAT"
  no_tun:
    en: "do not create TUN device, can use subnet proxy to access node"
    zh-CN: "不创建TUN设备，可以使用子网代理访问节点"
  use_smoltcp:
    en: "enable smoltcp stack for subnet proxy and kcp proxy"
    zh-CN: "为子网代理和 KCP 代理启用smoltcp堆栈"
  manual_routes:
    en: "assign routes cidr manually, will disable subnet proxy and wireguard routes propagated from peers. e.g.: 192.168.0.0/16"
    zh-CN: "手动分配路由CIDR，将禁用子网代理和从对等节点传播的wireguard路由。例如：192.168.0.0/16"
  relay_network_whitelist:
    en: |+
        only forward traffic from the whitelist networks, supporting wildcard strings, multiple network names can be separated by spaces.
        if local network (assigned with network_name) is not in the whitelist, the traffic can still be forwarded if no other route path is available.
        if this parameter is empty, forwarding is disabled. by default, all networks are allowed.
        e.g.: '*' (all networks), 'def*' (networks with the prefix 'def'), 'net1 net2' (only allow net1 and net2)"
    zh-CN: |+
        仅转发白名单网络的流量，支持通配符字符串。多个网络名称间可以使用英文空格间隔。
        如果本地网络（使用 network_name 分配）不在白名单中，如果没有其他路由路径可用，流量仍然可以转发。
        如果该参数为空，则禁用转发。默认允许所有网络。
        例如：'*'（所有网络），'def*'（以def为前缀的网络），'net1 net2'（只允许net1和net2）"
  disable_p2p:
    en: "disable ordinary automatic p2p; still establish p2p with peers marked as need-p2p, and other peers should not proactively connect to this node"
    zh-CN: "禁用普通自动P2P；仍会与标记为 need-p2p 的节点建立P2P连接，其他节点不应主动与当前节点建立P2P"
  p2p_only:
    en: "only communicate with peers that already establish p2p connection"
    zh-CN: "仅与已经建立P2P连接的对等节点通信"
  lazy_p2p:
    en: "only try to establish p2p when traffic actually needs the peer; peers marked as need-p2p are still connected proactively"
    zh-CN: "仅在实际流量需要某个对等节点时才尝试建立P2P；被标记为 need-p2p 的节点仍会主动建立连接"
  need_p2p:
    en: "announce that other peers should proactively establish p2p connections to this node even when they enable lazy-p2p"
    zh-CN: "声明即使其他节点启用了 lazy-p2p，也应主动与当前节点建立P2P连接"
  disable_tcp_hole_punching:
    en: "disable tcp hole punching"
    zh-CN: "禁用TCP打洞功能"
  disable_udp_hole_punching:
    en: "disable udp hole punching"
    zh-CN: "禁用UDP打洞功能"
  disable_sym_hole_punching:
    en: "if true, disable udp nat hole punching for symmetric nat (NAT4), which is based on birthday attack and may be blocked by ISP."
    zh-CN: "如果为true，则禁用基于生日攻击的对称NAT (NAT4) UDP 打洞功能，该打洞方式可能会被运营商封锁"
  disable_upnp:
    en: "disable runtime UPnP/NAT-PMP port mapping for eligible listeners; automatic port mapping is enabled by default"
    zh-CN: "禁用符合条件监听器的运行时 UPnP/NAT-PMP 端口映射；自动端口映射默认开启"
  relay_all_peer_rpc:
    en: "relay all peer rpc packets, even if the peer is not in the relay network whitelist. this can help peers not in relay network whitelist to establish p2p connection."
    zh-CN: "转发所有对等节点的RPC数据包，即使对等节点不在转发网络白名单中。这可以帮助白名单外网络中的对等节点建立P2P连接。"
  socks5:
    en: "enable socks5 server, allow socks5 client to access virtual network. format: <port>, e.g.: 1080"
    zh-CN: "启用 socks5 服务器，允许 socks5 客户端访问虚拟网络. 格式: <端口>，例如：1080"
  ipv6_listener:
    en: "the url of the ipv6 listener, e.g.: tcp://[::]:11010, if not set, will listen on random udp port"
    zh-CN: "IPv6 监听器的URL，例如：tcp://[::]:11010，如果未设置，将在随机UDP端口上监听"
  compression:
    en: "compression algorithm to use, support none, zstd. default is none"
    zh-CN: "要使用的压缩算法，支持 none、zstd。默认为 none"
  mapped_listeners:
    en: "manually specify the public address of the listener, other nodes can use this address to connect to this node. e.g.: tcp://123.123.123.123:11223, can specify multiple."
    zh-CN: "手动指定监听器的公网地址，其他节点可以使用该地址连接到本节点。例如：tcp://123.123.123.123:11223，可以指定多个。"
  bind_device:
    en: "bind the connector socket to physical devices to avoid routing issues. e.g.: subnet proxy segment conflicts with a node's segment, after binding the physical device, it can communicate with the node normally."
    zh-CN: "将连接器的套接字绑定到物理设备以避免路由问题。比如子网代理网段与某节点的网段冲突，绑定物理设备后可以与该节点正常通信。"
  enable_kcp_proxy:
    en: "proxy tcp streams with kcp, improving the latency and throughput on the network with udp packet loss."
    zh-CN: "使用 KCP 代理 TCP 流，提高在 UDP 丢包网络上的延迟和吞吐量。"
  disable_kcp_input:
    en: "do not allow other nodes to use kcp to proxy tcp streams to this node. when a node with kcp proxy enabled accesses this node, the original tcp connection is preserved."
    zh-CN: "不允许其他节点使用 KCP 代理 TCP 流到此节点。开启 KCP 代理的节点访问此节点时，依然使用原始 TCP 连接。"
  enable_quic_proxy:
    en: "proxy tcp streams with QUIC, improving the latency and throughput on the network with udp packet loss."
    zh-CN: "使用 QUIC 代理 TCP 流，提高在 UDP 丢包网络上的延迟和吞吐量。"
  disable_quic_input:
    en: "do not allow other nodes to use QUIC to proxy tcp streams to this node. when a node with QUIC proxy enabled accesses this node, the original tcp connection is preserved."
    zh-CN: "不允许其他节点使用 QUIC 代理 TCP 流到此节点。开启 QUIC 代理的节点访问此节点时，依然使用原始 TCP 连接。"
  port_forward:
    en: "forward local port to remote port in virtual network. e.g.: udp://0.0.0.0:12345/10.126.126.1:23456, means forward local udp port 12345 to 10.126.126.1:23456 in the virtual network. can specify multiple."
    zh-CN: "将本地端口转发到虚拟网络中的远程端口。例如：udp://0.0.0.0:12345/10.126.126.1:23456，表示将本地UDP端口12345转发到虚拟网络中的10.126.126.1:23456。可以指定多个。"
  accept_dns:
    en: "if true, enable magic dns. with magic dns, you can access other nodes with a domain name, e.g.: <hostname>.et.net. magic dns will modify your system dns settings, enable it carefully."
    zh-CN: "如果为true，则启用魔法DNS。使用魔法DNS，您可以使用域名访问其他节点，例如：<hostname>.et.net。魔法DNS将修改您的系统DNS设置，请谨慎启用。"
  tld_dns_zone:
    en: "specify the top-level domain zone for magic DNS. if not provided, defaults to the value from dns_server module (et.net.). only used when accept_dns is true."
    zh-CN: "指定魔法DNS的顶级域名区域。如果未提供，默认使用dns_server模块中的值（et.net.）。仅在accept_dns为true时使用。"
  private_mode:
    en: "if true, foreign networks are only allowed when this node can verify they use the same network secret, or when a foreign credential node is already trusted via admin-issued credential propagation; different or missing secrets are otherwise rejected."
    zh-CN: "如果为true，则仅允许两类 foreign network 接入：本节点能验证其使用相同 network secret 的节点，或已通过 foreign network 管理节点传播而被信任的 credential 节点；否则 secret 不同或缺失时会被拒绝。"
  foreign_relay_bps_limit:
    en: "the maximum bps limit for foreign network relay, default is no limit. unit: BPS (bytes per second)"
    zh-CN: "作为共享节点时，限制非本地网络的流量转发速率，默认无限制，单位 BPS （字节每秒）"
  instance_recv_bps_limit:
    en: "the maximum total receive bps limit for this instance, default is no limit. unit: BPS (bytes per second)"
    zh-CN: "限制当前网络实例整体入站流量的总接收速率，默认无限制，单位 BPS （字节每秒）"
  tcp_whitelist:
    en: "tcp port whitelist. Supports single ports (80) and ranges (8000-9000)"
    zh-CN: "TCP 端口白名单。支持单个端口（80）和范围（8000-9000）"
  udp_whitelist:
    en: "udp port whitelist. Supports single ports (53) and ranges (5000-6000)"
    zh-CN: "UDP 端口白名单。支持单个端口（53）和范围（5000-6000）"
  disable_relay_kcp:
    en: "if true, disable relay kcp packets. avoid consuming too many bandwidth. default is false"
    zh-CN: "如果为true，则禁止节点转发 KCP 数据包，防止过度消耗流量。默认值为false"
  disable_relay_quic:
    en: "if true, disable relay quic packets. avoid consuming too many bandwidth. default is false"
    zh-CN: "如果为true，则禁止节点转发 QUIC 数据包，防止过度消耗流量。默认值为false"
  enable_relay_foreign_network_kcp:
    en: "if true, allow relay kcp packets from foreign network. default is false (not forward foreign network kcp packets)"
    zh-CN: "如果为true，则作为共享节点时也可以转发其他网络的 KCP 数据包。默认值为false（不转发）"
  enable_relay_foreign_network_quic:
    en: "if true, allow relay quic packets from foreign network. default is false (not forward foreign network quic packets)"
    zh-CN: "如果为true，则作为共享节点时也可以转发其他网络的 QUIC 数据包。默认值为false（不转发）"
  stun_servers:
    en: "Override default STUN servers; If configured but empty, STUN servers are not used"
    zh-CN: "覆盖内置的默认 STUN server 列表；如果设置了但是为空，则不使用 STUN servers；如果没设置，则使用默认 STUN server 列表"
  stun_servers_v6:
    en: "Override default STUN servers, IPv6; If configured but empty, IPv6 STUN servers are not used"
    zh-CN: "覆盖内置的默认 IPv6 STUN server 列表；如果设置了但是为空，则不使用 IPv6 STUN servers；如果没设置，则使用默认 IPv6 STUN server 列表"
  secure_mode:
    en: "if true, enable secure mode. default is false"
    zh-CN: "如果为true，则启用安全模式。默认值为false"
  local_private_key:
    en: "local private key for secure mode. if not provided, a random key will be generated"
    zh-CN: "安全模式下的本地私钥。如果未提供，则会随机生成一个密钥"
  local_public_key:
    en: "local public key for secure mode. if not provided, a random key will be generated, or use local private key to derive public key"
    zh-CN: "安全模式下的本地公钥。如果未提供，则会随机生成一个密钥，或者使用本地私钥派生公钥"
  credential:
    en: "credential secret (base64-encoded private key) for joining network as a temporary node without network_secret"
    zh-CN: "凭据密钥（base64编码的私钥），用于作为临时节点加入网络，无需 network_secret"
  credential_file:
    en: "path to credential storage file for persisting generated credentials across restarts (admin nodes)"
    zh-CN: "凭据存储文件路径，用于在管理节点重启后保留已生成的凭据"
  check_config:
    en: Check config validity without starting the network
    zh-CN: 检查配置文件的有效性并退出
  file_log_size_mb:
    en: "per file log size in MB, default is 100MB"
    zh-CN: "单个文件日志大小，单位 MB，默认值为 100MB"
  file_log_count:
    en: "max file log count, default is 10"
    zh-CN: "最大文件日志数量，默认值为 10"

core_app:
  panic_backtrace_save:
    en: "backtrace saved to easytier-panic.log"
    zh-CN: "回溯信息已保存到easytier-panic.log"
