Fix non-working NTP (Network Time Protocol) in pfSense
On some occasions NTP is not working as expected, with the below observed:
- The NTP Status Dashboard widget has the time, but lists the Sync Source as “No active peers available.”
- Under Status > NTP, all the pools show a status of “Pool Placeholder” and non-pools show “Unreach/Pending.” They all have “Stratum” equal to 16 instead of the 1 or 2 they should be, and the “When” fields are all blank (just a dash). All the statistics are 0.
- Looking at a graph of my NTP statistics, it looks like the last time it was working was way back.
- Removing or adding new time servers makes no difference and restarting the NTP service and rebooting pfSense doesn’t help.
- Under Status > System Logs > NTP, all the log entries are nothing but “Soliciting pool server…” messages.
To fix this you need to add the below NAT entry:
Firewall > NAT, Outbound tab. Add rule to the top.
Disabled: Unchecked
Do not NAT: Unchecked
Interface: WAN (make one of these rules for each WAN)
Protocol: any
Source: This Firewall (self)
Destination: port 123
Not: Unchecked
Translation Address: Interface Address
Port or Range: Blank
Description: NAT NTP out of the firewall
Then either reset the states (Diagnostics > States > Reset States) or reboot the pfSense box.
Thank you for reading! Be sure to share this post if you found it helpful and don’t hesitate to chat with me about it!