From 88827ad2b5893db20bf1af4799c60f111ea3f1ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=91=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=80=D0=B5=D0=B2?= Date: Sun, 26 Apr 2026 14:31:42 +0300 Subject: [PATCH] =?UTF-8?q?setup:=20=D0=BE=D0=B4=D0=BD=D0=B0=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=B0=D0=BD=D0=B4=D0=B0=20=D0=BD=D0=B0=20=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D1=83=20(VPS=20?= =?UTF-8?q?=D0=B8=20=D1=80=D0=BE=D1=83=D1=82=D0=B5=D1=80)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit setup-vps.sh — на VPS: снос+установка сервера туннеля одной командой, опционально сразу `add ` третьим аргументом. setup-router.sh — на роутере: снос+установка панели keenetic_ssh-web и (если заданы 4 ENV-переменные) клиента туннеля. Без ENV — только панель. Обёртки нужны, чтобы пользователь копировал ровно ОДНУ строку, без переменных типа $RAW, которые ломаются при копи-паст из markdown-чата. --- setup-router.sh | 62 +++++++++++++++++++++++++++++++++++++++++++++++++ setup-vps.sh | 42 +++++++++++++++++++++++++++++++++ 2 files changed, 104 insertions(+) create mode 100755 setup-router.sh create mode 100755 setup-vps.sh diff --git a/setup-router.sh b/setup-router.sh new file mode 100755 index 0000000..68f2ac6 --- /dev/null +++ b/setup-router.sh @@ -0,0 +1,62 @@ +#!/bin/sh +# setup-router.sh — turnkey: снос + установка панели keenetic_ssh-web +# и (опционально) WireGuard-туннеля на роутере (Keenetic + Entware). +# +# На роутере (через SSH в Entware shell): +# +# # Только панель (без туннеля): +# curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/setup-router.sh | sh +# +# # Панель + туннель — задайте 4 ENV-переменные перед запуском +# # (их выдаёт `sudo kssh-tun add ` на VPS): +# export VPS_ENDPOINT=SERVER_IP:51820 +# export VPS_PUBKEY='...' +# export CLIENT_IP=10.99.0.X +# export CLIENT_PRIVKEY='...' +# curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/setup-router.sh | sh +# +# Что делает (одной командой): +# 1) сносит старую панель и старый клиент туннеля (если были) +# 2) ставит панель заново (порт 2001) +# 3) если ENV-переменные туннеля заданы — ставит туннель (wg0) +# +# Что НЕ трогает: HydraRoute Neo (hrneo, hrweb), XKeen, ваши кастомные репо, +# /opt/etc/opkg.conf, чужие WG-конфиги Keenetic, общие правила iptables. +set -e + +REPO="${KSSH_REPO:-andrey271192/keenetic_ssh-web}" +BRANCH="${KSSH_BRANCH:-main}" +RAW="https://raw.githubusercontent.com/${REPO}/${BRANCH}" + +WANT_TUNNEL=1 +for v in VPS_ENDPOINT VPS_PUBKEY CLIENT_IP CLIENT_PRIVKEY; do + eval "val=\"\${$v:-}\"" + if [ -z "$val" ]; then WANT_TUNNEL=0; fi +done + +echo "==> [1/3] Снос старой установки (панель + туннель, если были)…" +curl -fsSL "$RAW/tunnel/tunnel-uninstall.sh" 2>/dev/null | sh || true +curl -fsSL "$RAW/uninstall.sh" | sh || true + +echo +echo "==> [2/3] Установка панели keenetic_ssh-web…" +curl -fsSL "$RAW/bootstrap.sh" | sh + +echo +if [ "$WANT_TUNNEL" = "1" ]; then + echo "==> [3/3] Установка туннеля ($CLIENT_IP → $VPS_ENDPOINT)…" + curl -fsSL "$RAW/tunnel/tunnel-install.sh" | sh +else + echo "==> [3/3] ENV-переменные туннеля не заданы — пропуск." + echo " Чтобы поставить туннель: задайте VPS_ENDPOINT/VPS_PUBKEY/CLIENT_IP/CLIENT_PRIVKEY" + echo " (их даёт 'sudo kssh-tun add ' на VPS) и запустите этот скрипт ещё раз." +fi + +echo +echo "============================================================" +echo "Готово." +echo "Панель: http://:2001 (логин/пароль — от веб-админки роутера)" +if [ "$WANT_TUNNEL" = "1" ]; then + echo "Туннель: с VPS теперь доступно http://$CLIENT_IP:2001 и ssh root@$CLIENT_IP" +fi +echo "============================================================" diff --git a/setup-vps.sh b/setup-vps.sh new file mode 100755 index 0000000..d740a7c --- /dev/null +++ b/setup-vps.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# setup-vps.sh — turnkey: снос + установка WireGuard-сервера kssh-tunnel. +# +# Запуск (любой из вариантов): +# curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/setup-vps.sh | sudo bash +# curl -fsSL https://raw.githubusercontent.com/andrey271192/keenetic_ssh-web/main/setup-vps.sh | sudo bash -s -- add +# +# Что делает (одной командой): +# 1) сносит предыдущий kssh-tunnel сервер (если был) +# 2) ставит сервер заново (apt install wireguard, ключи, wg0, kssh-tun) +# 3) если передан "add " — сразу добавляет peer и печатает ENV-блок +# +# Что НЕ трогает: HydraRoute, любые ваши приложения, Docker, чужие правила +# iptables, apt-пакет wireguard (не делает remove). +set -e + +REPO="${KSSH_REPO:-andrey271192/keenetic_ssh-web}" +BRANCH="${KSSH_BRANCH:-main}" +RAW="https://raw.githubusercontent.com/${REPO}/${BRANCH}" + +if [ "$(id -u)" -ne 0 ]; then + echo "Запустите через sudo." >&2 + exit 1 +fi + +echo "==> [1/3] Снос предыдущей установки kssh-tunnel сервера…" +curl -fsSL "$RAW/tunnel/server-uninstall.sh" | bash || true + +echo +echo "==> [2/3] Установка сервера kssh-tunnel…" +curl -fsSL "$RAW/tunnel/server-install.sh" | bash + +if [ "${1:-}" = "add" ] && [ -n "${2:-}" ]; then + echo + echo "==> [3/3] Добавление peer '$2'…" + /usr/local/bin/kssh-tun add "$2" +else + echo + echo "==> [3/3] Сервер готов. Добавьте роутер командой:" + echo " sudo kssh-tun add " + echo " (выдаст 5-строчный блок для копирования на роутер)" +fi