From d90f7e970984f414064137823214ddb8aa20eaa2 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 12:21:10 +0300 Subject: [PATCH] =?UTF-8?q?tunnel:=20server-install=20=D1=81=D1=82=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=20ACCEPT=20=D0=B4=D0=BB=D1=8F=20wg0=20=D0=B2?= =?UTF-8?q?=20INPUT=20=D0=BF=D0=BE=D0=B2=D0=B5=D1=80=D1=85=20=D1=81=D1=83?= =?UTF-8?q?=D1=89=D0=B5=D1=81=D1=82=D0=B2=D1=83=D1=8E=D1=89=D0=B8=D1=85=20?= =?UTF-8?q?DROP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit На VPS часто стоит iptables -A INPUT -p icmp --icmp-type 8 -j DROP (блокировка внешних ping-ов). Это правило применяется ко всем интерфейсам, включая wg0, и глушит ping через туннель — handshake идёт, а ICMP пакеты внутри wg0 пропадают. Решаем точечно: вставляем `iptables -I INPUT 1 -i wg0 -j ACCEPT` перед всеми DROP-правилами. Внешняя защита остаётся как была, а трафик внутри туннеля ничем не блокируется. Дополнительно сохраняем правило (netfilter-persistent / iptables-save), чтобы переживало ребут. --- tunnel/server-install.sh | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/tunnel/server-install.sh b/tunnel/server-install.sh index 71fdc9b..16bd12c 100755 --- a/tunnel/server-install.sh +++ b/tunnel/server-install.sh @@ -71,6 +71,19 @@ if command -v ufw >/dev/null 2>&1 && ufw status 2>/dev/null | grep -q "Status: a ufw allow out on "$WG_IF" >/dev/null 2>&1 || true fi +# iptables: разрешаем весь трафик с wg0 ДО любых DROP-правил (часто на VPS +# стоит блокировка ICMP echo-request — она блокирует и пинги через туннель). +if command -v iptables >/dev/null 2>&1; then + iptables -C INPUT -i "$WG_IF" -j ACCEPT 2>/dev/null \ + || iptables -I INPUT 1 -i "$WG_IF" -j ACCEPT + # Сохранить, если установлен iptables-persistent + if command -v netfilter-persistent >/dev/null 2>&1; then + netfilter-persistent save >/dev/null 2>&1 || true + elif [ -d /etc/iptables ]; then + iptables-save > /etc/iptables/rules.v4 2>/dev/null || true + fi +fi + PUB_IP="$(curl -s4 ifconfig.me 2>/dev/null || hostname -I | awk '{print $1}')" SERVER_PUB="$(cat "$WG_DIR/server_public.key")"