This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Конфигурация
Начиная с версии 0.3.1, OSTP использует модульную систему конфигурации, основанную на inbounds (входящие соединения), outbounds (исходящие соединения) и routing (правила маршрутизации). Это относится как к серверу, так и к клиенту. Конфигурация пишется в формате JSON (поддерживаются комментарии //).
# Генерация базового конфига
./ostp --init server
./ostp --init client
# Проверка конфигурации на ошибки
./ostp --check --config config.json
Конфигурация сервера
Конфигурация сервера определяет порты и протоколы для прослушивания (inbounds) и куда направляется исходящий трафик (outbounds).
Модульная структура
| Поле | Тип | Описание |
|---|---|---|
inbounds |
array | Список слушателей (ostp, api, dns). |
outbounds |
array | Список исходящих прокси (socks, direct, block). |
routing |
object | Правила перенаправления трафика в outbounds на основе доменов или IP CIDR. |
dns |
object | Встроенный DNS-сервер для AdBlock и DoH форвардинга (опционально). |
debug |
bool | Включить подробное логгирование пакетов. |
Server Inbounds (Входящие подключения)
1. OSTP Inbound
Основной слушатель для соединений OSTP.
{
"type": "ostp",
"tag": "ostp-in",
"listen": "0.0.0.0",
"port": 50000,
"access_keys": ["ВАШ_СЕКРЕТНЫЙ_КЛЮЧ"], // Массив ключей
"transport": {
"mode": "udp" // Доступно: "udp", "uot" (UDP over TCP), или "wss" (WebSocket)
},
"fallback": {
"enabled": false,
"target": "127.0.0.1:8080" // Перенаправление неавторизованного TCP трафика на веб-сервер
}
}
2. API Inbound
Слушатель REST API для панелей управления.
{
"type": "api",
"tag": "api-in",
"listen": "127.0.0.1",
"port": 9090,
"token": "ваш-секретный-токен" // Опционально (Bearer token)
}
3. DNS Inbound (Туннелирование dnstt)
Нативная реализация dnstt сервера, которая слушает DNS-запросы и извлекает инкапсулированный трафик OSTP.
{
"type": "dns",
"tag": "dns-in",
"listen": "0.0.0.0:53",
"domain": "t.yourdomain.com",
"pubkey": "DNSTT_PUBKEY",
"privkey": "DNSTT_PRIVKEY"
}
Server Outbounds (Исходящие подключения)
По умолчанию сервер направляет трафик напрямую в интернет, но может использовать вышестоящие SOCKS5 прокси.
"outbounds": [
{ "type": "direct", "tag": "direct" },
{ "type": "block", "tag": "block" },
{
"type": "socks",
"tag": "tor-proxy",
"server": "127.0.0.1",
"port": 9050
}
]
Server Routing (Маршрутизация)
Маршрутизирует трафик по правилам. Если ни одно правило не совпало, используется default_outbound.
"routing": {
"default_outbound": "direct",
"rules": [
{ "domain_suffix": [".onion"], "outbound": "tor-proxy" },
{ "ip_cidr": ["10.0.0.0/8"], "outbound": "block" }
]
}
Внутренний DNS / AdBlock
Сервер может запустить встроенный DNS для клиентов, парсить списки AdBlock и резолвить через DoH.
"dns": {
"enabled": true,
"local_port": 50053,
"doh_upstream": "https://cloudflare-dns.com/dns-query",
"adblock_urls": [
"https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts"
]
}
Конфигурация клиента
Клиент слушает локальные порты (SOCKS5 или TUN) и отправляет трафик на сервер OSTP.
Модульная структура
| Поле | Тип | Описание |
|---|---|---|
version |
string | Версия конфига (например, "0.3.1"). |
inbounds |
array | Локальные слушатели (local_proxy, tun). |
outbounds |
array | Исходящие подключения (ostp, direct, selector, urltest). |
routing |
object | Правила перенаправления локального трафика в outbounds. |
log.level |
string | "info", "debug" или "warn". |
Client Inbounds
1. Локальный прокси (SOCKS5 / HTTP)
{
"type": "local_proxy",
"tag": "socks-in",
"protocol": "socks", // "socks" или "http"
"listen": "127.0.0.1",
"port": 1088
}
2. TUN Интерфейс
Полноценная маршрутизация через виртуальный сетевой адаптер. Требует прав администратора.
{
"type": "tun",
"tag": "tun-in",
"auto_route": true,
"mtu": 1140
}
Client Outbounds
1. OSTP Outbound
Подключение к удаленному серверу OSTP.
{
"type": "ostp",
"tag": "proxy",
"server": "192.168.1.100",
"port": 50000,
"access_key": "ВАШ_СЕКРЕТНЫЙ_КЛЮЧ",
"transport": {
"type": "udp" // "udp", "uot" (UDP over TCP), или "dns"
},
"multiplex": {
"enabled": true,
"connections": 4
}
}
DNS Транспорт (dnstt):
При использовании DNS туннеля:
"transport": {
"type": "dns",
"domain": "t.yourdomain.com",
"resolver": "1.1.1.1",
"pubkey": "DNSTT_PUBKEY"
}
2. Direct / Block / Socks
Клиенты также могут использовать direct (в обход прокси), block (блокировка) или socks.
3. Selector / URLTest
Для балансировки или ручного переключения между серверами ostp.
{
"type": "selector",
"tag": "select",
"outbounds": ["server1", "server2"],
"default": "server1"
}
{
"type": "urltest",
"tag": "auto-balancer",
"outbounds": ["server1", "server2"],
"url": "http://cp.cloudflare.com",
"interval": "5m"
}
Client Routing (Маршрутизация)
Полностью аналогична серверной.
"routing": {
"default_outbound": "proxy",
"rules": [
{ "domain_suffix": ["google.com", "youtube.com"], "outbound": "proxy" },
{ "ip_cidr": ["192.168.0.0/16", "10.0.0.0/8"], "outbound": "direct" }
]
}