ipmon(8) on Solnix vs Linux and the BSDs

On Solnix, ipmon is the illumos IP Filter log reader at /usr/sbin/ipmon. It has -z and -G to select a zone's filter, but lacks the -B, -C and -L options that FreeBSD (and, for -B and -L, NetBSD) document.

What Solnix runs

A default Solnix system runs the illumos ipmon at /usr/sbin/ipmon, published in pkgs.solnix.illumos-world-man. No other variants are shipped. The page refers to the suite as Solaris IP Filter and points to ipfilter(7).

Differences

Compared withTopicWhat differs
FreeBSD, OpenBSD, NetBSDzone selection (-z, -G)Solnix ipmon takes -z zonename (the zone's in-zone filter) or -G zonename (the zone's global-zone-controlled filter). Both work only in the Global Zone. The FreeBSD and NetBSD pages have neither option. The bundle has no OpenBSD page.
Source: Solnix ipmon(8) SYNOPSIS, -z, -G; FreeBSD ipmon(8) SYNOPSIS; NetBSD ipmon(8) SYNOPSIS
FreeBSD, NetBSD-B binary log fileFreeBSD and NetBSD ipmon -B file writes the raw binary log data to a file, which can be read back later with -f. The Solnix page has no -B, so use -f to read a device or file there.
Source: FreeBSD ipmon(8) -B; NetBSD ipmon(8) -B; Solnix ipmon(8) SYNOPSIS
FreeBSD-C config fileFreeBSD ipmon -C file names a file of extra actions to run on specific kernel log entries. FreeBSD also rereads it on SIGHUP and lists ipmon(5) in SEE ALSO. The Solnix and NetBSD pages have no -C.
Source: FreeBSD ipmon(8) -C, SEE ALSO; Solnix ipmon(8) SYNOPSIS; NetBSD ipmon(8) SYNOPSIS
FreeBSD, NetBSD-L syslog facilityFreeBSD and NetBSD ipmon -L facility changes the syslog facility. The Solnix page has no -L; its -s section only gives the facility used when compiled and installed, local0.
Source: FreeBSD ipmon(8) -L; NetBSD ipmon(8) -L; Solnix ipmon(8) -s
FreeBSDdefault syslog facility for -sWith -s, the FreeBSD page gives the default facility as security. Solnix and NetBSD give local0. A syslog.conf selector written for one facility will not catch the other's messages.
Source: FreeBSD ipmon(8) -s; Solnix ipmon(8) -s; NetBSD ipmon(8) -s
FreeBSD, NetBSDdefault pid fileSolnix ipmon -P defaults to /var/run/ipmon.pid. The FreeBSD and NetBSD pages list three platform-dependent paths: //etc/opt/ipf/ipmon.pid (Solaris), /var/run/ipmon.pid (44BSD or later), /etc/ipmon.pid (others). They do not say which one applies on a given install.
Source: Solnix ipmon(8) -P; FreeBSD ipmon(8) -P; NetBSD ipmon(8) -P
FreeBSD, NetBSDSIGHUP and kernel optionFreeBSD and NetBSD document that ipmon reopens its log files and rereads its configuration file on SIGHUP, and that the kernel option IPFILTER_LOG must be on. The Solnix page says neither, so do not assume SIGHUP log rotation works there.
Source: FreeBSD ipmon(8) DESCRIPTION; NetBSD ipmon(8) DESCRIPTION; Solnix ipmon(8) DESCRIPTION
FreeBSD, NetBSDaddress separator in outputThe BSD pages show the address separator as the ASCII text ->. The Solnix page describes it as a symbol that appears in the bundle only as escaped bytes. Check real output before writing a parser that matches the separator.
Source: Solnix ipmon(8) DESCRIPTION (addresses field); FreeBSD ipmon(8) DESCRIPTION item 6; NetBSD ipmon(8) DESCRIPTION item 6
FreeBSD, NetBSDviewing the logged ruleSolnix points to ipfstat -in for input rules, and says the same command for output rules (the page repeats -in). The BSD pages say ipfstat -n.
Source: Solnix ipmon(8) DESCRIPTION (group and rule number); FreeBSD ipmon(8) item 4; NetBSD ipmon(8) item 4
FreeBSD, NetBSD-h documentedSolnix documents -h as displaying usage information. The FreeBSD and NetBSD pages list h in the synopsis bracket but have no -h entry under OPTIONS.
Source: Solnix ipmon(8) -h; FreeBSD ipmon(8) OPTIONS; NetBSD ipmon(8) OPTIONS

Standards

  • POSIX: ipmon is not a POSIX.1-2024 utility.
  • Solnix: ATTRIBUTES: Interface Stability is Committed.
  • FreeBSD: The FreeBSD page has no STANDARDS section.
  • NetBSD: The NetBSD page has no STANDARDS section.

Writing portable scripts

  • Do not rely on -B, -C or -L in scripts that must also run on Solnix, and do not rely on -z or -G on the BSDs. Check each system's synopsis first.
  • Pass -P pidfile explicitly instead of relying on the default pid file path, which differs between the pages.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.