版本:Ubuntu 16.04.4 LTS 32 位
我无法在重启后保留 /etc/sysctl.conf 中的设置。
以下是我尝试实现的设置(逐字取自 sysctl.conf):
kernel.core_uses_pid=1
kernel.dmesg_restrict=1
kernel.kptr_restrict=2
kernel.sysrq=0
net.ipv4.conf.all.log_martians=1
net.ipv4.conf.all.send_redirects=0
net.ipv4.conf.default.log_martians=1
net.ipv4.tcp_syncookies=1
fs.suid_dumpable=0
我已经检查了 /etc/init/procps.conf(其中基本上不包含任何内容)和 /etc/init/procps-instance.conf(其中包含适当的命令)但一无所获。
如果我使用 sysctl -p,则设置会被正确加载,但在发出该命令之前和重新启动之后,命令未正确设置。
前任:
username@servername:/etc$ sudo sysctl -a | grep sysrq
kernel.sysrq = 136
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp2s0f0.stable_secret"
sysctl: reading key "net.ipv6.conf.enp2s0f1.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
username@servername:/etc$ sudo sysctl -p
net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1
kernel.core_uses_pid = 1
kernel.dmesg_restrict = 1
kernel.kptr_restrict = 2
kernel.sysrq = 0
net.ipv4.conf.all.log_martians = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.log_martians = 1
net.ipv4.tcp_syncookies = 1
fs.suid_dumpable = 0
username@servername:/etc$ sudo sysctl -a | grep sysrq
kernel.sysrq = 0
sysctl: reading key "net.ipv6.conf.all.stable_secret"
sysctl: reading key "net.ipv6.conf.default.stable_secret"
sysctl: reading key "net.ipv6.conf.enp2s0f0.stable_secret"
sysctl: reading key "net.ipv6.conf.enp2s0f1.stable_secret"
sysctl: reading key "net.ipv6.conf.lo.stable_secret"
我还检查了 pm-utils,它已安装,但 power.d 中除了 95hdparm-apm 之外没有任何设置文件。正如我之前的声明所示,laptop-power 不存在于 power.d 中,这个问题无关紧要——请在标记为重复之前阅读整个帖子。
还有一点我想补充一下,在 /etc/sysctl.d 中,有几个文件带有 10 前缀,但指向 sysctl.conf 的 99 前缀链接已就位,因此它应该最后运行,并且设置仍然应该正确。我被难住了。
尝试按照建议将 sysctl reload 命令添加到 crontabhttps://bugs.launchpad.net/ubuntu/+source/procps/+bug/50093:
@reboot sleep 60 && sysctl --system
还是没有骰子。
我错过了什么?
答案1
我无法找到明确的根本原因,但我可以通过执行以下操作来解决我的问题:
- 从 /etc/sysctl.conf 中删除自定义 net.* 参数并将其放置在 /etc/ufw/sysctl.conf 中
无论我对配置文件做了什么,kernel.sysrq 的问题仍然存在,因此我使用了以下解决方法:
为 kernel.sysrq 创建以下 cron 作业:
@reboot sleep 5 && /sbin/sysctl --system