pfSense上的端口转发是一个相当简单的过程。以前版本添加端口转发时,还必须添加防火墙规则,以便流量转发到端口指定的内部IP地址。 现在创建端口转发定义时可以自动添加此规则,并且默认情况下已启用该选项。
端口转发设置
导航到Firewall>NAT>Port Forward。
下面对端口转发设置的各个字段进行逐一解释:
- Disabled: 允许端口转发条目被禁用,而不从配置中删除它。
- No RDR: 反向重定向流量匹配这里指定的内容。 对于高级配置,通常应该取消选中。
- Interface: 流量发生的接口,通常是WAN
- Protocol:要转发的流量的协议。
- Source: 允许匹配流量的特定原始来源,并隐藏在高级按钮后面,因为在大多数情况下,它应该是“any”,允许所有Internet主机通过。 使用TCP和/或UDP时的源端口范围,几乎总是“any”。源端口与目的端口不同,通常是1024-65535之间的随机端口。
- Destination: 指定流量的原始目标IP地址,通常为WAN地址。
- Destination Port Range: 指定流量的原始目的端口,即外部端口要转发的端口范围。
- Redirect target IP: 该流量将被转发的内部IP地址。
- Redirect Target Port: 此流量将被转发的内部端口,通常与Destination Port Range(目标端口范围)中定义的外部端口相同。 如果一个范围内的多个端口用于目的端口范围,则这是起始端口的范围,因为它必须是相同的大小范围。
- Description: 描述说明供管理员参考。
- No XMLRPC Sync: 防止同步到其他CARP成员。
- NAT reflection:允许在端口转发时启用或禁用NAT回流。如果在内网通过外网地址来测试内网映射端口,一定要选择启用回流(NAT+Proxy)。
- Filter rule association: 将流量从指定的源发送到指定的目的地,并将其重定向到指定的目标IP和端口,进入所选接口,使用指定的协议。
实例教程(pfsense2.34中文版):
进入防火墙-地址转换-端口转发,选择添加。把WAN1口上的5001端口转发到内部192.168.111.190主机上。
按上图进行设置,设置完成点击保存设置。下图是完成设置后的条目。
通过查看WAN1上的防火墙规则,可以看见端口转发的防火墙规则已经自动添加了,见下图。
常见问题
- NAT和防火墙规则未正确添加。注意:不要设置源端口。
- 在客户机上启用了防火墙。
- 客户端机器不使用pfSense作为其默认网关。
- 客户端机器实际上没有正在侦听正在转发的端口。
- ISP或pfSense上游的某个端口正在阻止正在转发的端口。
- 试图从本地网络内部进行测试,需要从外部机器进行测试。
- 对于其他公共IP地址,虚拟IP配置不正确或缺失。
- pfSense路由器不是边界路由器。 如果pfSense和ISP之间还有其他的路由,端口转发和关联的规则必须在那里进行复制。
- 将端口转发到入网门户后面的服务器。必须在服务器的IP之间添加IP旁路,以便端口转发到入网门户之后。
- 如果不在默认网关的WAN接口上,请确保在此WAN接口上选择了一个网关,或者转发端口的防火墙规则将不会通过正确的网关回复。
- 如果不在默认网关的WAN接口上,请确保未转发端口的流量未通过浮动规则或接口组传入。只有防火墙规则下广域网接口选项卡上出现的规则才会具有reply-to关键字,以确保流量通过预期网关正确响应。
- 如果不在默认网关的WAN接口上,请确保允许流量的防火墙规则没有勾选该框禁用reply-to。
- 如果不在默认网关的WAN接口上,请确保在 System > Advanced >Firewall & NAT下的Disable reply-to未选中。
- WAN规则不应设置网关,因此请确保端口转发的规则不具有根据实际规则配置的网关。
- 如果流量似乎正在转发到意外的设备,则可能由于UPnP而发生。检查Status > UPnP以查看内部服务是否已将端口配置为意外。如果是这样,请在该设备或防火墙上禁用UPnP。
故障排查
端口转发时遇到问题,请尝试按以下操作来解决问题。
- 端口转发不在内部工作,除非启用了 NAT reflection(NAT回流)。 始终从网络外部(例如从另一个位置的系统)或从3G / 4G设备向外测试端口。
- 编辑NAT条目流量通行的防火墙规则,并启用日志记录。保存并应用更改。 然后尝试从外面再次访问它。检查防火墙日志 (Status > System Logs, Firewall 选项卡) 看看流量是否显示为允许或拒绝。
- 在Diagnostics > States检查下面的状态表, 过滤源,目的地或端口号,以查看是否存在任何条目。 如果存在与端口转发的NAT匹配的条目,则防火墙正确接受和转发流量,可以排除防火墙设置问题,请查看内部问题(例如,客户端防火墙等,见下文)。
- 使用数据包捕获或tcpdump来查看网络上发生的情况。这是找到问题的最佳方式,但需要最多的网络专业知识。 导航到Diagnostics > Packet Capture 以捕获流量,或者从shell使用tcpdump。 从WAN接口开始,并使用过滤器进行相应的协议和端口。尝试从网络外部进行访问,看看是否显示。 如果没有,则ISP可能阻塞流量,或者如果涉及到虚拟IP,则可能配置不正确。 如果在WAN接口上看到流量,切换到内部接口并执行类似的捕获。如果流量没有离开内部接口,则会出现NAT或防火墙规则配置问题。 如果离开界面,并且没有从目标机器返回的流量,目标系统的默认网关可能丢失或不正确,它可能不会在该端口上侦听,或者可能有本地防火墙(Windows防火墙,IP表 )阻止流量。 对于某些类型的流量返回流量可能会显示主机未在该端口上侦听。对于TCP,这可能是TCP RST。 对于UDP,它可能是ICMP无法访问的消息。
视频教程请点击。
最近做配置端口转发问题,一直没有做成,如果内网服务器端口为22,公网端口转换为2222,如何设置。
按照教程做就行,注意防火墙规则是否自动添加了端口转发规则 (没有的话,就把端口转发条目删除了重做),如果你是内网通过外网IP访问,端口回流不要使用默认值。
麻烦您了!还是不行,如果内网端口与外网端口都是22,是可以的,但是外网端口2222,内网端口22就不行,防火墙规则是做端口转发时自动做的,回流我选择的是禁用也试过其他但是也不行。
我做的条目是这样的(用的是:111.111.111.1去访问):
目标地址:111.111.111.111
目标端口:22
NAT IP:172.20.1.1
NAT端口:22
测试结果:通过
目标地址:111.111.111.111
目标端口:2222
NAT IP:172.20.1.1
NAT端口:22
测试结果:不通过
感谢您的帮助,刚才又测试了下可以了,问题在虚拟网卡,重置后可以了 。上次的问题其实就是回流默认导致的,十分感谢!
不客气
“试图从本地网络内部进行测试,需要从外部机器进行测试。”
你好,就这一点有个问题请教,我用本地一台机器作为WEB服务器,映射到了外网的动态域名。从外网当然是可以正常访问的,但是从内网访问动态域名的话则无法访问,用内网IP地址访问也只可以访问到首页,跳转页面因为是域名地址无法跳转。但有的时候确实需要在内网机器上登录页面测试,请问要如何配置防火墙规则可以安全的解决这个问题?谢谢。
通过NAT回流解决了,谢谢!
OK!