我让树莓派保持 VPN 连接,几个小时后,我连接到它,但没有互联网连接。如何排除故障/诊断?

我让树莓派保持 VPN 连接,几个小时后,我连接到它,但没有互联网连接。如何排除故障/诊断?

我将树莓派连接到 VPN,然后将其留在那里几个小时。当我通过 SSH 或 VNC 检查它的连接时,我意识到它没有互联网连接。如果我重新启动并再次连接到 VPN,它会再次工作。

我的问题是:如何诊断问题?如何排除故障?是否有一些日志文件或 systemctl 日志可供我查看以找出导致问题的原因?

我想自动化如果 Pi 未连接到互联网,则会重新启动。我想通过一些.target文件或udev规则以“干净”的方式做到这一点。

答案1

您可能不需要重新启动。当 rpi 检测到中断时重新启动 VPN 连接应该足够了(除非是硬件故障)。

至于检测中断,您是否有某个主机或IP地址知道当 VPN 启动时您应该能够访问,但当 VPN 关闭时则无法访问?如果是这样,请设置一个尝试fping该主机的 cron 作业。如果有响应,则一切正常。如果没有,请重新启动 VPN。

否则,如果日志中记录了 VPN 中断,请编写一个脚本来监视日志并在 VPN 中断时重新启动 VPN。例如通过以下开头的内容:

tail -F /var/log/syslog |
  awk '/your outage message/ { system "/path/to/vpn-restart-script" }'

或者使用以下命令编写 perl 脚本文件::尾巴模块)。顺便说一句,File::Tail它位于libfile-tail-perlDebian 上的软件包中,因此在 Raspbian 上也应该可用。

如果您在日志文件中找不到中断消息,并且您的 VPN 连接是由 systemd 服务启动的,您也许可以使用它systemctl status <servicename>来查明它是否已启动。

简而言之,解决这个问题有两个部分:

  1. 可靠检测 VPN 是否启动。这可能需要 cron 作业或在后台运行的脚本来监视日志文件。可能需要多个测试条件来检测中断。

  2. 如果没有,请重新启动 VPN 连接。systemctl restart servicename如果 VPN 是通过 systemd 服务启动的,这可能就像运行一样简单。或/etc/init.d/vpn-service在 SysV 初始化上。 (这些名称并不准确,它们只是您真实服务名称的占位符)。

这些部分可以(并且应该)彼此独立地解决。

相关内容