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 settingsUsing 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_enableCommon 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 statusBest Practices
- Use sysrc - Don't edit rc.conf directly
- Check defaults - View /etc/defaults/rc.conf first
- Minimal changes - Only override what's needed
- Test changes - service command before reboot
- Backup - Keep copy of working rc.conf
- freebsd
- rc.conf
- startup
- configuration
- services