如何查看 WireGuard 的调试日志(例如查看身份验证尝试)

如何查看 WireGuard 的调试日志(例如查看身份验证尝试)

我已经成功设置了WireGuard VPN在我的 Debian 10 服务器上。与 OpenVPN 的设置相比,它非常简单,而且运行良好。

但是,除了来自 的日志之外,我看不到任何日志。例如,我想知道何时发生身份验证尝试失败。有没有办法监控这种情况?例如,使用 openvpn,我可以根据身份验证尝试使用 fail2ban。journalctl -u [email protected]

答案1

假设您正在运行支持动态调试的内核,您可以通过执行以下命令启用调试日志:

# modprobe wireguard 
# echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control

dmesg然后可以通过或使用日志journalctl。使用dmesg,只需使用以下命令:

$ dmesg -wH

-H--human启用颜色、相对时间等用户友好功能)

-w--follow

您还可以在具有 systemd 的系统上使用:

$ journalctl -kf

答案2

自动激活电线保护直接在启动时进行动态调试日志记录,有wireguard内核模块

  • 启动时加载
  • 使用动态调试选项
# automatically modprobe wireguard during boot:
echo "wireguard" | sudo tee /etc/modules-load.d/wireguard.conf

# automatically activate dynamic_debug for wireguard during boot:
echo "options wireguard dyndbg=+p" | sudo tee /etc/modprobe.d/wireguard.conf

(参考:模块初始化时的调试消息来自 kernel.org 文档

电线保护然后可以使用以下任何命令来跟踪/监控特定的日志条目:

sudo journalctl -x -f -g wireguard*

sudo dmesg -wH --color=always | grep -i wireguard

答案3

我的用户日志记录版本,每 3 分钟在 crontab 中编写一次脚本。如果不活动时间少于 180 秒,则不执行任何操作,否则将附加到日志文件。

wg show all dump | grep 10.0 | awk 'BEGIN {}; {if (systime()-$6 <180 ) print strftime("%m-%d-%Y %H:%M:%S", systime()),$5, $4, (systime()-$6) "sec" } ; END {}' >> /var/log/wg.log

10.0注意:在输出中搜索,因为这是我的私有网络中的 IP 地址的开头。

相关内容