![需要重新启动 pfense 才能使现有 NAT 的更改生效](https://linux22.com/image/801475/%E9%9C%80%E8%A6%81%E9%87%8D%E6%96%B0%E5%90%AF%E5%8A%A8%20pfense%20%E6%89%8D%E8%83%BD%E4%BD%BF%E7%8E%B0%E6%9C%89%20NAT%20%E7%9A%84%E6%9B%B4%E6%94%B9%E7%94%9F%E6%95%88.png)
使用 PFSense ver:2.0-RC1 (i386)
在 pfSense 中更改现有的 NAT 规则时,我发现在以下情况下该规则不起作用:1. 规则存在但其端口号或目标 LAN ip 或两者都发生了变化 2. 使用 pfSense 负载平衡完成映射但已禁用以使用 NAT。
在上述两种情况下,我总是不得不重启防火墙。就好像系统出了问题一样。
我目前的情况如下:
存在的规则:src-any:port1 --nat--> lan-ip1:port2
规则修改为:src-any:port1 --nat--> lan-ip1:port3
规则已更改并加载。我也从 shell 进行了验证。它显示了更改后的 nat 设置。但连接失败。我从 web-gui 重置了状态,但那只是暂时起作用,后来又失败了。
我检查了 LAN 网络,发现服务正常运行。只有在 Internet 上有防火墙时才会出现故障。
有没有 shell/cli 方法可以让我实现这个功能?有没有 freebsd/pfsense 命令可以帮助我?因为,我直到午夜(允许停机时间)才能重新启动防火墙。
答案1
三种可能性。
第一,您期望已建立的连接发生变化,这在任何状态防火墙中都不会发生。您必须先终止与该端口转发匹配的状态,Diag>States。
第二,您正在运行旧的快照版本。无论上述修复是否有效,都请升级到最新的稳定版本。您有可能获得一个处于一系列更改中间的快照,并且该快照未正确重新加载其规则集。
第三,您安装了某种有缺陷的软件包,这会破坏过滤器重新加载过程。如果确实如此,在命令行运行 /etc/rc.filter_configure_sync 可能会显示正在发生的事情。但请先检查一下,然后升级到 2.0.3,然后再在此处执行任何操作。