这种东西通常存在于/proc
和/或/sys
内核接口中(首先,请记住,这些目录中的任何内容都不是常规磁盘文件,它们都是指向内核的直接行)。
因此,例如:
»for x in /proc/sys/net/ipv4/conf/*/rp_filter; do echo -ne "$x "`cat $x`"\n"; done
/proc/sys/net/ipv4/conf/all/rp_filter 0
/proc/sys/net/ipv4/conf/default/rp_filter 1
/proc/sys/net/ipv4/conf/em1/rp_filter 1
/proc/sys/net/ipv4/conf/lo/rp_filter 0
/proc/sys/net/ipv4/conf/wlan0/rp_filter 1
看起来我为em1,wlan0和“ default”设置了rp_filter。您可以通过写入文件句柄来设置或取消设置它们:
»cd /proc/sys/net/ipv4/conf/lo
»echo 1 > rp_filter
»cat rp_filter
1
»echo 0 > rp_filter
»cat rp_filter
0
如前所述,这是与内核的直接通信,因此立即生效。这些不是配置文件。如果您尝试做错了什么:
»echo whatever > rp_filter
bash: echo: write error: Invalid argument
当然,这并不是说您不能以这种方式搞砸。并且一定要阅读下面的评论。
sysctl -e
用于编辑和sysctl -f
执行配置吗?