HxHippy

Understanding rc.conf

Configuring FreeBSD system startup with rc.conf.

Last updated: 2025-01-15

What is rc.conf?

/etc/rc.conf is FreeBSD's central configuration file for:

  • Network settings
  • Service enablement
  • System settings
  • Boot-time configuration

File Locations

/etc/defaults/rc.conf  # Default values (don't edit)
/etc/rc.conf           # Your overrides
/etc/rc.conf.local     # Host-specific settings

Using sysrc

# View all settings
sysrc -a

# View specific setting
sysrc hostname
sysrc sshd_enable

# Set value
sysrc hostname="myserver.example.com"
sysrc sshd_enable="YES"

# Delete setting
sysrc -x hostname

# Check if setting exists
sysrc -c sshd_enable

Common Settings

Hostname and Network

# /etc/rc.conf
hostname="myserver.example.com"
ifconfig_em0="inet 192.168.1.100 netmask 255.255.255.0"
defaultrouter="192.168.1.1"

Services

# Enable services
sshd_enable="YES"
ntpd_enable="YES"
syslogd_enable="YES"

# Disable service
sendmail_enable="NONE"

Firewall

# PF Firewall
pf_enable="YES"
pflog_enable="YES"

# Or IPFW
firewall_enable="YES"
firewall_type="workstation"

ZFS

zfs_enable="YES"

Console

keymap="us"
moused_enable="YES"

Service Management

# List all available services
service -l

# List enabled services
service -e

# Start/stop service
service sshd start
service sshd stop
service sshd restart
service sshd status

Best Practices

  1. Use sysrc - Don't edit rc.conf directly
  2. Check defaults - View /etc/defaults/rc.conf first
  3. Minimal changes - Only override what's needed
  4. Test changes - service command before reboot
  5. Backup - Keep copy of working rc.conf
beginner System Administration Updated 2025-01-15
  • freebsd
  • rc.conf
  • startup
  • configuration
  • services