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

FreeBSD学习笔记完整版系统安装配置与常用命令详解

时间:2026-06-18 07:52
在日常运维BSD系统的过程中,总会遇到一些高频操作——从单用户模式恢复root密码,到借助ipfw封禁IP地址,再到硬盘更换与数据迁移。这些命令如果不经常使用,很容易遗忘,因此整理一份实用的系统维护笔记很有必要。以下内容均来自生产环境的反复验证,直接复制粘贴即可使用,但请留意环境差异(如设备名、内核

在日常运维BSD系统的过程中,总会遇到一些高频操作——从单用户模式恢复root密码,到借助ipfw封禁IP地址,再到硬盘更换与数据迁移。这些命令如果不经常使用,很容易遗忘,因此整理一份实用的系统维护笔记很有必要。以下内容均来自生产环境的反复验证,直接复制粘贴即可使用,但请留意环境差异(如设备名、内核版本)。

1. 进入单用户模式

在Boot Loader提示时输入:

BOOT: /kernel -s

之后执行:

/sbin/mount -rw /

将根分区挂载为可写,然后使用vipw清空root口令即可完成密码重置。

2. 开机自动fsck硬盘

/etc/rc.conf中添加以下配置:

fsck_y_enable="YES"

3. FreeBSD弹出光驱

执行cdcontrol -> Eject命令,或直接使用eject(具体取决于系统配置)。

4. OpenBSD弹出光驱

eject /dev/rcd0c

5. BSD下创建用户账号

pw useradd hanyang -g wheel -s /usr/local/bin/bash

6. 实时监控网络流量

systat -if 1

7. 添加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"

临时添加IP地址可以使用:

/sbin/ifconfig bce0 inet 192.168.0.1 netmask 255.255.255.255

8. 手动配置默认网关

route add default new_gateway
route change default new_gateway

9. FreeBSD中设置时区

tzsetup

10. 查看系统打开的端口

BSD系统使用:sockstat -l;Linux系统使用:netstat -anp | grep LISTEN

11. BSD新内核无法启动时的应对

在系统启动倒计时10秒期间,按下Enter以外的任意键,然后输入unload,再输入boot kernel.old,或直接执行/boot/loader

12. 查看硬件信息

cat /var/run/dmesg.boot | grep CPU
sysctl hw.model

13. 关闭NFS服务

编辑/etc/rc.conf,添加以下配置:

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

BSD 防火墙ipfw常用语法

ipfw show
ipfw add deny/allow all from 10.210.136.47 to any
ipfw -f flush
ipfw delete 表号

FreeBSD磁盘命令行工具实战

以某台Squid服务器(DELL 1950,4块73G SAS盘,每块独立RAID0)为例,详细说明更换硬盘流程:

一、确认现场准备——确认故障盘编号,通知负责人,远程关机后现场更换硬盘并配置RAID。

二、现场更换完成后执行以下步骤:

  1. 初始化新磁盘(mfid3为示例设备ID,请根据实际情况调整):
    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
  4. 创建文件系统:newfs /dev/mfid3s1d
  5. 修改/etc/fstab,添加挂载项:
    /dev/mfid3s1d /data3 ufs rw 2 2
  6. 挂载所有分区: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

随后手动执行上述sysctl命令使其生效。同时检查/boot/loader.conf,确保以下项已正确设置(若存在重复,则需删除/etc/sysctl.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"

添加FTP用户账号

which proftpd
# 修改proftpd.conf以添加账号
# 检查21端口是否由inetd启动
sockstat -l
vi /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
mkdir /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

配置串口为115200波特率输出

echo '-Dh -S115200' > /boot.config
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系统监控工具详解

1. 使用SNP Watch监视用户活动

首先确保内核配置包含pseudo-device snp 4。常用操作示例:

# who
jerry   ttyv4   5 18 13:40
# watch ttyv4        # 仅监视
# watch -W ttyv4     # 监视并控制终端

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

2. 使用smartmontools监控硬盘健康状态

安装步骤:

# 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虚拟磁盘技术(内存盘)

/etc/rc.conf中设置了varmfs="YES",系统启动时会自动创建虚拟磁盘并挂载到/var。如需关闭,请修改为:

varmfs="NO"
populate_var="NO"

手动创建虚拟磁盘的多种方式:

  • 使用swap空间创建30MB虚拟盘:mdconfig -a -t swap -s 30M
  • 指定设备号(如md10):mdconfig -a -t swap -s 30M -u 10
  • 使用内核MALLOC内存:mdconfig -a -t malloc -s 30M
  • 使用文件创建(类似vn兼容模式):mdconfig -a -t vnode -f imagefile -s 30M

创建后可使用disklabelnewfsmount进行管理。列出所有虚拟磁盘:mdconfig -l,删除指定设备:mdconfig -d -u 0

来源:https://www.jb51.net/os/Unix/1546.html
上一篇FreeBSD系统下读写NTFS分区指南 下一篇FreeBSD软件包管理与安装更新删除操作方法详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

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

同类最新

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

更多
微软详解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)方式进行推送