Back in 2022 I wrote up how I got open NAT working for my kids' gaming PCs/consoles on pfSense. That post is still getting hits, but pfSense has moved on since then — this is the same goal, updated for pfSense CE 2.9.0, including a couple of things that didn't exist back in 2022.
The short version of what changed: the UPnP service got renamed and rebuilt, and there's a genuinely new Outbound NAT option built specifically for the "multiple consoles fighting over NAT type" problem. Both are covered below.
1. NAT Reflection — System / Advanced / Firewall & NAT
Unchanged from the original post: head to the Network Address Translation section and leave NAT reflection disabled unless you have a specific reason to need it. This part of pfSense hasn't moved.
2. Create an alias for your gaming devices — Firewall / Aliases / IP
Also unchanged in concept: create an alias (mine's still called gamingPCs) containing the IPs of every gaming PC/console on the network. Give each device a static IP or a static DHCP reservation first — everything below depends on these addresses not changing.
3. Outbound NAT — the part that's actually new
This is the biggest change since the original post. pfSense 2.9.0 added an Endpoint-Independent "Port Restricted Cone" NAT option at Firewall > NAT > Outbound, and it changes what I'd recommend depending on how many gaming devices you have.
First, switch Outbound NAT mode to Hybrid (keeps automatic rules for everything else, manual rules for your gaming alias) and add a rule for your alias:
- Interface: WAN
- Source: your
gamingPCsalias - Translation > Address: WAN address (this dropdown also lists your other interfaces/aliases — make sure you pick the WAN one, not LAN or another local interface)
Then pick one of two options for that rule, depending on your situation:
- One console/PC: check Static Port. This preserves the source port across connections, which is what gets you Moderate/Type 2 NAT and lets most peer-to-peer game traffic through directly.
- Multiple consoles/PCs: use the new Port Restricted Cone option (labeled "Enable EIM-NAT for UDP connections" in the rule editor) instead of Static Port. Static Port on multiple devices at once causes them to fight over the same external port; Port Restricted Cone keeps mappings consistent per-remote-host without that collision. This is exactly the scenario the original post ran into with more than one kid gaming at the same time.
Don't enable both Static Port and Port Restricted Cone on the same rule — they conflict. Netgate still flags this feature as experimental as of 2.9.0, so if you hit weirdness, that's a known state, not something you broke.
4. UPnP — now under a new name
The old Services > UPnP & NAT-PMP page from the original post is gone. As of recent pfSense versions the daemon was replaced, and the page is now Services > UPnP IGD & PCP. Functionally it does the same job (lets consoles/games open their own ports automatically), but the labels changed:
- Enable port mapping service — the master on/off switch (was "Enable UPnP & NAT-PMP")
- Allow UPnP IGD Port Mapping — classic UPnP, what most consoles use
- Allow PCP/NAT-PMP Port Mapping — PCP and the older NAT-PMP standard
- External Interface — your WAN
- Internal Interfaces — LAN (or wherever your gaming devices live)
If you want to restrict which devices are allowed to create mappings, turn on Default Deny and add explicit allow rules in the permissions box, one line per device:
allow 1024-65535 <gaming-pc-ip> 1024-65535
You can check what's actually been opened at any given time under Status > UPnP IGD & PCP.
Putting it together
For most households, this is the combination that actually gets you consistent multiplayer connectivity in 2.9.0:
- NAT reflection: off
gamingPCsalias with every device's static IP- Hybrid Outbound NAT rule for that alias — Static Port for a single device, Port Restricted Cone for multiple
- UPnP IGD & PCP enabled on LAN, optionally restricted to just the gaming alias via Default Deny
One thing that hasn't changed since 2022: don't chase "Open NAT" (Type 1) on purpose. It's the least secure NAT type and exposes your devices directly — Moderate (Type 2/B) via the steps above is what actually fixes matchmaking problems for the vast majority of games, and console vendors treat it as the target, not Open.
Hope this saves someone the trouble of hunting through forum threads like I had to the first time around.
Further reading: pfSense's own gaming configuration guide and the Outbound NAT documentation cover console-specific quirks (Switch, Xbox, PlayStation) in more depth than fits here.