# === UI === # Users to show in the startup log (tg:// links) show_link = ["hello"] # === General Settings === [general] prefer_ipv6 = true fast_mode = true use_middle_proxy = true #ad_tag = "00000000000000000000000000000000" # Log level: debug | verbose | normal | silent # Can be overridden with --silent or --log-level CLI flags # RUST_LOG env var takes absolute priority over all of these log_level = "normal" [general.modes] classic = false secure = false tls = true # === Server Binding === [server] port = 443 listen_addr_ipv4 = "0.0.0.0" listen_addr_ipv6 = "::" # metrics_port = 9090 # metrics_whitelist = ["127.0.0.1", "::1"] # Listen on multiple interfaces/IPs (overrides listen_addr_*) [[server.listeners]] ip = "0.0.0.0" # announce_ip = "1.2.3.4" # Optional: Public IP for tg:// links [[server.listeners]] ip = "::" # === Timeouts (in seconds) === [timeouts] client_handshake = 15 tg_connect = 10 client_keepalive = 60 client_ack = 300 # === Anti-Censorship & Masking === [censorship] tls_domain = "petrovich.ru" mask = true mask_port = 443 # mask_host = "petrovich.ru" # Defaults to tls_domain if not set # mask_unix_sock = "/var/run/nginx.sock" # Unix socket (mutually exclusive with mask_host) fake_cert_len = 2048 # === Access Control & Users === [access] replay_check_len = 65536 replay_window_secs = 1800 ignore_time_skew = false [access.users] # format: "username" = "32_hex_chars_secret" hello = "00000000000000000000000000000000" # [access.user_max_tcp_conns] # hello = 50 # [access.user_max_unique_ips] # hello = 5 # [access.user_data_quota] # hello = 1073741824 # 1 GB # === Upstreams & Routing === [[upstreams]] type = "direct" enabled = true weight = 10 # [[upstreams]] # type = "socks5" # address = "127.0.0.1:1080" # enabled = false # weight = 1