Files
keenetic_ssh-web/tunnel/tunnel-uninstall.sh
Андрей Бобырев 3684c0dc0b tunnel: фикс файрвола Keenetic + раздельные uninstall + README под ключ
- tunnel/tunnel-install.sh: в init-скрипте добавлен `iptables -I INPUT -i wg0
  -j ACCEPT`, OUTPUT-аналог и `rp_filter=2`. Без этого Keenetic режет ответы
  VPS→роутер: handshake проходит, но ping/HTTP внутри туннеля молча дропаются.
  В down() — снимаем эти же правила.

- tunnel/tunnel-uninstall.sh (новый): сносит ТОЛЬКО клиентскую часть туннеля
  (wg0.conf, init, rc.d, наши iptables-правила). Не трогает wireguard-tools,
  чужие WG-конфиги, keenetic_ssh-web, HydraRoute Neo.

- tunnel/server-uninstall.sh (новый): сносит ТОЛЬКО серверную часть туннеля
  (wg-quick@wg0, /etc/wireguard/{wg0.conf,server_*.key,peers/}, kssh-tun,
  ufw-правила kssh-tunnel). Не делает apt remove для wireguard.

- README.md: переписан под ключ. Чётко разделены два пакета (A: панель,
  B: туннель), оба ставятся и удаляются отдельно. Явно перечислено, что
  скрипты НЕ трогают (HydraRoute Neo, кастомные репо, чужие правила).
2026-04-26 14:22:33 +03:00

58 lines
2.4 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

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.

#!/bin/sh
# tunnel/tunnel-uninstall.sh — удаление WireGuard-клиента kssh-tunnel с роутера (Entware).
# Снимает ТОЛЬКО то, что поставил tunnel-install.sh:
# - интерфейс wg0 (или WG_IF)
# - /opt/etc/wireguard/<WG_IF>.conf
# - init-скрипт /opt/etc/init.d/S50kssh-tunnel и rc.d-симлинк
# - правила iptables/sysctl, добавленные туннелем (ACCEPT на wg0)
#
# Что НЕ трогает: пакет wireguard-tools, общие правила iptables, конфиги других
# WireGuard-интерфейсов (Keenetic NDM, HydraRoute и пр.), keenetic_ssh-web.
set -e
WG_IF="${WG_IF:-wg0}"
WG_DIR="/opt/etc/wireguard"
INIT="/opt/etc/init.d/S50kssh-tunnel"
RCD="/opt/etc/rc.d/S50kssh-tunnel"
echo "==> kssh-tunnel: удаление клиента ($WG_IF)"
# 1. Остановить интерфейс
if [ -x "$INIT" ]; then
"$INIT" stop 2>/dev/null || true
fi
if ip link show "$WG_IF" >/dev/null 2>&1; then
ip link del "$WG_IF" 2>/dev/null || true
fi
# 2. Снять правила, которые добавляли при старте туннеля
if command -v iptables >/dev/null 2>&1; then
while iptables -C INPUT -i "$WG_IF" -j ACCEPT 2>/dev/null; do
iptables -D INPUT -i "$WG_IF" -j ACCEPT 2>/dev/null || break
done
while iptables -C OUTPUT -o "$WG_IF" -j ACCEPT 2>/dev/null; do
iptables -D OUTPUT -o "$WG_IF" -j ACCEPT 2>/dev/null || break
done
fi
# 3. Удалить файлы туннеля (НЕ трогаем чужие WG-конфиги в этой папке)
rm -f "$WG_DIR/$WG_IF.conf"
rm -f "$RCD" "$INIT"
# Папку wireguard сносим только если она пуста (там могут лежать чужие конфиги)
rmdir "$WG_DIR" 2>/dev/null || true
echo
echo "============================================================"
echo "Готово. Удалены:"
echo " $WG_DIR/$WG_IF.conf"
echo " $INIT"
echo " $RCD (если был)"
echo " iptables ACCEPT для $WG_IF"
echo
echo "НЕ удалены (используются другими, не наша зона ответственности):"
echo " пакет wireguard-tools (opkg)"
echo " общие правила iptables / sysctl"
echo " /opt/etc/wireguard/* кроме $WG_IF.conf"
echo " keenetic_ssh-web (см. uninstall.sh в основном репо)"
echo "============================================================"