# === General Settings === [general] # prefer_ipv6 is deprecated; use [network].prefer instead prefer_ipv6 = false fast_mode = true use_middle_proxy = true #ad_tag = "00000000000000000000000000000000" [network] # Enable/disable families; ipv6 = true/false/auto(None) ipv4 = true ipv6 = false # prefer = 4 or 6 prefer = 4 multipath = false # 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 = "::" # listen_unix_sock = "/var/run/telemt.sock" # Unix socket # listen_unix_sock_perm = "0666" # Socket file permissions # 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 = "::" # Users to show in the startup log (tg:// links) [general.links] show = ["nikita-phone", "nikita-pc", "nikita-work-notebook", "marishka-phone", "marishka-notebook", "marishka-work-pc", "mama-phone", "mama-notebook", "melkiy-phone", "melkiy-pc", "melkiy-kristina-phone", "melkiy-kristina-pc", "bakak-phone", "bakak-nastya-phone", "maksik-phone", "maksik-oksana-phone", "dyusha-phone", "dyusha-anya-phone", "che-phone", "che-pc", "che-work-pc", "che-ira-phone", "irina-phone", "irina-work-pc"] # Users to show in the startup log (tg:// links) # public_host = "proxy.example.com" # Host (IP or domain) for tg:// links # public_port = 443 # Port for tg:// links (default: server.port) # === Timeouts (in seconds) === [timeouts] client_handshake = 15 tg_connect = 10 client_keepalive = 60 client_ack = 300 # === Anti-Censorship & Masking === [censorship] tls_domain = "ss.lv" mask = true mask_port = 443 # mask_host = "ss.lv" # 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" nikita-phone = "e532cec08e066a8d45fb945b1cdec0dc" nikita-pc = "fa15f7570100b3017489b0e7ff0b553e" nikita-work-notebook = "c766653345b52de197b2328a34ac2b81" marishka-phone = "e998e1ad3e9b3a3bcd3a767e4ff05195" marishka-notebook = "c2a38b03c01748b16f07d81ba450457e" marishka-work-pc = "5525928d62b8a8f6fa328cb86552b299" mama-phone = "0ee2854d9f59f0208a609f8e89c2d8f4" mama-notebook = "3a6a9d8ffeb5b15b205d6df49169bd15" melkiy-phone = "18c7faca1770daa3e9efc0e6bc71786e" melkiy-pc = "60a96310c7b911dc6409f374d3bdbe01" melkiy-kristina-phone = "8c46f4b8b645f9d69aa55579b5e00814" melkiy-kristina-pc = "b487f03a2a8f3f679230a9e0f6d041d2" bakak-phone = "4d2cb97596daca295bb71b082d1409ce" bakak-nastya-phone = "ba153cb77c696f8a5414ff04cbf04bbb" maksik-phone = "1978306633ae757b97d3862e07285a10" maksik-oksana-phone = "40b53e0f524e4db3fa6c544c80916792" dyusha-phone = "03ee33bfadf0cfa85ba02f7ae15f3090" dyusha-anya-phone = "a602b93d6e6a9236cb812c7b83ea2304" che-phone = "4e511dfb04c7676a7ba99288adb65478" che-pc = "5a04595f59fd2f0497ec5277a4feb8c2" che-work-pc = "11c4ee5b67005b0d17a655b68e5b8cad" che-ira-phone = "3346aa0488fccb297dc5caee6b025e7b" irina-phone = "a5545d304bf842e215ced69ffce84c00" irina-work-pc = "f5eccc94fab5620d4ec2a84e22c7e272" # [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 # === DC Address Overrides === # [dc_overrides] # "203" = "91.105.192.100:443"