这篇记录 FreeBSD 15 最小化安装后的基础整理。目标不是盲目砍服务,而是在 VPS、小内存机器上保留可救援能力,同时减少不必要的后台进程和磁盘写入。
建议按下面顺序做:
- 修正误创建的用户。
- 保留
ttyv0,关闭多余本地控制台。 - 配置
pkg自动清理缓存。 - 小内存机器添加 Swap 文件。
- 用
tmpfs加速/var/cache/pkg。 - 只关闭确认不用的服务。
修正误创建的用户
如果安装阶段把用户名写错了,例如把 felix 写成了 fexil,可以先删除错误用户,再重新创建正确用户。
确认要删除的用户确实是错误账号后,在 root 下执行:
pw userdel -n fexil -r参数含义:
-n fexil指定要删除的用户名。-r会同时删除该用户的家目录,例如/home/fexil。
然后重新创建正确的普通用户,并加入 wheel 组:
pw useradd felix -m -G wheel -s /bin/sh
passwd felix创建后检查用户和组:
id felix看到输出中包含 wheel,说明这个用户后续可以使用 su 切换到 root。
su - felix如果普通用户不能 su 到 root,常见原因有两个:
- 用户名拼写错了,实际登录的不是预期用户。
- 创建用户时没有加入
wheel组。
为什么别人的最小化系统进程更少
FreeBSD 最小化安装后,htop 里看到的进程数量会受几个因素影响:

- FreeBSD 默认会开启多个本地控制台,也就是多个
getty进程。 - 不同版本默认服务略有差异,例如 FreeBSD 15-CURRENT 和 14.x RELEASE 的默认进程数量可能不同。
- 机器内存、虚拟化模板和服务商镜像也会影响默认后台服务。
syslogd、cron、sshd、devd等是常见基础服务。
不要为了追求进程数量最低而一口气关掉所有服务。VPS 上更稳妥的做法是:关闭明显用不到的多余 TTY,保留日志、SSH 和基础设备管理能力。
关闭多余 TTY
TTY 是本地虚拟控制台。在 VPS 上,它通常通过服务商的 VNC / noVNC / IPMI 控制台访问。SSH 登录使用的是 pts/0、pts/1 这类伪终端,不占用 ttyv1 到 ttyv7。
建议保留 ttyv0 作为救援入口,关闭 ttyv1 到 ttyv7:
sed -i '' '/ttyv[1-7]/s/on/off/' /etc/ttys
kill -HUP 1也可以手动编辑:
vi /etc/ttys修改前类似:
ttyv0 "/usr/libexec/getty Pc" xterm on secure
ttyv1 "/usr/libexec/getty Pc" xterm on secure
ttyv2 "/usr/libexec/getty Pc" xterm on secure修改后保留 ttyv0:
ttyv0 "/usr/libexec/getty Pc" xterm on secure
ttyv1 "/usr/libexec/getty Pc" xterm off secure
ttyv2 "/usr/libexec/getty Pc" xterm off secure执行后,htop 中会少掉多个 getty 进程,但不会影响 SSH 登录。
是否关闭 cron 和 syslogd
极限精简时可以关闭 cron 和 syslogd,但一般不建议。
cron 负责定时任务,syslogd 负责系统日志。服务器一旦出现网络、SSH、pkg 或启动问题,日志往往是排障入口。
如果确认完全不需要定时任务,可以关闭 cron:
sysrc cron_enable="NO"
service cron stop如果确认不看本地日志,才考虑关闭 syslogd:
sysrc syslogd_enable="NO"
service syslogd stop更稳妥的建议是:cron 可按需关闭,syslogd 默认保留。
配置 pkg 自动清理缓存
pkg 的全局配置文件是:
/usr/local/etc/pkg.conf如果文件不存在,先创建:
touch /usr/local/etc/pkg.conf写入自动清理配置:
echo "AUTOCLEAN: true" >> /usr/local/etc/pkg.conf以后执行 pkg install 或 pkg upgrade 时,旧版本缓存包会自动清理,减少磁盘残留。
验证配置:
pkg -vv | grep AUTOCLEAN常用维护命令:
pkg clean
pkg autoremove安装基础工具
精简系统装好后,可以先补一组轻量常用工具:
pkg install -y vim-tiny tmux curl fastfetch用途:
vim-tiny:轻量编辑器。tmux:SSH 断线后保留会话,也方便分屏。curl:下载脚本和访问 API 常用。fastfetch:快速查看系统信息。
如果 root 默认 shell 是 /bin/sh,可以把常用别名写入 ~/.shrc:
echo 'alias ll="ls -GFahl"' >> ~/.shrc
echo 'alias vi="vim"' >> ~/.shrc
. ~/.shrc为了让登录 shell 自动加载:
grep -q "ENV=" ~/.profile || echo 'export ENV=$HOME/.shrc' >> ~/.profile为 1GB 内存机器添加 Swap 文件
小内存 VPS 建议增加 Swap 文件作为缓冲,避免突发内存占用导致系统卡死。
创建 2GB Swap 文件:
dd if=/dev/zero of=/usr/swap0 bs=1M count=2048
chmod 0600 /usr/swap0写入 /etc/fstab:
echo "md99 none swap sw,file=/usr/swap0,late 0 0" >> /etc/fstab立即激活:
swapon -aL验证:
pstat -smd99 是内存磁盘设备编号,可以换成不冲突的编号。late 表示等文件系统挂载完成后再启用这个 Swap 文件。
用 tmpfs 加速 pkg 缓存
tmpfs 是把一部分内存当临时文件系统使用。对 /var/cache/pkg 这种临时缓存目录来说很合适:安装包下载和解压更快,安装完成后又会自动清理。
先开启 tmpfs 支持:
sysrc tmpfs_enable="YES"给 /var/cache/pkg 挂载一个 200MB 上限的 tmpfs:
echo 'tmpfs /var/cache/pkg tmpfs rw,mode=1777,size=200M 0 0' >> /etc/fstab
mount /var/cache/pkg验证挂载:
df -h /var/cache/pkg
预期类似:
Filesystem Size Used Avail Capacity Mounted on
tmpfs 200M 0B 200M 0% /var/cache/pkg如果只是临时测试,不写入 /etc/fstab,也可以单次挂载:
mount -t tmpfs -o rw,mode=1777,size=200M tmpfs /var/cache/pkg重启后不需要手动挂载,只要已经写入 /etc/fstab,FreeBSD 启动时会自动挂载。注意 tmpfs 里的内容重启后会消失,这对 pkg 缓存目录没有问题。
验证 pkg 缓存加速和自动清理
安装一个稍大的包,同时观察缓存目录:
pkg install -y vim另开一个窗口观察:
while true; do du -sh /var/cache/pkg; sleep 0.1; done
通常会看到缓存占用从 0B 增加到几 MB,再在安装完成后回到 0B。这说明:
/var/cache/pkg已经走 tmpfs。AUTOCLEAN: true生效。- 安装缓存没有长期留在磁盘上。

