sysctl 重新定义值的正确位置在哪里?
我有:
> uname -a
Linux note 3.1.0-1-amd64 #1 SMP Tue Jan 10 05:01:58 UTC 2012 x86_64 GNU/Linux
> cat /etc/debian_version
wheezy/sid
> tail -n 2 /etc/sysctl.conf
#
net.ipv6.bindv6only=0
但每次重启后 net.ipv6.bindv6only 仍然为 1
答案1
检查 /etc/sysctl.d 中是否有包含您的参数的文件。这些文件将覆盖 /etc/sysctl.conf 文件...
答案2
https://bugs.launchpad.net/ubuntu/+source/procps/+bug/50093
/etc/init.d/procps.sh
在启动过程中出现得太早,无法应用大量 sysctl。由于它在加载网络模块和挂载文件系统之前运行,因此有很多常用的 sysctl 在启动时被忽略,并在控制台上产生错误。
网络上所有涉及更改 /etc/sysctl.conf 中的某些设置的文档对于net.ipv4.netfilter.ip_conntrack_max
Ubuntu 和 Debian 来说都是错误的。
最后,“在我看来这是一个 Debian Squeeze 错误,请参阅此处的示例和解决方法: http://wiki.debian.org/BridgeNetworkConnections
在后一种情况下,procps init 脚本应该负责在启动期间加载它们。然而,在 Squeeze 上它没有,你需要从 /etc/rc.local(或类似)重新启动它:
# /etc/rc.local # Load kernel variables from /etc/sysctl.d /etc/init.d/procps restart exit 0
答案3
如果你使用联邦快递/etc/ufw/sysctl.conf
(简单的防火墙)你确实需要更改此处配置中的值覆盖 /etc/sysctl.conf one
。
答案4
这是由 procps init 脚本设置的。确保此 init 脚本已启用update-rc.d procps enable
。如果已启用,您应该会收到从 /etc/rcS.d 中的文件到 /etc/init.d/procps 的链接。如果此 init 脚本正常运行,则手动运行/etc/init.d/procps restart
应进行设置。