25

如何在wireguard中启用网络活动记录?

我搜索了查看服务器上日志的方法,但在/var/log.

由于它作为 systemd 服务运行,因此我可以看到一些最少的信息

sudo systemctl status wg-quick@wg0

但这提供的信息很少。

也试过:

journalctl -u wg-quick@wg0

但这并没有比上一个命令显示更多。

理想情况下,我希望能够看到对等连接和(可选)正在发出的请求。

到目前为止,我发现的唯一有用的诊断命令是sudo wg show wg0(或只是sudo wg),但我希望有一种方法可以提高详细程度并使其实时显示。

更新

可以通过使用第三方网络工具(例如tcpdump | grep 10.66.66(假设隧道设置在10.66.66.x)和nethogs

4

2 回答 2

0

从内核 5.6 开始,您可以像这样使用动态调试功能:

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

然后,您可以使用dmesgjournalctl使用dmesg -wH-w跟随,-H人类可读)或journalctl -kf.
您的内核应该使用CONFIG_DYNAMIC_DEBUG标志编译,您可以通过查看/boot/config-$(uname -r)/proc/config.gz/boot/config(取自[此处])之类的文件进行检查(https://superuser.com/questions/287371/obtain-kernel-config-from-currently-running- linux系统

基于这个答案

于 2021-06-12T19:49:25.377 回答
0

如果你只需要对等“连接”,我写了这个:https ://github.com/nikaro/wirelogd

Wirelogd 是 WireGuard 的日志记录守护程序。由于 WireGuard 本身不记录其对等点的状态(并且由于它是基于 UDP 的,因此没有“连接状态”的概念),Wirelogd 依赖于最新的握手来确定对等点是活动的还是非活动的。当有流量时,握手应该每 2 分钟更新一次。如果没有流量握手不会更新。基于这种行为,我们假设如果一段时间后没有新的握手(默认 Wirelogd 超时值为 5 分钟),则客户端可能处于非活动状态。

于 2021-06-14T07:32:31.673 回答