游乐游手机版
首页/系统平台/文章详情

FreeBSD操作系统学习经验全面总结与实用技巧大全

时间:2026-06-19 07:48
BSD系统在日常运维过程中,有许多高频操作与配置技巧值得系统整理。本文将带领读者从最基础的进入单用户模式开始,逐步深入探讨网络管理、防火墙配置、磁盘更换、性能调优等实用场景,希望能为运维同行提供有价值的参考。 BSD系统常用操作速查 进入单用户模式 在系统启动时,于引导提示符后输入 BOOT: k

BSD系统在日常运维过程中,有许多高频操作与配置技巧值得系统整理。本文将带领读者从最基础的进入单用户模式开始,逐步深入探讨网络管理、防火墙配置、磁盘更换、性能调优等实用场景,希望能为运维同行提供有价值的参考。

BSD系统常用操作速查

进入单用户模式

在系统启动时,于引导提示符后输入 BOOT: /kernel -s 即可进入单用户模式。进入后执行 /sbin/mount -rw / 将根文件系统挂载为读写模式,随后使用 vipw 命令清空 root 密码,即可直接进行操作。

开机自动 fsck 硬盘

若需要系统在启动时自动检测并修复文件系统,可在 /etc/rc.conf 中添加 fsck_y_enable="YES" 配置项。

弹出光驱

  • FreeBSD:使用 cdcontrol -> Eject 命令。
  • OpenBSD:eject /dev/rcd0c

增加用户

使用 pw useradd hanyang -g wheel -s /usr/local/bin/bash 命令,一行即可完成用户创建并指定组和 Shell。

观察网络流量

通过 systat -if 1 可以实时查看网络接口的流量状况。

添加 IP 地址和网关

编辑 /etc/rc.conf,添加如下配置示例:

ifconfig_bge0="inet 61.135.152.35 netmask 255.255.255.0"
ifconfig_bge1="inet 172.16.152.35 netmask 255.255.255.0"
defaultrouter="61.135.152.1"

临时配置则使用 /sbin/ifconfig bce0 inet 192.168.0.1 netmask 255.255.255.255

手动添加默认网关

使用 route add default new_gateway 添加默认路由,route change default new_gateway 修改已有默认网关。

设置时区

在 FreeBSD 下直接运行 tzsetup 即可进入交互式时区设置界面。

查看打开的端口

BSD 系统使用 sockstat -l 查看监听端口;Linux 则用 netstat -anp | grep LISTEN

新内核无法启动

当新内核无法正常启动时,在系统启动倒计时10秒内,按下除 Enter 外的任意键进入 loader 提示符。首先执行 unload 卸载当前内核,再执行 boot kernel.old 回退至旧内核。也可以直接输入 /boot/loader 进入手动模式。

查看硬件信息

CPU 信息可通过 cat /var/run/dmesg.boot | grep CPU 查看;详细型号使用 sysctl hw.model

关掉 NFS 服务

/etc/rc.conf 中添加以下配置以关闭 NFS 服务器与客户端:

nfs_server_enable="NO"
nfs_client_enable="NO"
portmap_enable="NO"

BSD 系统防火墙 ipfw 语法与常用命令

ipfw 是 BSD 系统经典的防火墙工具,常用操作包括:

  • ipfw show 查看当前规则列表。
  • ipfw add deny/allow all from 10.210.136.47 to any 添加规则。
  • ipfw -f flush 清空所有规则。
  • ipfw delete 表号 删除指定规则。

实际生产环境中,常通过脚本调用 ipfw 动态封禁 IP,例如 /data1/apache2/logs/forbid_bsd.pl 中会先执行 /sbin/ipfw -f flush 再重新加载规则。

FreeBSD 磁盘命令行工具详解:更换硬盘完整步骤

以下以播客 squid 服务器(DELL 1950,4块73G 2.5寸SAS盘,每块盘单独做 raid0)为例,详细介绍更换硬盘的完整流程。

一、确认现场准备工作完成后,通知服务器负责人远程关机,然后由现场人员更换硬盘并完成 RAID 配置。

二、现场换好硬盘并做完 RAID 后,执行以下操作:

  1. 初始化新磁盘(假设 id=3):dd if=/dev/zero of=/dev/mfid3 bs=1k count=1,然后执行 fdisk -BI mfid3
  2. 加标签:disklabel -B -w -r mfid3s1 auto
  3. 编辑分区:disklabel -e mfid3s1,删除自动创建的 a: 行,并添加以下分区定义:
