Subcategories

  • Discussions about packages which handle caching and proxy functions such as squid, lightsquid, squidGuard, etc.

    4k Topics
    21k Posts
    JonathanLeeJ
    I wanted to share this with anyone else that noticed the speed when you hover over connections on status shows 0/0 always. Just in case also if anyone has any recommendations let me know. sqstat.class.php - Changes Log pfSense Squid Realtime Stats (SQStat) Speed Fix Date: March 12, 2026 PROBLEM SUMMARY Current Speed and Avg Speed columns always showed 0 in SQStat. Three root causes were identified and fixed. CHANGE 1: Connection ID Key (both makeHtmlReport and parseRequest) LOCATION: makeHtmlReport (~line 341) and parseRequest (~line 499) BEFORE: $con_id = $con['connection']; AFTER: $con_id = md5($con['uri'] . $con['peer']); WHY: Squid reports connection IDs as memory addresses (e.g. 0xbe97ec98) which change on every request. This meant the session key for a connection never matched between page loads, so previous byte counts could never be found and current speed was always 0. Using md5(uri + peer) creates a stable, consistent key that matches the same connection across multiple refreshes. CHANGE 2: Session replaced with temp file (both functions) LOCATION: makeHtmlReport (~line 280) and parseRequest (~line 460) BEFORE (session read): unset($session_data); if (isset($_SESSION['time']) && ((time() - $_SESSION['time']) < 3*60) && isset($_SESSION['sqdata']) && is_array($_SESSION['sqdata'])) { $session_data = $_SESSION['sqdata']; } AFTER (file read): $sqstat_file = '/tmp/sqstat_data.json'; $session_data = array(); if (file_exists($sqstat_file) && (time() - filemtime($sqstat_file)) < 180) { $session_data = json_decode(file_get_contents($sqstat_file), true) ?: array(); } BEFORE (session write): $_SESSION['time'] = time(); if (isset($new_data)) { $_SESSION['sqdata'] = $new_data; } AFTER (file write): if (isset($new_data)) { file_put_contents($sqstat_file, json_encode($new_data)); } WHY: pfSense uses jQuery AJAX to refresh SQStat. Each AJAX call was receiving a new PHP session ID, meaning $_SESSION was always empty on every refresh. Data written to $_SESSION on one call was never available on the next call. This was confirmed by debug logging showing a different session_id() on every request. /tmp on pfSense is a tmpfs (RAM) filesystem so writing to /tmp/sqstat_data.json has zero SSD impact and persists correctly between AJAX calls. CHANGE 3: Session start blocks removed (both functions) LOCATION: makeHtmlReport (~line 213) and parseRequest (~line 395) BEFORE: if ($this->use_sessions) { if (session_status() == PHP_SESSION_NONE) { session_name('SQDATA'); session_start(); } } AFTER: (removed entirely) WHY: pfSense already starts its own PHP session before SQStat loads. Attempting to start a second session named 'SQDATA' was conflicting with pfSense's session management. Since we moved to file-based storage this code is no longer needed at all. CHANGE 4: Avg speed moved outside session check (parseRequest) LOCATION: parseRequest (~line 520) BEFORE: if (isset($session_data[$con_id]) && !empty($session_data[$con_id])) { // ... curr_speed calculation ... // avg speed $avg_speed = $con['bytes'] / 1024; if ($con['seconds'] > 0) { $avg_speed /= $con['seconds']; } } AFTER: if (isset($session_data[$con_id])) { // ... curr_speed calculation only ... } // avg speed - always calculate if ($con['bytes'] > 0 && $con['seconds'] > 0) { $avg_speed = ($con['bytes'] / 1024) / $con['seconds']; } WHY: Avg speed does not need previous request data - it can always be calculated as total bytes transferred divided by connection duration. By moving it outside the session/file data check it shows immediately on first load for any connection alive more than 1 second, without needing a previous snapshot. CHANGE 5: Current speed calculation simplified (both functions) LOCATION: makeHtmlReport (~line 345) and parseRequest (~line 503) BEFORE: if ($was_time && $was_size) { $delta = $is_time - $was_time; if ($delta == 0) { $delta = 1; } if ($con['bytes'] >= $was_size) { $curr_speed = ($con['bytes'] - $was_size) / 1024 / $delta; } } else { $curr_speed = $con['bytes'] / 1024; } AFTER: $delta_time = max(1, $is_time - $was_time); $delta_bytes = $con['bytes'] - $was_size; if ($delta_bytes > 0) { $curr_speed = ($delta_bytes / 1024) / $delta_time; } WHY: Simplified the delta calculation using max(1, ...) to avoid division by zero more cleanly. Removed the fallback that set curr_speed to total bytes when no previous size was recorded - that was showing inflated incorrect values. Now only shows current speed when there is a genuine positive byte delta between refreshes. NOTES /tmp/sqstat_data.json is written on every refresh (tmpfs = RAM, no SSD writes) Old closed connections remain in the JSON file but are ignored since they won't match any active Squid connection on the next poll makeHtmlReport is not used by pfSense's version of SQStat (pfSense uses parseRequest + sqstat_resultHTML via AJAX) but was updated for consistency Current speed requires at least 2 refreshes with the same connection active to show a value - this is expected behavior Avg speed shows immediately on first load for connections > 1 second old =============================== End of change log
  • Discussions about packages whose functions are Intrusion Detection and Intrusion Prevention such as snort, suricata, etc.

    2k Topics
    16k Posts
    A
    Wanted to test Suricata with a basic config Suricata 7.0.8_5 on pfsense 2.8.1 internet and network hangs after enabling, unbound service stops, ISC DHCP Server stops. I have to disable Suricata and reboot to fix it. Cannot seem to find the logs that shows what the issue is. Services Suricata Global Settings ETOpen is a free open source set of Suricata rules whose coverage is more limited than ETPro. - Checked Use a custom URL for ETOpen downloads - Checked Install Feodo Tracker Botnet C2 IP rules - Checked Install ABUSE.ch SSL Blacklist rules - Checked ETOpen Custom Rule Download URL https://rules.emergingthreats.net/open/suricata-7.0.8/emerging.rules.tar.gz Services Suricata LAN - Interface Settings Interface LAN Alert and Block Settings - Unchecked (doing IDS-only atm) Services Suricata Interface Settings LAN - Categories ONLY Feodo Tracker Botnet C2 IP Rules is checked AMD Ryzen 5 5600G with Radeon Graphics 12 CPUs : 1 package(s) x 6 core(s) x 2 hardware threads AES-NI CPU Crypto: Yes (active) QAT Crypto: No Memory 16GB memory Ethernet Controller 10-Gigabit X540-AT2 Hardware Checksum Offloading - Unchecked Hardware TCP Segmentation Offloading - Unchecked Hardware Large Receive Offloading - Unchecked hn ALTQ support - Checked I did leave it for 10 mins but the network was still down, not sure what i am doing wrong.
  • Discussions about packages that handle bandwidth and network traffic monitoring functions such as bandwidtd, ntopng, etc.

    577 Topics
    3k Posts
    G
    @johnpoz The decoded base 64 isn't something I recognise. It's simply "teamspeak5:" and then a random string of numbers/letters/symbols.
  • Discussions about the pfBlockerNG package

    3k Topics
    20k Posts
    BBcan177B
    @netblues maybe try a reboot or a filter reload? Do you see the rules in the interface tabs?
  • Discussions about Network UPS Tools and APCUPSD packages for pfSense

    106 Topics
    3k Posts
    N
    @dennypage said in UPS ups on battery - appers often now: I have no idea. The information that has been provided is insufficient for me to offer any conclusion. fair enough - i am going to get rid of UPS and buy power station with UPS functionality
  • Discussions about the ACME / Let’s Encrypt package for pfSense

    516 Topics
    3k Posts
    L
    @jimp Up to now I install the certificates on the (web/mail/sftp)server(s) them selves. However since that is becoming more and more complex and certificate lifetimes as becoming shorter and shorter. I do seriously consider to use LetsEncrypt certificates generated on pfSense. And preferable without the help of additional systems. Note however that I am using HA-proxy. So I am trying two routes: completely on pfSense on pfSense with the help of a dedicated webserver on a VM, handling all LetsEncrypt requests. Routed via HA-proxy based on ^path starts /.well-known/acme-challenge/^ For method 1) I implemented the ^acme-http01-webroot.lua^ option I did not yet implement method 2) Of course I do not want to expose the pfSense GUI to the internet. I changed the GUI port number and do not allow access to pfSense from the internet at all (at least I home so) Also have a look at my other thread 'Do not manage to generate Certificate (using ^Webroot local folder^)' My intention is of course that the token is stored and read on pfSense itself without using the GUI webserver / the possibility to access the GUI.
  • Discussions about the FRR Dynamic Routing package on pfSense

    299 Topics
    1k Posts
    LinkPL
    @jimp I'm definitely eager to test that package update, but after the latest system update to 25.11.1 from 25.11, (which I did in the hope it would the OPFv3 issue) my long-working IPsec VTI setup quit passing usable traffic. This obviously not the right topic for that subject. I will post it where it belongs once I get time to collect more useful diagnostic information than I have now. ETA: VTI IPsec VPN seems to be working normally again! IPv4 OSPF is working, and I can now rebuild my IPv6 routes on OPFv3. I am pretty stoked! Thanks to everyone involved in getting that package update published.
  • Discussions about the Tailscale package

    96 Topics
    731 Posts
    chudakC
    @johnpoz said in "Tailscale is not online" problem: @chudak the next version of pfsense + 26.03, its in RC currently https://docs.netgate.com/pfsense/en/latest/releases/26-03.html https://forum.netgate.com/topic/200319/call-for-testing-pfsense-plus-26.03-rc-now-available Do you expect some changes related to TS in it?
  • Discussions about WireGuard

    735 Topics
    4k Posts
    M
    @Bob.Dig Any advice if both ends are on a dynamic connection? Just adding, I have a similar setup working very nicely between two other sites both using dynamic pppoe connections, dynamic dns registering the endpoint address and using dns names as (fixed) endpoints: whenever one end has its WAN reconnecting, my experience is that that end will initiate a connection to the other end, the other end in turn will updat its own notion of the "calling" side end and connection resumes nicely. On this very site I seem to have issues with wireguard hanging on to the old ipv6 address and this making resume impossible. Nevertheless, I was able to work it around by executing pfctl -k <oldip>. I can probably create a script that on WAN reconnect it kills the states with the old IP. I am now also experimenting with setting the gateway to kill states on gateway down. Anyway, this workaround immediately resolved the issue and made the connection work again.
  • 0 Votes
    31 Posts
    6k Views
    johnpozJ
    @dennypage nice! I think the running 3 instances and filtering vlans on 0 (untagged traffic) would eliminate any sort of bogon because the source IP range is different than the actual network being seen on.
  • Telegraf on PFsense Error

    13
    0 Votes
    13 Posts
    8k Views
    P
    @gm2005fl that's great news, and very useful information for those of us (i.e me!) not realising there are different versions InfluxDB :)
  • HA proxy with ssl

    4
    0 Votes
    4 Posts
    6k Views
    R
    @Gertjan said in HA proxy with ssl: not mail.contose.com. @Gertjan I have 2 isp and mail.contose points to those ip addresses and MX. I am using a linux mail server. I have a DV cert installed on each server. for my web server I have added the following: [image: 1750364542787-f12dc686-bf5e-4470-893e-fe8317269460-image.png] [image: 1750364586857-6940d697-2a2b-4945-b93b-535c91cf9676-image.png] and the default backend for that rule is httpswww-copy
  • Install OpenRTSP on pfSense

    4
    0 Votes
    4 Posts
    6k Views
    johnpozJ
    @heavymetalforever78 pfsense can for sure run on 1gb of ram - and other VMs could run on far less.. I have both a 2.8 vm and a 24.03 vm running on my nas, they only get 1GB each, etc. Don't try running some type 2 VM, run something like esxi or proxmox or something on the hardware.. To be honest if your goal is a NVR - get an actual NVR.. They use very little power, and are not all that expensive. I see some on amazon for like 60 bucks.. You would have to add some HDD.. but how much can a 2 or 4TB disk cost these days? Trying to use your "firewall" as your everything box is never a good idea.
  • TFTP Server WAN Interface

    1
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • LCDProc crashes - exceeds max allowed memory size

    1
    1
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • 1 Votes
    9 Posts
    9k Views
    F
    Confirmed still an issue as of May 2025 with pfSense CE 2.8.0 and FreeRADIUS package version 0.15.14 I also updated the Redmine bugtracker: https://redmine.pfsense.org/issues/11054 Can this security vulnerability please get some attention? Wi-Fi supplicants are able to join an 802.1x WPA2-Enterprise network without the username in the client certificate validated at all.
  • Zabbix proxy 7 don't start on pfsense 24.03

    1
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • System Patches Package v2.2.20_1 / v2.2.11_17

    12
    12 Votes
    12 Posts
    10k Views
    S
    There are new system patches available (2.2.21), maybe I miss the announcement here... https://github.com/pfsense/FreeBSD-ports/commit/8ffb307ed8845ebeeba2d00f258fd51256d0e756 Yes I do... https://forum.netgate.com/post/1214795
  • Package Notes does not exist???

    2
    1
    0 Votes
    2 Posts
    6k Views
    GertjanG
    @DominikHoffmann 24.03 ? A Beta version ?
  • Zabbix Agent 7

    3
    0 Votes
    3 Posts
    7k Views
    M
    @jwilli5646 I see it is still the fact (May 2025), any update about Zabbix agent 7?
  • Pfsense Package License

    4
    0 Votes
    4 Posts
    6k Views
    S
    @MarinSNB Not sure, but I would guess you're likely to run into a problem if the Plus router is a newer FreeBSD version. The config sync could be a problem too because there are versions of the config file. https://docs.netgate.com/pfsense/en/latest/releases/versions.html
  • Ignore MAC OUI in Arpwatch?

    1
    0 Votes
    1 Posts
    3k Views
    No one has replied
  • Arpwatch - sent wrong arp op 5

    6
    2
    0 Votes
    6 Posts
    5k Views
    dennypageD
    Arpwatch has no way to suppress protocol errors such as this. ANDwatch, a pending package to replace the Arpwatch package, allows suppression by way of pcap filtering.
  • This topic is deleted!

    1
    1
    0 Votes
    1 Posts
    9 Views
    No one has replied
  • How do I restore my package conf files

    4
    0 Votes
    4 Posts
    5k Views
    bmeeksB
    @patient0 said in How do I restore my package conf files: ping pfsense-plus-pkg.netgate.com ping: cannot resolve pfsense-plus-pkg.netgate.com: Address family for hostname not supported Can you connect to the internet at all, like ping 1.1.1.1? From that message it does look as if DNS is not working on your system. You can't ping the package server like that directly. That hostname is actually a DNS text service record that ping does not know how to resolve. You must ask the DNS client to resolve the service record (SRV) using that hostname. The pkg utility knows how to do that, but ping does not.
  • Avahi Settings for an Epson ET-3850 Printer

    1
    1
    0 Votes
    1 Posts
    342 Views
    No one has replied
  • Mailreport

    2
    0 Votes
    2 Posts
    776 Views
    M
    @Danil-0 said in Mailreport: Hi. I configured SMTP (System/Advanced/Notifications) on 587 port. The test included in the pfSense configuration works, the mail is sent and received but using Email Report the mail is rejected on server side. You can find log from server below. postfix/submission/smtpd[1935]: NOQUEUE: reject: RCPT from unknown[my ip]: 554 5.7.1 <unknown[my ip]>: Client host rejected: Access denied; from=<user1@domain.com> to=<user2@domain.com> proto=ESMTP helo=<pfsense.domain.arpa> Why then does the test mail work? What's different with the Email Report? Thanks for help. Estou com o mesmo problema. Vc conseguiu resolver?
  • Snort block notifications script (third party script)

    11
    0 Votes
    11 Posts
    9k Views
    NogBadTheBadN
    @sikita This is what I use for suricata, you may be able to tweak it a bit:- [image: 1743007897905-screenshot-2025-03-26-at-16.51.03.png] grep ^`date -v-1d "+%m/%d/%Y"` /var/log/suricata/suricata_igb0*/alerts.log | awk -v OFS='\t' -F "\[\\*\\*\]" '{a[$3]++;} END {for(i in a) print a[i],i}' | sed 's/]//g' | sed 's/\[//g' | sort -r ; echo grep ^`date -v-1d "+%m/%d/%Y"` /var/log/suricata/suricata_igb0*/alerts.log ; echo
  • Bind Update from 9.17 to 9.20

    2
    0 Votes
    2 Posts
    2k Views
    patient0P
    @jeffry-maynard bind 9.20 is in pfSense+ 25.03-BETA.
Copyright 2026 Rubicon Communications LLC (Netgate). All rights reserved.