mirror of
https://github.com/andrey271192/keenetic_ssh-web.git
synced 2026-09-20 14:42:01 +00:00
- 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, кастомные репо, чужие правила).
58 lines
2.4 KiB
Bash
Executable File
58 lines
2.4 KiB
Bash
Executable File
#!/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 "============================================================"
|