首先,我想说:我知道,最初做错了,我想避免因为一般停机时间而从头开始做所有事情。
我在 RHEL 上运行 libvirt/KVM。我有使用 NAT 网络配置文件(默认配置文件)运行的 VM。我已经通过 sysconfig/iptables 从主机设置了端口转发等,一切都很好。
但是,如果 libvird 守护程序由于某种内部原因重新加载,或者接收SIGHUP
- 它重新加载 iptables 配置并从其过滤配置文件中添加规则,即一切都按设计和记录(libvirt 和防火墙+ libvirt nwfilter 文档)工作 - SW 没有问题,这是配置问题。
但是一些规则REJECT
在我需要它之前引入了 s,我无法通过转发端口连接到机器,如下所示:
运行后service iptables restart
- 一切都会像以前一样工作。
有没有办法强制 libvirt 改变这两个的顺序或禁用这些特定的?
也许有人面临完全相同的问题并准备好答案。
谢谢
我感觉到你的痛苦。我真的希望 libvirt 能更好地支持这一点。
创建一个脚本,在您的访客上应用端口转发防火墙规则。请务必使用
iptables -I
,以便在 libvirt 的 REJECT 规则之前插入您的规则。每次 libvirt 启动或重新加载时,您都需要使用挂钩来运行该脚本。
此外,您应该确保 libvirt 和端口转发的规则没有保存在/etc/sysconfig/iptables中。让 libvirt 和你的钩子设置它们。
您可以创建自己的 NAT 网络,这意味着 libvirt 不会添加任何防火墙规则。请参阅此libvirt Networking Handbook上的Custom NAT-based Network。