我正在尝试记录 iptables 操作,以便能够排查 FORWARD 规则不起作用的原因,并且我需要运行以下命令:
echo ipt_LOG >/proc/sys/net/netfilter/nf_log/2
这是在加载日志模块“ sudo modprobe ipt_LOG
”之后发生的,即使我已切换到 root ( sudo -i
) 并位于所述文件“2”的位置,我仍然不断收到此错误:
root@george-jendoc-node:/proc/sys/net/netfilter/nf_log# echo "ipt_LOG" > 2
-bash: echo: write error: No such file or directory
我做了一个stat 2
并得到了:
File: 2
Size: 0 Blocks: 0 IO Block: 1024 regular empty file
Device: 4h/4d Inode: 185636 Links: 1
Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2020-05-12 12:27:05.420721533 +0000
Modify: 2020-05-12 12:33:44.449767903 +0000
Change: 2020-05-12 12:33:44.449767903 +0000
Birth: -
我清楚地看到了有问题的文件,但为什么我会收到“没有此文件或目录”的错误,以及如何写入该文件?
更新:
cat 2
显示NONE
并echo ipt_LOG
显示‘ipt_LOG’。
答案1
我在遵循以下指南时也遇到了这个问题:
https://backreference.org/2010/06/11/iptables-debugging/
https://www.opsist.com/blog/2015/08/11/how-do-i-see-what-iptables-is-doing.html
经过一番研究,似乎至少在 CentOS 7 中,正确的命令是modprobe nf_log_ipv4
和sysctl net.netfilter.nf_log.2=nf_log_ipv4
。不确定这些指南中的信息是否已过时,或者是否是 Redhat 与 Debian 之类的东西,但本指南对我的情况有所帮助:
https://www.opensourcerers.org/2016/05/27/how-to-trace-iptables-in-rhel7-centos7/