Перезапуск сервиса каждые 45–60 минут — это «колхоз 2024 года».
В 2025 году те, кто реально побеждает ТСПУ надолго и красиво, уже не перезапускают ничего вообще.

Они делают динамическое перенаправление без разрыва соединений — и это именно то, что превращает ППРЧ-порты из «прикольно, но геморно» в «неубиваемо и незаметно».

Рабочие способы 2025 года (без перезапуска)

| Способ | Как работает | Интервал перескока | Совместимость | Живучесть в РФ (2025) |
|-------------------------|-------------------------------------------------------------------------------|---------------------|-----------------------------------|-----------------------|
| nftables + flowtable (Linux 5.10+) | Одно постоянное правило перенаправляет любой трафик с любого порта на внутренний порт Xray/Hysteria (например, 40000). Меняется только таблица, соединения не рвутся. | хоть каждые 5 секунд | Xray, Sing-box, Hysteria2, OpenVPN | ★★★★★ (идеал) |
| iptables TPROXY + mark | Аналогично, но для старых ядер. Маркировка пакетов + mangle. | 10–30 сек | Любой UDP/TCP-прокси | ★★★★☆ |
| sing-box 1.9+ multiplex + inbound group | В конфиге указываешь 1000–5000 портов сразу, sing-box сам распределяет и переключает их по алгоритму (включая функцию времени). Ноль внешнего перенаправления. | 1–60 сек | Только sing-box | ★★★★★ |
| Hysteria 2 bind range (с 2024.12) | Параметр listen = "0.0.0.0:20000-55535" + port_hopping = true. Hysteria сама прыгает внутри диапазона по ППРЧ-алгоритму, используя тот же ключ, что и клиент. | 5–300 сек | Только Hysteria 2 | ★★★★★ |
| Xray + vless-reality + multi-port inbound + reload | Один inbound с массивом портов + systemctl reload xray (graceful, не рвёт соединения). | 30–3600 сек | Xray/V2Ray | ★★★★☆ |

Самый чистый и неубиваемый вариант 2025 года

nftables/flowtable + один фиксированный внутренний порт
(используют почти все серьёзные группы в РФ)

# 1. Сервер (VPS)
# Xray/Hysteria слушает только внутри: localhost:40000 или 127.0.0.1:40000

# 2. Скрипт, который меняет внешний порт без разрыва (запускать в @reboot и cron)
#!/bin/bash
SECRET="your-mega-secret-2025"
BASE=20000
RANGE=45535

while :; do
    NOW=$(date +%s)
    HOUR=$((NOW / 3600))
    PORT=$(( BASE + $(echo -n "$SECRET$HOUR" | b3sum | cut -d' ' -f1 | head -c10) % RANGE ))

    # Атомарно меняем только одну строку в nftables
    nft flush chain inet hopwall redirect
    nft add rule inet hopwall redirect tcp dport $PORT counter redirect to 40000
    nft add rule inet hopwall redirect udp dport $PORT counter redirect to 40000

    echo "$(date) → внешний порт $PORT → 40000"
    sleep $(( 3600 - (NOW % 3600) + 5 ))
done

Преимущества:

  • Xray/Hysteria/Sing-box никогда не трогаются и не перезапускаются.
  • Соединения живут часами, даже если порт сменился 10 раз.
  • flowtable ускоряет перенаправление до уровня железа.
  • Клиенту вообще ничего не надо обновлять — он всегда стучится на текущий порт по той же формуле.

Клиентская часть (один раз настроил — забыл)

В Nekobox / Hiddify / v2rayNG / sing-box просто включаешь скрипт или плагин, который каждые 30–60 минут меняет только поле port в активном outbound по той же формуле.
Никаких разрывов — старое соединение умирает само через keep-alive, новое уже на новом порту.

Готовые решения, которые уже это делают «из коробки» (ноябрь 2025)

1. Hysteria 2 + port_hopping = true → просто добавь в config

   listen: :20000-55535
   port_hopping: true
   hopping_secret: "your-secret"
   hopping_interval: 1800s   # или 300s, если хочешь по-военному

Всё. Никаких скриптов.

2. sing-box 1.10-beta → inbound type = “mixed” + port_range и hop_interval.

3. AmneziaVPN 4.8.5+ → в кастомном контейнере включи «Zero-Downtime Port Hopping».

[file-name 000093_2025-11-13_08-41-17.txt]