sshd на ai-egress (OpenSSH 10, PerSourcePenalties) штрафует наш IP за соединения, не дошедшие до аутентификации, и на время штрафа отказывает всем SSH-соединениям с хоста. 32 туннеля пула перезапускались одновременно раз в 5 с и копили штраф сами: 27.09.2026 — 296 перезапусков в час, на узле «drop connection … penalty: connections without attempting authentication». - юниты пула и основного туннеля перенесены в deploy/ (были только в /etc); - старт экземпляров пула разнесён на 0–15 с (ExecStartPre); - пауза между перезапусками растёт 5 с → 180 с (RestartSteps/RestartMaxDelaySec); - keepalive пула 10 с × 3 вместо 5 с × 2: короткое подвисание не рвёт туннель; - tests/test_deploy_units.py держит эти свойства, AGENTS.md описывает механизм.
22 lines
1.1 KiB
Desktop File
22 lines
1.1 KiB
Desktop File
[Unit]
|
||
Description=yt-grab egress SOCKS tunnel via ai-egress (<IP_AI_EGRESS>) for banned sites
|
||
Documentation=man:ssh(1)
|
||
After=network-online.target
|
||
Wants=network-online.target
|
||
|
||
[Service]
|
||
Type=simple
|
||
# Динамический SOCKS5 на 127.0.0.1:18099 -> выход с IP узла ai-egress.
|
||
# Только петля: наружу порт не смотрит, открытого прокси нет.
|
||
ExecStart=/usr/bin/ssh -p 10222 -i /root/.ssh/id_ed25519 -o BatchMode=yes -o IdentitiesOnly=yes -o StrictHostKeyChecking=accept-new -o UserKnownHostsFile=/root/.ssh/known_hosts -o ExitOnForwardFailure=yes -o ServerAliveInterval=20 -o ServerAliveCountMax=3 -o ConnectTimeout=15 -N -D 127.0.0.1:18099 root@<IP_AI_EGRESS>
|
||
Restart=always
|
||
# Растущая пауза: быстрые повторы при сбое пути копят штраф sshd узла
|
||
# (PerSourcePenalties) и продлевают отказ всем туннелям с нашего IP.
|
||
RestartSec=5
|
||
RestartSteps=6
|
||
RestartMaxDelaySec=180
|
||
User=root
|
||
NoNewPrivileges=yes
|
||
|
||
[Install]
|
||
WantedBy=multi-user.target
|