bin/159305: syslogd can't bind to multiple specific IPs

Charles Sprickman spork at
Sat Jul 30 07:40:08 UTC 2011

>Number:         159305
>Category:       bin
>Synopsis:       syslogd can't bind to multiple specific IPs
>Confidential:   no
>Severity:       serious
>Priority:       low
>Responsible:    freebsd-bugs
>State:          open
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sat Jul 30 07:40:08 UTC 2011
>Originator:     Charles Sprickman
>Release:        FreeBSD 8.2
Recently many daemons that had a long history of only being able to bind to all available IPs have been modified to accept a runtime flag to allow binding to one or more specific IPs.  With the wide use of FreeBSD in environments where the host may be on multiple networks (internal, external, management, etc.) and with jails becoming more common, it's becoming necessary for any service to be able to bind to one or more specific IPs.  Firewalls can of course block access for traffic entering on unwanted interfaces, but jails present an issue with binding to all available IPs - if you run the same service in a jail, that service cannot bind since the jail's host is using the IP.

mountd, nfsd, rpcinfo and others have been changed to allow the administrator to specify either a single IP to bind to (-h option) or a list of IPs to bind to (multiple -h options).

syslogd does have the "-b" option, but it only can be called once.  If the administrator passes multiple "-b" options, the last one specified is the only one syslogd binds to.
Start syslogd with multiple "-b" options.  It will only bind to the last one in the argument list.
Steal code from other udp daemons that support this. :)


More information about the freebsd-bugs mailing list