如何查看内核日志?

如何查看内核日志?

我运行 Ubuntu 16.04

在linux内核中,有一些关于数据包过滤条件的日志语句,我想看看它们是否真的被触发。

一个例子是:

/* Smaller that minimal TCP header? */
th = skb_header_pointer(skb, dataoff, sizeof(_tcph), &_tcph);
if (th == NULL) {
    if (LOG_INVALID(net, IPPROTO_TCP))
        nf_log_packet(net, pf, 0, skb, NULL, NULL, NULL,
            "nf_ct_tcp: short packet ");
    return -NF_ACCEPT;
}

https://github.com/torvalds/linux/blob/master/net/netfilter/nf_conntrack_proto_tcp.c 760路

如何设置我的 Linux 系统以便我可以在某处看到 nf_log_packet() 输出?也许在 /var/log/syslog 或其他一些目的地。

它在哪里记录?如何激活日志记录?

答案1

因此,以下步骤有效:

安装 Ulog,它与一些插件交互以捕获内核日志记录输出

sudo apt安装ulog2

然后通过 sudo echo "255" > /proc/sys/net/netfilter/nf_conntrack_log_invalid 激活状态 INVALID 日志记录

有关 255 的更多文档请参见此处: https://www.kernel.org/doc/Documentation/networking/nf_conntrack-sysctl.txt

在 /etc/ulog.conf 中设置要调试的 Ulog 捕获级别

那么日志,如果你触发它,将被存储在:/var/log/ulog/syslogemu.log

相关内容