FreeBSD 系统使用详解
一、系统概述
FreeBSD 是一个基于 BSD 内核的类 Unix 操作系统,以其高性能、稳定性和网络功能著称。
二、安装与配置
1. 安装准备
- 下载镜像:https://www.freebsd.org/
- 制作启动介质(USB/DVD)
- 启动安装程序
2. 安装步骤
# 基本安装流程
1. 选择安装类型
2. 磁盘分区(推荐使用 ZFS)
3. 选择软件包集合(base, lib32, ports 等)
4. 网络配置
5. 设置 root 密码和用户账户
6. 完成安装
三、基础系统管理
1. 软件包管理
# 使用 pkg(二进制包)
pkg update # 更新软件包目录
pkg upgrade # 升级所有软件包
pkg search <软件名> # 搜索软件包
pkg install <软件名> # 安装软件包
pkg remove <软件名> # 删除软件包
pkg info # 查看已安装包信息
# 使用 Ports 系统(源码编译)
cd /usr/ports/<category>/<port>
make install clean # 编译安装
2. 系统服务管理
# rc.d 系统
service <服务名> start # 启动服务
service <服务名> stop # 停止服务
service <服务名> restart # 重启服务
service <服务名> status # 查看状态
# 开机启动配置
sysrc <服务名>_enable="YES" # 启用开机启动
3. 用户管理
adduser # 交互式添加用户
pw useradd <用户名> # 命令行添加用户
pw userdel <用户名> # 删除用户
passwd <用户名> # 修改密码
四、文件系统操作
1. ZFS 文件系统管理
# 创建存储池
zpool create tank raidz2 /dev/ada1 /dev/ada2 /dev/ada3
# 创建数据集
zfs create tank/documents
# 快照管理
zfs snapshot tank/documents@backup1
zfs rollback tank/documents@backup1
zfs clone tank/documents@backup1 tank/restored_docs
2. 磁盘管理
gpart show # 查看分区表
diskinfo -v /dev/ada0 # 查看磁盘信息
newfs -U /dev/ada1p2 # 格式化 UFS 分区
mount /dev/ada1p2 /mnt # 挂载分区
五、网络配置
1. 基本网络设置
# 查看网络接口
ifconfig
# 配置网络(/etc/rc.conf)
sysrc ifconfig_em0="inet 192.168.1.100 netmask 255.255.255.0"
sysrc defaultrouter="192.168.1.1"
# DNS 配置(/etc/resolv.conf)
nameserver 8.8.8.8
2. 防火墙配置(PF)
# 启用 PF
sysrc pf_enable="YES"
# 编辑规则(/etc/pf.conf)
# 示例配置:
ext_if = "em0"
set block-policy return
scrub in on $ext_if all fragment reassemble
block in all
pass out all keep state
3. 网络服务
# SSH 配置
sysrc sshd_enable="YES"
service sshd start
# Nginx/Apache
pkg install nginx
sysrc nginx_enable="YES"
六、系统监控与维护
1. 进程管理
ps aux # 查看所有进程
top # 实时进程监控
kill <PID> # 终止进程
pkill <进程名> # 按名称终止
2. 性能监控
vmstat 1 # 虚拟内存统计
iostat 1 # I/O 统计
netstat -s # 网络统计
systat -vmstat # 综合监控
3. 日志管理
# 系统日志
tail -f /var/log/messages
# 安全日志
dmesg # 内核消息
tail -f /var/log/auth.log # 认证日志
七、内核与模块管理
1. 内核配置
# 查看当前内核版本
uname -a
# 自定义内核(可选)
cd /usr/src/sys/amd64/conf
cp GENERIC MYKERNEL
# 编辑 MYKERNEL 文件
cd /usr/src
make buildkernel KERNCONF=MYKERNEL
make installkernel KERNCONF=MYKERNEL
2. 内核模块
kldstat # 查看已加载模块
kldload <模块名> # 动态加载模块
kldunload <模块名> # 卸载模块
八、高级功能
1. Jail(容器)
# 创建 Jail
pkg install ezjail
ezjail-admin create webjail 192.168.1.50
ezjail-admin start webjail
# 进入 Jail
jexec webjail /bin/tcsh
2. 虚拟化(bhyve)
# 安装 bhyve
pkg install vm-bhyve
vm init
vm switch create public
vm switch add public em0
# 创建虚拟机
vm create -t ubuntu20 ubuntu-vm
vm install ubuntu-vm ubuntu-20.04.iso
3. 自动化任务
# cron 定时任务
crontab -e # 编辑用户 crontab
# 示例:每天备份
0 2 * * * /root/scripts/backup.sh
九、故障排除
1. 启动问题
# 单用户模式(启动时选择)
fsck -y # 检查文件系统
mount -u / # 重新挂载根分区
2. 包管理问题
# 修复损坏的包数据库
pkg check -sa # 检查问题
pkg audit -F # 修复已知漏洞
十、最佳实践建议
定期更新:
freebsd-update fetch
freebsd-update install
备份策略:定期备份重要数据,利用 ZFS 快照
安全性:
- 使用非 root 用户日常操作
- 配置防火墙规则
- 定期检查系统日志
性能优化:
- 根据硬件调整内核参数
- 使用合适的文件系统选项
- 监控系统资源使用情况
十一、学习资源
官方文档:https://docs.freebsd.org/
Handbook:https://docs.freebsd.org/en/books/handbook/
社区:
- FreeBSD 论坛
- IRC:#freebsd @ Libera.Chat
- 邮件列表
此指南涵盖了 FreeBSD 的基本使用方法,建议从基础操作开始,逐步学习高级功能。FreeBSD 的文档非常完善,遇到问题时优先查阅官方文档。