From b6300281126d24a76e0af6aa755df0f00b7b29c8 Mon Sep 17 00:00:00 2001 From: xmz7891 Date: Wed, 7 Oct 2026 10:27:33 +0800 Subject: [PATCH] =?UTF-8?q?=EF=BB=BF=E7=9C=8B=E9=97=A8=E7=8B=97=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E9=97=B4=E9=9A=94=2020=20=E7=A7=92=20->=2010=20?= =?UTF-8?q?=E7=A7=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 每次 530 窗口从"出现"到"被看门狗发现并重启",最长要等一个检查周期。 20 秒缩到 10 秒,用户撞上 1033 的概率窗口直接减半。 代价:公网探测从每 20 秒一次变成每 10 秒一次。 这台设备本来就在长轮询,这点流量可以忽略。 设备上已生效(OnUnitActiveSec=10s, AccuracySec=3s)。 --- _build/_c12.txt | 9 +++++++++ _build/faster_watchdog.sh | 42 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100644 _build/_c12.txt create mode 100644 _build/faster_watchdog.sh diff --git a/_build/_c12.txt b/_build/_c12.txt new file mode 100644 index 0000000..a60310f --- /dev/null +++ b/_build/_c12.txt @@ -0,0 +1,9 @@ +看门狗检查间隔 20 秒 -> 10 秒 + +每次 530 窗口从"出现"到"被看门狗发现并重启",最长要等一个检查周期。 +20 秒缩到 10 秒,用户撞上 1033 的概率窗口直接减半。 + +代价:公网探测从每 20 秒一次变成每 10 秒一次。 +这台设备本来就在长轮询,这点流量可以忽略。 + +设备上已生效(OnUnitActiveSec=10s, AccuracySec=3s)。 diff --git a/_build/faster_watchdog.sh b/_build/faster_watchdog.sh new file mode 100644 index 0000000..054e83e --- /dev/null +++ b/_build/faster_watchdog.sh @@ -0,0 +1,42 @@ +#!/bin/bash +# watchdog 检查间隔 20 秒 -> 10 秒 +# +# 为什么:每次 530 窗口从"出现"到"被看门狗发现并重启", +# 最长要等一个检查周期。20 秒 -> 10 秒,用户撞上 1033 的 +# 概率窗口直接减半。 +# +# 代价:curl 更频繁(每 10 秒一次公网请求)。 +# 这台设备 4G 流量很小,而且本来就一直在长轮询,可以忽略。 +set -u + +echo " 改前:" +grep -E 'OnBootSec|OnUnitActiveSec|AccuracySec' /etc/systemd/system/lanremote-watchdog.timer | sed 's/^/ /' + +cat > /etc/systemd/system/lanremote-watchdog.timer <<'EOF' +[Unit] +Description=每 10 秒检查一次隧道连接数 + +[Timer] +# 20 秒 -> 10 秒:从"出问题"到"被重启"的等待窗口减半。 +# 开机后 45 秒开始第一次(隧道一般几十秒就连上了)。 +OnBootSec=45s +OnUnitActiveSec=10s +AccuracySec=3s +Unit=lanremote-watchdog.service + +[Install] +WantedBy=timers.target +EOF + +systemctl daemon-reload +systemctl restart lanremote-watchdog.timer + +echo +echo " 改后:" +grep -E 'OnBootSec|OnUnitActiveSec|AccuracySec' /etc/systemd/system/lanremote-watchdog.timer | sed 's/^/ /' +echo " 定时器状态: $(systemctl is-active lanremote-watchdog.timer)" +systemctl list-timers lanremote-watchdog.timer --no-pager 2>/dev/null | head -3 | sed 's/^/ /' + +echo +echo " 立即跑一次确认不报错:" +bash /root/lanremote-relay/watchdog.sh 2>&1 | tail -2 | sed 's/^/ /'