mirror of
https://github.com/andrey271192/keenetic_ssh-web.git
synced 2026-09-20 14:42:01 +00:00
tunnel: ufw allow on wg0 + клиент по умолчанию маршрутит только VPS (/32)
После handshake траффик упирался в UFW на сервере (открывали только 51820/udp, не сам интерфейс wg0). Добавляем `ufw allow in/out on wg0` в server-install.sh — теперь ICMP/HTTP/SSH внутри туннеля проходят. На клиенте AllowedIPs по умолчанию = 10.99.0.1/32 (только сам VPS), а не /24. Это устраняет возможный конфликт с существующими маршрутами для 10.99.0.0/24, если у Keenetic другие WG-интерфейсы используют ту же подсеть. Hub-and-spoke (роутер→VPS) — типичный сценарий, /32 достаточно. Кому нужен peer-to-peer через хаб — WG_SUBNET=10.99.0.0/24.
This commit is contained in:
@@ -125,7 +125,7 @@ ssh root@10.99.0.5
|
|||||||
| `CLIENT_IP` | да | IP роутера в туннельной подсети, например `10.99.0.5`. |
|
| `CLIENT_IP` | да | IP роутера в туннельной подсети, например `10.99.0.5`. |
|
||||||
| `CLIENT_PRIVKEY` | да | PrivateKey роутера (выдаёт `kssh-tun add`). |
|
| `CLIENT_PRIVKEY` | да | PrivateKey роутера (выдаёт `kssh-tun add`). |
|
||||||
| `WG_IF` | `wg0` | Имя интерфейса. |
|
| `WG_IF` | `wg0` | Имя интерфейса. |
|
||||||
| `WG_SUBNET` | `10.99.0.0/24` | AllowedIPs клиента (что маршрутизировать в туннель). |
|
| `WG_SUBNET` | `10.99.0.1/32` | AllowedIPs клиента (что маршрутизировать в туннель). По умолчанию только VPS, чтобы не конфликтовать с существующими WG-маршрутами Keenetic. Поставьте `10.99.0.0/24` если нужно общение peer-to-peer. |
|
||||||
| `WG_KEEPALIVE` | `25` | `PersistentKeepalive` в секундах (нужен из-за NAT провайдера). |
|
| `WG_KEEPALIVE` | `25` | `PersistentKeepalive` в секундах (нужен из-за NAT провайдера). |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|||||||
@@ -63,9 +63,12 @@ fi
|
|||||||
systemctl enable "wg-quick@${WG_IF}" >/dev/null 2>&1 || true
|
systemctl enable "wg-quick@${WG_IF}" >/dev/null 2>&1 || true
|
||||||
systemctl restart "wg-quick@${WG_IF}"
|
systemctl restart "wg-quick@${WG_IF}"
|
||||||
|
|
||||||
# Открыть UDP-порт в UFW, если он активен
|
# UFW: открываем UDP-порт WG и ВЕСЬ трафик внутри туннеля (на самом wg0).
|
||||||
|
# Без второго правила handshake пройдёт, а ping/HTTP внутри wg0 будут глохнуть.
|
||||||
if command -v ufw >/dev/null 2>&1 && ufw status 2>/dev/null | grep -q "Status: active"; then
|
if command -v ufw >/dev/null 2>&1 && ufw status 2>/dev/null | grep -q "Status: active"; then
|
||||||
ufw allow "${WG_PORT}/udp" >/dev/null 2>&1 || true
|
ufw allow "${WG_PORT}/udp" >/dev/null 2>&1 || true
|
||||||
|
ufw allow in on "$WG_IF" >/dev/null 2>&1 || true
|
||||||
|
ufw allow out on "$WG_IF" >/dev/null 2>&1 || true
|
||||||
fi
|
fi
|
||||||
|
|
||||||
PUB_IP="$(curl -s4 ifconfig.me 2>/dev/null || hostname -I | awk '{print $1}')"
|
PUB_IP="$(curl -s4 ifconfig.me 2>/dev/null || hostname -I | awk '{print $1}')"
|
||||||
|
|||||||
@@ -12,7 +12,11 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
WG_IF="${WG_IF:-wg0}"
|
WG_IF="${WG_IF:-wg0}"
|
||||||
WG_SUBNET="${WG_SUBNET:-10.99.0.0/24}"
|
# Что маршрутизировать в туннель. По умолчанию только сам VPS (/32),
|
||||||
|
# чтобы не конфликтовать с возможными существующими маршрутами
|
||||||
|
# 10.99.0.0/24 на роутере (другие WG-интерфейсы Keenetic). Если нужен
|
||||||
|
# доступ к другим peer-ам в подсети — поставьте WG_SUBNET=10.99.0.0/24.
|
||||||
|
WG_SUBNET="${WG_SUBNET:-10.99.0.1/32}"
|
||||||
WG_KEEPALIVE="${WG_KEEPALIVE:-25}"
|
WG_KEEPALIVE="${WG_KEEPALIVE:-25}"
|
||||||
WG_DIR="/opt/etc/wireguard"
|
WG_DIR="/opt/etc/wireguard"
|
||||||
INIT="/opt/etc/init.d/S50kssh-tunnel"
|
INIT="/opt/etc/init.d/S50kssh-tunnel"
|
||||||
|
|||||||
Reference in New Issue
Block a user