如何在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
来启动连接是可能的,但这仍然不能回答如何通过有线直接进行连接的问题。
发布于 2021-06-14 07:32:31
如果您所需要的只是对等“连接”,我写了以下内容:https://github.com/nikaro/wirelogd
Wirelogd是WireGuard的一个日志守护进程。因为WireGuard本身不记录其对等点的状态(而且它是基于UDP的,所以没有“连接状态”的概念),所以Wirelogd依赖于最新的握手来确定一个对等点是活动的还是非活动的。当有交易时,握手应该每2分钟更新一次。如果没有交易,握手就不会恢复。基于这种行为,我们假设,如果在一段时间后没有新的握手(默认的Wirelogd超时值为5分钟),则客户机可能是非活动的。
发布于 2022-03-17 07:20:49
我的版本日志用户,脚本在crontab每3个月(10.0 -您的专用网络)。如果不活动少于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
发布于 2021-06-12 19:49:25
从内核5.6开始,您可以使用如下的动态调试特性:
# modprobe wireguard
# echo module wireguard +p > /sys/kernel/debug/dynamic_debug/control
然后,您可以使用dmesg
或journalctl
来查看结果,命令包括dmesg -wH
(-w
can,-H
human )或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-system)来进行检查。
基于this答案
https://stackoverflow.com/questions/61109400
复制相似问题