我正在运行一家德国供应商的 VPS,并希望从 Ubuntu 切换到 CentOS。在那里我尝试安装firewalld(未预装),但它总是失败并出现错误
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
此处未列出,这是否意味着我不能使用 firewalld?没有这个模块可以运行吗?
我想我可以使用 iptables,如果我愿意的话(它似乎运行正确)。但由于我对firewalld有更多的经验,我想坚持下去。
CentOS Linux 版本 7.7.1908(核心)
uname -a: Linux xxxxxx.xxxxxxxx.xxx 3.10.0-042stab140.1 #1 SMP Thu Aug 15 13:32:22 MSK 2019 x86_64 x86_64 x86_64 GNU/Linux
试试这个:
1.) mkdir /lib/modules/$(uname -r)
2.) 触摸 /lib/modules/$(uname -r)/modules.{builtin,order}
3.) for i in /sys/module/*; 做回声内核/${i##**/}.ko; 完成 >> /lib/modules/$(uname -r)/modules.builtin
4.) depmod -a
处理完上述所有步骤后,请重新启动系统,然后看到 boooooooommmmmmmmm###问题不在于它是 VPS,问题在于它是 OpenVZ VPS。这些实际上不是虚拟机,而是容器。在这些上,如果没有托管服务提供商的干预,您将无法对内核模块做任何事情。
我建议你切换到另一个 VPS,它不是基于 OpenVZ 或其他容器技术的。