5 Commits

Author SHA1 Message Date
Андрей Бобырев
c6db82bd2e tunnel: per-peer DNAT ports via kssh-tun add --dnat
Made-with: Cursor
2026-04-26 16:19:59 +03:00
Андрей Бобырев
90006b6149 tunnel: печатать DNAT_PORTS=81,79 в ENV-блоке
Made-with: Cursor
2026-04-26 16:14:50 +03:00
Андрей Бобырев
f9407fdae4 tunnel: kssh-tun применяет конфиг через systemctl restart, а не wg syncconf
`wg syncconf "$IF" <(wg-quick strip "$IF")` падал тихо в окружении, где
process substitution не сработал, и файл /etc/wireguard/wg0.conf
обновлялся, а ядерное состояние wg-интерфейса оставалось старым.
В итоге peer добавлен в .conf, но `wg show` его не видит и трафика нет.

Теперь после регенерации конфига делаем `systemctl restart wg-quick@$IF`.
Это пересоздаёт интерфейс целиком — дороже, чем syncconf, но гарантирует
применение. Если systemd-юнит не enabled, остаётся fallback на syncconf
через временный файл (без process substitution).
2026-04-26 12:15:34 +03:00
Андрей Бобырев
d96f6a61dd tunnel: ENV-блок через export, чтобы работало и блоком, и построчно
Многострочная команда с backslash-переносами падала в BusyBox ash, если
её вставляли построчно: первая строка превращалась в команду, остальные
терялись. Меняем формат на 4 строки `export VAR=...` + 1 строка `curl ...`.
В таком виде вставка работает и блоком, и по одной строке, в любом shell.
2026-04-26 11:23:09 +03:00
Андрей Бобырев
c46273e72a tunnel: WireGuard VPS↔роутер для серых IP, без правки других сервисов
Решает доступ к роутеру с серым IP через белый VPS — поднимаем WG-туннель
(UDP 51820, подсеть 10.99.0.0/24), и любой сервис на VPS обращается к
роутеру по 10.99.0.X. SSH, HTTP, что угодно — без проброса портов и
без изменений в keenetic_ssh-web/keenetic-unified/Domain Hydra/etc.

Что добавлено:
- tunnel/server-install.sh — установка WG-сервера на Ubuntu VPS,
  генерация ключей, запуск wg-quick@wg0, открытие 51820/udp в ufw.
- tunnel/kssh-tun — утилита управления peer-ами на VPS:
  add/list/show/remove. add генерит ключи и IP, печатает ENV-блок
  с одной командой для роутера.
- tunnel/tunnel-install.sh — клиент для роутера (Entware), принимает
  4 ENV (VPS_ENDPOINT/VPS_PUBKEY/CLIENT_IP/CLIENT_PRIVKEY), ставит
  wireguard-tools, поднимает wg0 и init-скрипт автозапуска.
- tunnel/README.md — пошаговая инструкция массовой установки.
- README.md: краткая ссылка из основного раздела.

Параметры подсети/порта/имени репо — через ENV для масштабной установки.
2026-04-26 11:12:19 +03:00