可选:关闭 Sendmail
如果系统没有安装或启用 Sendmail,可以忽略这一节。
如果不需要本地邮件服务,可以彻底禁用:
sysrc sendmail_enable="NONE"
sysrc sendmail_submit_enable="NO"
sysrc sendmail_outbound_enable="NO"
sysrc sendmail_msp_queue_enable="NO"
service sendmail stop可选:减少 Swap 依赖
如果负载很低,又希望内核尽量少把内存页换出到磁盘,可以临时设置:
sysctl vm.defer_swapspace_pageouts=1永久写入:
echo "vm.defer_swapspace_pageouts=1" >> /etc/sysctl.conf这个选项适合低负载 VPS。高负载或不确定用途时,建议先观察一段时间再决定。
rc.conf 示例
一个偏精简但仍保留基础能力的 /etc/rc.conf 可以类似这样:
hostname="freebsd15mini"
ifconfig_vtnet0="DHCP"
sshd_enable="YES"
ntpd_enable="YES"
dumpdev="NO"
sendmail_enable="NONE"
tmpfs_enable="YES"其中网卡名 vtnet0 要按实际环境调整。常见还有 em0、igb0、re0 等。
日常检查命令
优化后,可以用下面几条命令检查当前状态:
ps ax
df -h /var/cache/pkg
pstat -s
top -bn 1 | head -n 5如果想装轻量流量监控工具:
pkg install -y bmon小结
这套配置的思路是:
- 用户:普通用户加入
wheel,避免长期直接使用 root。 - 控制台:保留
ttyv0救援,关闭多余 TTY。 - 缓存:
pkg自动清理,/var/cache/pkg使用 tmpfs。 - 内存:1GB 小内存机器用 2GB Swap 做缓冲。
- 服务:保留 SSH、NTP、日志等基础能力,谨慎关闭系统服务。
这样 FreeBSD 15 会更轻、更干净,但仍然保留可维护性。