From 8d11925fe16b6e7cdd3cba7888411acfdb02b0bb Mon Sep 17 00:00:00 2001 From: Antigravity Agent Date: Sat, 3 Oct 2026 10:01:13 -0400 Subject: [PATCH] enforce WireGuard persistent-keepalive 25 (NAT expiry fix) --- bin/netvm-node-up.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/bin/netvm-node-up.sh b/bin/netvm-node-up.sh index 4c7d419..1c89bdc 100755 --- a/bin/netvm-node-up.sh +++ b/bin/netvm-node-up.sh @@ -50,6 +50,12 @@ STRIPPED=$(mktemp) grep -vE '^\s*(Address|DNS|MTU|Table|PreUp|PreDown|PostUp|PostDown|SaveConfig)\s*=' "$CONF" > "$STRIPPED" nsexec wg setconf "$WG" "$STRIPPED" rm -f "$STRIPPED" +# Persistent keepalive: without it, NAT mapping expires after 1-2 min of +# inactivity and the tunnel silently dies (page loads, then network fails). +PEER_PK=$(grep -oP '^\s*PublicKey\s*=\s*\K\S+' "$CONF" | head -1) +if [ -n "$PEER_PK" ]; then + nsexec wg set "$WG" peer "$PEER_PK" persistent-keepalive 25 2>/dev/null || true +fi MTU=$(grep -oP '^\s*MTU\s*=\s*\K\d+' "$CONF" | head -1); MTU=${MTU:-1280} nsexec ip link set "$WG" mtu "$MTU" for a in $(grep -oP '^\s*Address\s*=\s*\K\S+' "$CONF" | tr ',' ' '); do