d: 142078797       0   4.2BSD    2048 16384 28552
  1. 创建文件系统:newfs /dev/mfid3s1d
  2. 修改 /etc/fstab 添加条目:/dev/mfid3s1d /data3 ufs rw 2 2
  3. 挂载:mount -a

内核内存不足导致自动重启的优化方案

当系统因内存不足自动重启时,可以通过减小接收和发送缓冲区的内存占用缓解问题。首先在 /etc/sysctl.conf 中添加以下配置:

net.inet.tcp.msl=2000
net.inet.tcp.sendspace=32768
net.inet.tcp.recvspace=8192
net.inet.tcp.recvbuf_max=32768
net.inet.tcp.sendbuf_max=131072

然后手工执行相同命令使其生效。同时修改 /boot/loader.conf

kern.ipc.nmbclusters=0
vm.kmem_size_scale="2"
net.inet.tcp.sendspace="16384"
net.inet.tcp.recvspace="8192"
net.inet.tcp.sendbuf_max="131072"

请务必检查并删除 loader.conf 与 sysctl.conf 中的重复行,以免配置冲突。

向系统添加 FTP 账号的步骤

先确认 proftpd 是否安装:which proftpd。修改 proftpd.conf 添加用户。接着查看 21 端口是否由 inetd 启动:sockstat -l。编辑 /etc/inetd.conf,然后重启 inetd:killall -HUP inetd

在 BSD 系统下关闭 sendmail 服务的方法

依次执行以下命令:

sh /etc/rc.sendmail stop
killall -9 sendmail
chmod 0 /usr/libexec/sendmail/sendmail
mv /etc/rc.sendmail /etc/rc.sendmail.old

/etc/rc.conf 中设置:

sendmail_enable="NONE"
sendmail_submit_enable="NONE"
sendmail_outbound_enable="NONE"

在 BSD 系统上安装 qmail 的详细步骤

创建目录和用户组:

mkdir /var/qmail /var/qmail/alias
pw groupadd nofiles
pw groupadd qmail
pw useradd alias -g nofiles -d /var/qmail/alias -s /sbin/nologin
pw useradd qmaild -g nofiles -d /var/qmail -s /sbin/nologin
pw useradd qmaill -g nofiles -d /var/qmail -s /sbin/nologin
pw useradd qmailp -g nofiles -d /var/qmail -s /sbin/nologin
pw useradd qmailq -g qmail -d /var/qmail -s /sbin/nologin
pw useradd qmailr -g qmail -d /var/qmail -s /sbin/nologin
pw useradd qmails -g qmail -d /var/qmail -s /sbin/nologin
pw useradd admin -g wheel

接着解压并打补丁:

cd /home/hanyang
tar xvfz ./qmail-1.03.tar.gz
patch -d ./qmail-1.03 < qmail-103.patch
patch -d ./qmail-1.03 < qmail-maildir++.patch
tar zxvf qmail-smtpd-auth-0.31.tar.gz
cd qmail-smtpd-auth-0.31
cp base# README.auth ../qmail-1.03
patch -d ../qmail-1.03 < auth.patch

配置 BSD 系统串口输出为 115200 波特率

创建 /boot.configecho '-Dh -S115200' >/boot.config。在 /boot/loader.conf 中添加以下内容:

echo 'kern.ipc.nmbclusters=0'>>/boot/loader.conf
echo 'comconsole_speed="115200"'>>/boot/loader.conf
echo 'console="comconsole"'>>/boot/loader.conf
echo 'boot_multicons="YES"'>>/boot/loader.conf
echo 'boot_serial="YES"'>>/boot/loader.conf
echo 'vm.kmem_size_scale="2"'>>/boot/loader.conf
echo 'net.inet.tcp.sendspace="16384"'>>/boot/loader.conf
echo 'net.inet.tcp.recvspace="8192"'>>/boot/loader.conf
echo 'net.inet.tcp.sendbuf_max="131072"'>>/boot/loader.conf

修改 /etc/ttys,注释掉 ttyd0/ttyd1 原有行,增加以下配置:

ttyd0 "/usr/libexec/getty std.115200" vt100 on secure
ttyd1 "/usr/libexec/getty std.115200" vt100 on secure

FreeBSD 系统监控工具详解

使用 SNP Watch 监控用户

watch 命令利用 snp 设备监控指定 tty 的输入输出。使用前需确保内核配置了 pseudo-device snp 4。常用用法如下:

  • 监视用户 tty:watch ttyv4(用 who 获取 tty)
  • 监视并控制:加 -W 参数,如 watch -W ttyv4

