Administrator
发布于 2026-03-20 / 2 阅读
0
0

Pfsense防火墙地址转换,将内网服务映射到外网

引言

在生产环境中没有非vpn环境下,因为很多服务是搭建在内网中,但我们需要让服务能被外部网络访问,映射内网资产是实现资源访问的最优方案。

接口管理

因为需要映射到外部网络,所以我们需要对WAN接口进行接口管理。

取消勾选阻止专用网络和回环地址阻止位置网络

  • 阻止专业网络和回环地址:会拦截内网(私有地址),这个选项会直接拦截这些内网访问请求,导致端口转发失效。取消 “阻止专用网络”,才能让内网设备通过公网 IP + 端口访问内部服务(即 “NAT 回流 /hairpin NAT” 场景)。

  • 阻止未知网络:会拦截IANA未分配/保留地址段(即 “Bogon 地址”)的入站流量,端口转发依赖公网IP的正常路由,部分运营商或测试环境可能会使用这些保留地址段,开启后会误拦截合法的入站转发请求。取消 “阻止未知网络”,防止 Bogon 过滤规则误杀合法的端口转发流量,尤其是在非纯公网环境(如内网穿透、多网段部署)。

保存设置后,点击应用更改。

显示已成功应用更改说明配置成功。

地址转换

点击防火墙中的地址转换。

点击添加

因为是将内网服务映射到外部网络,所以接口选择防火墙连接外部网络的WAN口。

地址选用IPV4,协议选择TCP/UDP。

因为进行内网映射到外部网络,所以源地址选择防火墙WAN口 IP地址,目标端口范围设置为1443.

重定向目标为防火墙服务,所以填写防火墙服务IP,重定向端口设置为HTTP(80)。

保存并应用更改。

通过WAN口外网IP与映射端口尝试访问该内网服务。

访问成功。

NAT回流问题

在将其他内网服务映射到外部网络过程中,发现除开pfsense防火墙服务映射成功,其他映射都失败的问题,经过排错,发现是NAT回流发生错误。

整个pfsense网络过于抽象,我将展示一下网络拓扑图。

  • 第一层(FW1):边缘防火墙。面对公网有桥接,并下发VLAN。

  • 第二层(FW2):内部防火墙。挂载在FW1下,负责保护特定区域。

因为有着双层防火墙的架构,就会出现两次NAT转换。FW1映射到FW2,FW2映射到服务器。

问题复现:数据流量包单程丢失

  • 去程(成功):管理网段(172.16.11.x)访问FW2 WAN口(172.16.11.225),通过端口转发到内部服务器的(192.168.112.101)。这时候数据流量包的源IP仍然是管理网段IP(172.16.11.x)。

  • 回程(异常):服务器接受到数据流量包请求,准备回包给管理网段(172.16.11.x)。服务器去查找路由表结果发现默认网卡是FW1。于是,包就丢给FW1

  • 结果:FW2在等着内部服务器回包去完成TCP握手,但是包走的FW1,所以FW2就板顶链接超时,握手失败,强制断开。

问题解决:NAT身份伪装

使用NAT身份伪装就是强迫内部服务器(192.168.109.100)将回包丢给FW2而不是FW1,就需要在FW2进行操作。

技术原理:在数据包到达服务器之前,将包的源头从原始的管理网段(172.16.11.x)修改为FW2自己内部LAN接口网段(192.168.112.x)。

操作步骤

1.进入防火墙→地址转换→出站,选择混合出站。

2.添加映射,接口选择LAN1接口,协议选择TCP/UDP,目标选择LAN1接口的网段。

3.地址转换选择LAN1 address。

4.保存更改

5.再次通过内网映射访问

发现映射成功。


评论