我正在运行德国供应商的 VPS,想从 Ubuntu 切换到 CentOS。我尝试安装防火墙(未预安装),但总是失败并出现错误
ERROR: Failed to load nf_conntrack module: modprobe: ERROR: could not find module by name='nf_conntrack'
modprobe: ERROR: could not insert 'nf_conntrack': Function not implemented
modprobe: ERROR: Error running install command for nf_conntrack
modprobe: ERROR: could not insert 'nf_conntrack': Operation not permitted
显然nf_conntrack
没有找到内核模块。由于这是 VPS,我无法修改内核模块。在我的提供商的支持网站上,我找到了可用内核模块的列表,例如:
ip_conntrack_netbios_ns
ipt_conntrack
ip_conntrack
ip_conntrack_ftp
ip_conntrack_irc
由于nf_conntrack
这里没有列出,这是否意味着我不能使用防火墙?是否可以在没有此模块的情况下运行它?
我想,如果我愿意的话,我可以使用 iptables(它似乎运行正常)。但由于我对 Firewalld 有更多经验,我愿意继续使用它。
CentOS Linux 版本 7.7.1908(核心)
uname -a: Linux xxxxxx.xxxxxxxx.xxx 3.10.0-042stab140.1 #1 SMP 星期四 8 月 15 日 13:32:22 MSK 2019 x86_64 x86_64 x86_64 GNU/Linux
答案1
问题不在于它是 VPS,而在于它是 OpenVZ VPS。这些实际上不是虚拟机,而是容器。在这些容器上,如果没有托管服务提供商的干预,您无法对内核模块进行任何操作。
我建议您切换到另一个不基于 OpenVZ 或其他容器技术的 VPS。
答案2
尝试一下这个:
1.)mkdir /lib/modules/$(uname -r)
2.)touch /lib/modules/$(uname -r)/modules.{builtin,order}
3.) for i in /sys/module/*; do echo kernel/${i##**/}.ko; done >> /lib/modules/$(uname -r)/modules.builtin
4.)depmod -a
完成上述所有步骤后,请重新启动系统,然后就可以看到 boooooommmmmmmm###