快捷键:CTRL+G 退出,CTRL+W 清屏,CTRL+X 选择 tty。

使用 smartmontools 监视硬盘状态

SMART(自我监控、分析及报告技术)是硬盘制造商制定的行业标准,支持 IDE 和 SCSI 硬盘。安装:

cd /usr/ports/sysutils/smartmontools
make all install clean
echo 'smartd_enable="YES"' >> /etc/rc.conf
echo '/dev/sda1 -H -m mymailbox@mymachine' > /usr/local/etc/smartd.conf
/usr/local/etc/rc.d/smartd.sh start

常用 smartctl 命令:

  • smartctl -i /dev/sda1 查看是否支持 SMART
  • smartctl -H /dev/sda1 查看健康状况
  • smartctl -l error /dev/sda1 查看错误日志
  • smartctl -l selftest /dev/sda1 进行自检
  • smartctl -X /dev/sda1 终止自检

BSD 系统虚拟磁盘技术应用

如果遇到开机自动加载虚拟磁盘并挂载到 /var 的情况(通常是因为设置了 varmfs="YES"),可以通过修改 /etc/rc.conf 禁用:

varmfs="NO"
populate_var="NO"

使用 mdconfig 创建虚拟磁盘更加灵活:

  • 基于 swap:mdconfig -a -t swap -s 30M(会自动分配 md0)
  • 指定序号:mdconfig -a -t swap -s 30M -u 10 创建 md10
  • 基于内核内存(malloc):mdconfig -a -t malloc -s 30M
  • 基于文件(兼容 vn):mdconfig -a -t vnode -f imagefile -s 30M

管理命令:mdconfig -l 列出所有虚拟磁盘;mdconfig -d -u 0 删除 md0。配置好之后,可用 disklabel、newfs、mount 等常规工具操作。

来源:https://www.jb51.net/os/Unix/1542.html
上一篇FreeBSD下SSH连接的中文显示与输入支持 下一篇FreeBSD系统创建DVD.iso安装光盘教程
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
微软详解Win11时间点还原 默认每24小时创建恢复点
系统平台 · 2026-06-30

微软详解Win11时间点还原 默认每24小时创建恢复点

微软今日推送了最新的 6 月可选更新,并发布博客详细解读了 Win11 全新的“时间点还原”(Point-in-time restore)功能——这一功能本质上是对系统恢复体验的一次全面升级,旨在让用户更轻松地应对电脑故障。 微软表示,面向 Windows 11 客户端用户的“时间点还原”功能现已正

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验
系统平台 · 2026-06-30

Win11 26H1六月可选更新KB5095091 优化放大镜改善装机体验

微软今天推送了Windows 11 26H1设备的6月可选更新KB5095091,安装完成后系统版本号会升级到Build 28000 2340。值得一提的是,这次更新并非面向所有设备,而是专门为搭载高通骁龙X2系列芯片的机型准备的——包括骁龙X2 Plus、X2 Elite和X2 Elite Ext

Win11六月可选更新KB5095093修复回收站弹窗异常
系统平台 · 2026-06-30

Win11六月可选更新KB5095093修复回收站弹窗异常

微软已悄然推送Windows 11六月可选更新,编号KB5095093。本次更新覆盖两个版本:24H2用户安装后版本号升级至Build 26100 8737,而25H2用户则更新至Build 26200 8737。 本次更新并非仅是小修小补,而是带来了多项实质性新功能。下面我们就来详细解析这些更新内

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞
系统平台 · 2026-06-30

苹果macOS 27 Beta2封堵Siri AI跳过候补名单漏洞

科技媒体 Cult of Mac 昨日(6月23日)发布博文指出,苹果在 macOS 27 Beta 2 更新中悄然封堵了一个此前可用的后门——用户曾能通过一条终端命令绕过候补名单,直接启用新版 Siri AI,如今这一方法已失效。 简要回顾一下:在 macOS 27 Beta 1 阶段,只需在 M

微软加速Win11 25H2推送 覆盖所有符合条件家用PC
系统平台 · 2026-06-30

微软加速Win11 25H2推送 覆盖所有符合条件家用PC

近日(6月23日),科技媒体 Windows Latest 发布了一则值得关注的动态:微软已进一步扩大 Windows 11 25H2 的推送范围,所有满足硬件要求、且不受 IT 部门管理的家庭版和专业版设备,现在均可顺利接收本次更新。 此次升级有一个显著特点——采用“启用包”(eKB)方式进行推送