You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
167 lines
10 KiB
167 lines
10 KiB
[global] |
|
tun_ip=10.0.0.1 # IP адрес tun интерфейса. чтобы к нему могли обращаться другие узлу его надо вписать в секции [routing] my_subnet |
|
#tun_enabled=yes # создавать TUN интерфейс (по умолчанию yes). Установите no для работы без root (только SOCKS/HTTP прокси) |
|
tun_ifname=tun0 # имя TUN интерфейса (по умолчанию tun0) |
|
mtu=1500 # UDP MTU for all connections (default - 1500) |
|
db_path= # путь к LMDB-базе nodeinfo (например /var/lib/utun/nodes.db). Если не задан — база не используется |
|
|
|
# уникальный id и ключи вашего узла. если их нет они сгенерируются автоматически (random) при первом запуске и впишутся в конфиг |
|
my_node_id= |
|
my_private_key= |
|
my_public_key= |
|
|
|
# control socket для наблюдения и управления utun сервером |
|
# например utun сервер стоит на роутере, и вы можете управлять и наблюдать за ним с рабочего компьютера |
|
[control] |
|
ip=127.0.0.1 |
|
port=12345 |
|
# control_allow=ip/mask (multiple allowed, default deny all) |
|
control_allow=127.0.0.1/32 |
|
# control_allow=192.168.1.0/24 |
|
|
|
[routing] |
|
route_subnet=10.0.0.0/16 # к каким подсетям utun вы хотите обращаться (добавит маршруты этих подсетей через utun) |
|
my_subnet=10.0.0.0/24 # какие ваши подсети будут доступны другим узлам utun (в секции [firewall] можно тонко настроить разрешенные ip и порты) |
|
|
|
# секция server обязательна и у сервера и у клиента. это рабочий сокет. |
|
# мои адреса и каналы |
|
[server: lo0_test] |
|
addr=127.0.0.1:1330 |
|
#so_mark=100 |
|
#netif=eth0 |
|
type=nat # public / nat / private |
|
|
|
[server: lan1] |
|
addr=192.168.29.117:1333 |
|
#so_mark=100 |
|
#netif=eth0 |
|
type=public # public / nat / private |
|
|
|
[allowed_keys] |
|
# Разрешённые публичные ключи клиентов для подключения к этому серверу. |
|
# По умолчанию (если секция отсутствует или allow_all=0 и список пуст) — все соединения запрещены. |
|
# allow_all=1 — разрешить всех (режим совместимости, не рекомендуется для production) |
|
# key=128hexchars — добавить конкретный публичный ключ в белый список |
|
allow_all=0 |
|
#key=c6c8a8a9616ffa6cf44d4757e2bc9f7bd78a1d3cbbe75cffaf3cab8885ad48e7677b14ba9044da8bd1bef4b15f6748fb50629034919c154d9a457520bfed9431 |
|
#key=04c1cae041a8e6bfba5245f6669c73f0793d7f9929300a2ba2e123ca55260d6e474480056720d94f7f0836a4a472763a74aacbc487cc7a1b2b0e066b519400fe |
|
|
|
[firewall] |
|
#ограничиваем подключения к собственным ресурсам. по умолчанию всё запрещено. разрешаем доступ директивами: |
|
# Firewall rules: allow=all, allow=IP or allow=IP:port |
|
allow=all |
|
#allow=192.168.1.100 |
|
#allow=10.0.0.50:443 |
|
#allow=8.8.8.8 |
|
|
|
# --- NAT (Full Cone / EIM) --- |
|
# Предоставляет доступ в интернет через этот узел другим узлам utun. |
|
# Наличие секции [nat] включает NAT на этом узле. |
|
# Две роли: |
|
# 1. Provider (нет nat_via) — шлюз в интернет, выделяет порты для клиентов |
|
# 2. Client (nat_via=<node_id>) — отправляет свой трафик через указанный узел-провайдер |
|
|
|
# === Provider example === |
|
#[nat] |
|
#enabled=0 |
|
#tun_ifname=tun_nat # имя NAT TUN интерфейса (по умолчанию tun_nat) |
|
#tun_ip=100.64.0.1/24 # IP адрес NAT шлюза |
|
#port_start=20000 # начало диапазона портов для NAT |
|
#port_end=29999 # конец диапазона (размер = количество одновременных сессий) |
|
## Port forwarding (статический проброс портов): |
|
## forward=proto:internal_ip:internal_port:external_port |
|
#forward=tcp:192.168.1.100:22:2222 |
|
#forward=tcp:192.168.1.100:443:443 |
|
|
|
# === Client example === |
|
#[nat] |
|
#tun_ifname=tun_nat_client |
|
#tun_ip=100.64.1.1/24 # IP клиентского NAT TUN |
|
#nat_via=0xABCD000000000001 # node_id провайдера (у кого запрашивать NAT) |
|
|
|
# --- TCP Proxy Client (локальный TCP/UDP/ICMP прокси) --- |
|
# Проксирует входящие TCP (через lwIP), UDP и ICMP ping через указанный via_node. |
|
# Также поддерживает SOCKS5 и HTTP CONNECT proxy без TUN (напрямую через ETCP). |
|
# Режимы можно включать раздельно или одновременно. |
|
#[tcp_proxy_client] |
|
#enabled=yes |
|
|
|
## --- TUN режим (прозрачный) --- |
|
#tun_name=tun_tcp # имя TUN интерфейса (по умолчанию tun_tcp) |
|
#tun_ip=10.99.0.1 # IP адрес TUN интерфейса |
|
#mtu=1500 # MTU |
|
#forward=8000 -> 10.0.0.50:80 |
|
#forward=2222 -> 10.0.0.50:22 |
|
|
|
## --- SOCKS5 режим (прямой) --- |
|
#socks_enabled=yes |
|
#socks_addr=127.0.0.1:1080 # адрес для SOCKS5 сервера (bind) |
|
|
|
## --- HTTP CONNECT режим (прямой) --- |
|
#http_proxy_enabled=yes |
|
#http_proxy_addr=127.0.0.1:8080 # адрес для HTTP CONNECT сервера (bind) |
|
|
|
#via_node=0xABCD000000000001 # узел для проксирования (общий для всех режимов) |
|
|
|
# --- TCP Proxy Server (удаленный exit node) --- |
|
# Принимает CONNECT-запросы от других нод и открывает OS сокеты к адресатам. |
|
#[tcp_proxy_server] |
|
#enabled=yes |
|
#tcp_recv_buf=65536 |
|
#fib=1 ; FreeBSD: SO_SETFIB (routing table number) |
|
#so_mark=100 ; Linux: SO_MARK (socket mark/fwmark) |
|
#netif=eth1 ; Linux: SO_BINDTODEVICE (interface name) |
|
#bind_ip=10.0.0.1 ; bind() local IP before connect() |
|
|
|
# --- REALITY-камуфляж (reality socket) --- |
|
# REALITY маскирует TCP-порт STCP под обычный TLS-трафик к реальному сайту. |
|
# Сервер принимает TLS ClientHello, проверяет авторизацию (short_id + X25519) |
|
# и отвечает ServerHello; неавторизованных клиентов релеит на реальный сайт (dest). |
|
# Для включения на сервере нужен TCP-сокет: [server: ...] transport=tcp + reality=yes. |
|
#[reality] |
|
#enabled=1 |
|
#server_name=www.microsoft.com # SNI-таргет (каким сайтом прикидываемся) |
|
#dest=www.microsoft.com:443 # host:port реального сайта для релея |
|
#private_key=<64 hex X25519> # static приватный ключ сервера (генерируется автоматически, если не задан) |
|
#short_ids=0102030405060708,aabbccddeeff0011 # список short_id (по 16 hex, через запятую; 4 шт. генерируются автоматически, если не заданы) |
|
#version=1.0.0 # версия протокола utun (по умолчанию 1.0.0) |
|
#time_window=30 # допуск timestamp, сек (антиреплей) |
|
#fingerprint=chrome # TLS-отпечаток (только chrome) |
|
|
|
## Пример TCP-сокета с reality-камуфляжем (сервер): |
|
#[server: reality_srv] |
|
#addr=0.0.0.0:1443 |
|
#type=public |
|
#transport=tcp |
|
#reality=yes |
|
|
|
## --- Клиент: подключение к reality-сокету --- |
|
## Всё нужное для подключения задаётся прямо в секции [client]. |
|
## Серверный сокет (bind) опционален: link=ip:port — ОС сама выберет source; |
|
## чтобы биндиться на конкретный интерфейс/ip, укажи [server: ...] transport=tcp перед ip:port. |
|
## peer_public_key — pubkey УЗЛА сервера (STCP), public_key — reality pubkey сервера. |
|
#[client: to_relay] |
|
#peer_public_key=<64 hex pubkey узла сервера> |
|
#link=1.2.3.4:1443 # без bind (ОС выбирает source) |
|
##link=tcp_bind:1.2.3.4:1443 # bind к интерфейсу [server: tcp_bind] transport=tcp |
|
#reality=yes |
|
#server_name=www.microsoft.com # SNI-таргет (должен совпадать с сервером) |
|
#short_id=0102030405060708 # short_id, выданный сервером |
|
#public_key=<64 hex reality pubkey сервера> |
|
#version=1.0.0 # должна совпадать с версией сервера |
|
#fingerprint=chrome |
|
|
|
# --- Chatserver: headless supernode config --- |
|
#[chatserver] |
|
#db_path=/var/lib/utun # путь к SQLite базе данных (обязательно) |
|
#join_password=secret123 # пароль входа в группы (будет в invite-ссылке) |
|
#allowed_groups=all # "all" или hex-ID через запятую |
|
#headless_control_bind=127.0.0.1:9999 # TCP control-socket для headless chat CLI |
|
#storage_total_size=500M # общий лимит медиакеша (0=безлимит) |
|
#storage_unit_size=50M # лимит одного медиафайла (0=отключено) |
|
#storage_autoload=1 # автозагрузка медиавложений (0/1) |
|
#media_download_max_peers=3 # макс. одновременных пиров для загрузки |
|
#opus_codec_preset=1 # пресет Opus (0..4) |
|
#compressor_enabled=0 # компрессор голосовых сообщений (0/1) |
|
#compressor_max_gain_db=25 # макс. gain компрессора, дБ (1..100) |
|
#compressor_rise_rate=10 # скорость нарастания компрессора (1..100)
|
|
|