FreeBSD 中文社区 2025 第二季度问卷调查
FreeBSD 中文社区(CFC)
VitePress 镜像站QQ 群 787969044视频教程Ⅰ视频教程Ⅱ
  • FreeBSD 从入门到追忆
  • 中文期刊
  • 状态报告
  • 发行说明
  • 手册
  • 网络文章集锦
  • 笔记本支持报告
  • Port 开发者手册
  • 架构手册
  • 开发者手册
  • 中文 man 手册
  • 文章
  • 书籍
  • FreeBSD 中文手册
  • 编辑日志
  • 译者说明
  • FreeBSD 中文手册
  • 概述
  • 前言
    • 致读者
    • 第四版
    • 第三版
    • 第二版(2004)
    • 第一版(2001)
    • 本书的组织结构
    • 本书中使用的一些约定
    • 致谢
  • 第一部分:快速开始
  • 第1章 简介
    • 1.1.概述
    • 1.2.欢迎来到 FreeBSD!
    • 1.3.关于 FreeBSD 项目
  • 第2章 安装 FreeBSD
    • 2.1.概述
    • 2.2.最低硬件要求
    • 2.3.安装前的准备工作
    • 2.4.开始安装
    • 2.5.使用 bsdinstall
    • 2.6.分配磁盘空间
    • 2.7.获取安装文件
    • 2.8.账户、时区、服务和安全
    • 2.9.故障排除
    • 2.10.使用 Live CD
  • 第3章 FreeBSD 基础
    • 3.1.概述
    • 3.2.虚拟控制台和终端
    • 3.3.用户和基本账户管理
    • 3.4.权限
    • 3.5.目录结构
    • 3.6.磁盘结构
    • 3.7.文件系统的挂载与卸载
    • 3.8.进程和守护进程
    • 3.9.Shell
    • 3.10.文本编辑器
    • 3.11.设备和设备节点
    • 3.12.手册页
  • 第4章 安装应用程序:软件包和 Ports
    • 4.1.概述
    • 4.2.软件安装的概述
    • 4.3.寻找所需的应用程序
    • 4.4.使用 pkg 管理二进制包
    • 4.5.使用 Ports
    • 4.6.使用 Poudriere 构建软件包
    • 4.7.安装后的注意事项
    • 4.8.如何处理损坏的 port
  • 第5章 X Window 系统
    • 5.1.概述
    • 5.2.安装 Xorg
    • 5.3.显卡驱动
    • 5.4.Xorg 配置
    • 5.5.在 X11 中使用字体
  • 第6章 FreeBSD 中的 Wayland
    • 6.1.简介
    • 6.2.Wayland 概述
    • 6.3.Wayfire 混成器
    • 6.4.Hikari 混成器
    • 6.5.Sway 混成器
    • 6.6.使用 Xwayland
    • 6.7.使用 VNC 进行远程连接
    • 6.8.Wayland 登录管理器
    • 6.9.实用工具
  • 第7章 网络
    • 7.1.概述
    • 7.2.设置网络
    • 7.3.有线网络
    • 7.4.无线网络
    • 7.5.主机名
    • 7.6.DNS
    • 7.7.故障排除
  • 第二部分:常见任务
  • 第8章 桌面环境
    • 8.1.概述
    • 8.2.桌面环境
    • 8.3.浏览器
    • 8.4.开发工具
    • 8.5.桌面办公应用
    • 8.6.文档阅读器
    • 8.7.财务
  • 第9章 多媒体
    • 9.1.概述
    • 9.2.设置声卡
    • 9.3.音频播放器
    • 9.4.视频播放器
    • 9.5.视频会议
    • 9.6.图像扫描仪
  • 第10章 配置 FreeBSD 内核
    • 10.1.概述
    • 10.2.为什么要构建定制内核
    • 10.3.浏览系统硬件
    • 10.4.配置文件
    • 10.5.构建并安装定制内核
    • 10.6.如果发生了错误
  • 第11章 打印
    • 11.1.快速入门
    • 11.2.连接打印机
    • 11.3.常见的页面描述语言(PDL)
    • 11.4.直接打印
    • 11.5.LPD(行式打印机程序)
    • 11.6.其他打印系统
  • 第12章 Linux 二进制兼容层
    • 12.1.概述
    • 12.2.配置 Linux 二进制兼容层
    • 12.3.Linux 用户空间
    • 12.4.高级主题
  • 第13章 WINE
    • 13.1.概述
    • 13.2.WINE 概述和概念
    • 13.3.在 FreeBSD 上安装 WINE
    • 13.4.在 FreeBSD 上运行第一个 WINE 程序
    • 13.5.配置 WINE 安装程序
    • 13.6.WINE 图形化用户管理界面
    • 13.7.多用户 FreeBSD 与 WINE
    • 13.8.FreeBSD 上的 WINE 常见问题
  • 第三部分:系统管理
  • 第14章 配置与优化
    • 14.1.概述
    • 14.2.配置文件
    • 14.3.管理 FreeBSD 中的服务
    • 14.4.Cron 和 Periodic
    • 14.5.配置系统日志
    • 14.6.电源和资源管理
    • 14.7.添加交换空间
  • 第15章 FreeBSD 的引导过程
    • 15.1.概述
    • 15.2.FreeBSD 的引导过程
    • 15.3.Device Hints
    • 15.4.关机流程
  • 第16章 安全
    • 16.1.概述
    • 16.2.简介
    • 16.3.账户安全
    • 16.4.入侵检测系统(IDS)
    • 16.5.安全等级
    • 16.6.文件标志位
    • 16.7.OpenSSH
    • 16.8.OpenSSL
    • 16.9.Kerberos
    • 16.10.TCP 封装器(TCP Wrapper)
    • 16.11.访问控制列表(ACL)
    • 16.12.Capsicum
    • 16.13.进程记账
    • 16.14.资源限制
    • 16.15.监控第三方安全问题
    • 16.16.FreeBSD 安全公告
  • 第17章 jail 与容器
    • 17.1.概述
    • 17.2.jail 的类型
    • 17.3.主机配置
    • 17.4.传统 jail(厚 jail)
    • 17.5.瘦 jail
    • 17.6.管理 jail
    • 17.7.更新 jail
    • 17.8.jail 资源限制
    • 17.9.jail 管理器与容器
  • 第18章 强制访问控制
    • 18.1.概述
    • 18.2.关键术语
    • 18.3.了解 MAC 标签
    • 18.4.规划安全配置
    • 18.5.可用的 MAC 策略
    • 18.6.用户锁定
    • 18.7.MAC Jail 中的 Nagios
    • 18.8.MAC 框架的故障排除
  • 第19章 安全事件审计
    • 19.1.概述
    • 19.2.关键术语
    • 19.3.审计配置
    • 19.4.使用审计跟踪
  • 第20章 存储
    • 20.1.概述
    • 20.2.添加磁盘
    • 20.3.调整和增加磁盘大小
    • 20.4.USB 存储设备
    • 20.5.创建和使用 CD
    • 20.6.创建和使用 DVD
    • 20.7.创建和使用软盘
    • 20.8.备份的基础知识
    • 20.9.内存盘
    • 20.10.文件系统快照
    • 20.11.磁盘配额
    • 20.12.加密磁盘分区
    • 20.13.加密交换分区
    • 20.14.高可用性存储(HAST)
  • 第21章 GEOM: 模块化磁盘转换框架
    • 21.1.概述
    • 21.2.RAID0——条带
    • 21.3.RAID1——镜像
    • 21.4.RAID3——带有专用奇偶校验的字节级条带
    • 21.5.软件 RAID 设备
    • 21.6.GEOM Gate 网络设备
    • 21.7.为磁盘设备添加卷标
    • 21.8.通过 GEOM 实现 UFS 日志
  • 第22章 Z 文件系统(ZFS)
    • 22.1.是什么使 ZFS 与众不同
    • 22.2.快速入门指南
    • 22.3.zpool 管理
    • 22.4.zfs 管理
    • 22.5.委托管理
    • 22.6.高级主题
    • 22.7.更多资源
    • 22.8.ZFS 特性和术语
  • 第23章 其他文件系统
    • 23.1.概述
    • 23.2.Linux® 文件系统
    • 23.3.Windows® 文件系统
    • 23.4.MacOS® 文件系统
  • 第24章 虚拟化
    • 24.1.概述
    • 24.2.使用 macOS® 上的 Parallels Desktop 安装 FreeBSD
    • 24.3.使用 macOS® 上的 VMware Fusion 安装 FreeBSD
    • 24.4.使用 VirtualBox™ 安装 FreeBSD
    • 24.5.在 FreeBSD 上安装 VirtualBox™
    • 24.6.使用 FreeBSD 上的 QEMU 虚拟化
    • 24.7.使用 FreeBSD 上的 bhyve 虚拟机
    • 24.8.基于 FreeBSD 的 Xen™ 虚拟机
  • 第25章 本地化——i18n/L10n 的使用和设置
    • 25.1.概述
    • 25.2.使用本地化
    • 25.3.寻找 i18n 应用程序
    • 25.4.特定语言的区域配置
  • 第26章 FreeBSD 更新与升级
    • 26.1.概述
    • 26.2.更新 FreeBSD
    • 26.3.更新 Bootcode
    • 26.4.更新文档
    • 26.5.追踪开发分支
    • 26.6.从源代码更新 FreeBSD
    • 26.7.多台机器的追踪
    • 26.8.在非 FreeBSD 主机上进行构建
  • 第27章 DTrace
    • 27.1.概述
    • 27.2.实现上的差异
    • 27.3.开启 DTrace 支持
    • 27.4.启用内核外部模块 DTrace
    • 27.5.使用 DTrace
  • 第28章 USB 设备模式/USB OTG
    • 28.1.概述
    • 28.2.USB 虚拟串行端口
    • 28.3.USB 设备模式网络接口
    • 28.4.USB 虚拟存储设备
  • 第四部分:网络通讯
  • 第29章 串行通信
    • 29.1.概述
    • 29.2.串行术语和硬件
    • 29.3.终端
    • 29.4.拨入服务
    • 29.5.拨出服务
    • 29.6.设置串行控制台
  • 第30章 PPP
    • 30.1.概述
    • 30.2.配置 PPP
    • 30.3.PPP 连接的故障排除
    • 30.4.使用以太网 PPP(PPPoE)
    • 30.5.使用 ATM 上的 PPP (PPPoA)
  • 第31章 电子邮件
    • 31.1.概述
    • 31.2.邮件组件
    • 31.3.DragonFly 邮件代理(DMA)
    • 31.4.Sendmail
    • 31.5.修改邮件传输代理
    • 31.6.邮件用户代理
    • 31.7.高级主题
  • 第32章 网络服务器
    • 32.1.概述
    • 32.2.inetd 超级服务器
    • 32.3.网络文件系统(NFS)
    • 32.4.网络信息系统(NIS)
    • 32.5.轻型目录访问协议(LDAP)
    • 32.6.动态主机设置协议(DHCP)
    • 32.7.域名系统(DNS)
    • 32.8.零配置网络(mDNS/DNS-SD)
    • 32.9.Apache HTTP 服务器
    • 32.10.文件传输协议(FTP)
    • 32.11.用于 Microsoft® Windows® 客户端的文件和打印服务(Samba)
    • 32.12.用 NTP 进行时钟同步
    • 32.13.iSCSI target 和 initiator 的配置
  • 第33章 防火墙
    • 33.1.概述
    • 33.2.防火墙的概念
    • 33.3.PF
    • 33.4.IPFW
    • 33.5.IPFILTER(IPF)
    • 33.6.Blacklistd
  • 第34章 高级网络
    • 34.1.概述
    • 34.2.网关和路由
    • 34.3.虚拟主机
    • 34.4.无线高级身份验证
    • 34.5.无线自组织(Ad-hoc)模式
    • 34.6.USB 网络共享
    • 34.7.蓝牙
    • 34.8.桥接
    • 34.9.链路聚合与故障转移
    • 34.10.使用 PXE 进行无盘操作
    • 34.11.共用地址冗余协议(CARP)
    • 34.12.VLAN
  • 第五部分:附录
  • 附录 A.获取 FreeBSD
    • A.1.镜像站
    • A.2.使用 Git
    • A.3.使用 Subversion
    • A.4.光盘
  • 附录 B.书目
    • B.1.FreeBSD 相关书籍
    • B.2.安全性参考文献
    • B.3.UNIX 历史
    • B.4.期刊与杂志
  • 附录 C.网络资源
    • C.1.网站
    • C.2.邮件列表
    • C.3.Usenet 新闻组
  • 附录 D.OpenPGP 密钥
    • D.1.官方成员
  • 术语表
  • 后记
由 GitBook 提供支持
LogoLogo

FreeBSD 中文社区(CFC) 2025

在本页
  • 32.6.1. 配置 DHCP 客户端
  • 32.6.2. 安装和配置 DHCP 服务器
在GitHub上编辑
导出为 PDF
  1. 第32章 网络服务器

32.6.动态主机设置协议(DHCP)

上一页32.5.轻型目录访问协议(LDAP)下一页32.7.域名系统(DNS)

最后更新于6天前

动态主机配置协议(DHCP)允许系统连接到网络,并分配必要的地址信息以进行网络通信。FreeBSD 包含了 OpenBSD 版本的 dhclient,该客户端用于获取地址信息。FreeBSD 并没有安装 DHCP 服务器,但在 FreeBSD Ports 中有几个服务器可供选择。DHCP 协议的完整描述可以参见 。更多信息可以访问 。

本节将介绍如何使用内置的 DHCP 客户端。接下来介绍如何安装和配置 DHCP 服务器。

注意

在 FreeBSD 中, 设备是 DHCP 服务器和客户端都需要的设备。这个设备包含在 FreeBSD 安装的 GENERIC 内核中。如果用户想创建自定义内核,需要保留此设备以便使用 DHCP。值得注意的是,bpf 还允许具有特权的用户在该系统上运行网络数据包嗅探器。

32.6.1. 配置 DHCP 客户端

FreeBSD 安装程序中包含了 DHCP 客户端支持,使得新安装的系统能够自动从现有的 DHCP 服务器获取网络配置地址信息。有关网络配置的示例,请参阅 。

当在客户端机器上执行 dhclient 时,它会开始广播请求配置信息。默认情况下,这些请求使用 UDP 端口 68。服务器回复在 UDP 端口 67 上,向客户端提供 IP 地址以及其他相关的网络信息,例如子网掩码、默认网关和 DNS 服务器地址。这些信息以 DHCP "租约" 的形式提供,并且在可配置的时间内有效。这使得那些不再连接到网络的客户端的过期 IP 地址能够被自动回收。DHCP 客户端可以从服务器获取大量的信息。有关详细信息,请参见 。

默认情况下,当 FreeBSD 系统启动时,其 DHCP 客户端会在后台运行,或称为 异步模式。其他启动脚本会继续运行,而 DHCP 进程在后台完成,这样可以加速系统启动。

背景模式下的 DHCP 工作得很好,前提是 DHCP 服务器能快速响应客户端的请求。然而,在某些系统上,DHCP 可能需要较长时间才能完成。如果网络服务在 DHCP 配置完成之前尝试启动,它们将会失败。使用同步模式下的 DHCP 可以避免这个问题,因为它会在启动时暂停,直到 DHCP 配置完成。

在 /etc/rc.conf 中使用以下行配置后台或异步模式:

ifconfig_fxp0="DHCP"

如果在安装过程中已配置该系统使用 DHCP,则这行配置可能已经存在。请将这些示例中的 fxp0 替换为要动态配置的接口名称,如在 中所述。

要配置系统使用同步模式,并在启动时暂停直到 DHCP 配置完成,请使用 “SYNCDHCP”:

ifconfig_fxp0="SYNCDHCP"

可以使用其他客户端选项。请在 中搜索 dhclient 以获取更多详细信息。

DHCP 客户端使用以下文件:

  • /etc/dhclient.confdhclient 使用的配置文件。通常,这个文件仅包含注释,因为默认配置适合大多数客户端。此配置文件的详细描述请参见 。

  • /sbin/dhclient 有关此命令的更多信息,请参见 。

  • /sbin/dhclient-script FreeBSD 特定的 DHCP 客户端配置脚本。它的描述请参见 ,但通常不需要用户修改以正常工作。

  • /var/db/dhclient.leases.interface DHCP 客户端将有效的租约保存在此文件中,以日志的形式记录,详细信息请参见 。

32.6.2. 安装和配置 DHCP 服务器

配置文件由子网和主机的声明组成,这些声明定义了提供给 DHCP 客户端的信息。例如,以下几行配置了如下内容:

option domain-name "example.org";  ①
option domain-name-servers ns1.example.org;  ②
option subnet-mask 255.255.255.0;  ③

default-lease-time 600;  ④
max-lease-time 72400;  ⑤
ddns-update-style none;  ⑥

subnet 10.254.239.0 netmask 255.255.255.224 {
  range 10.254.239.10 10.254.239.20;  ⑦
  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;  ⑧
}

host fantasia {
  hardware ethernet 08:00:07:26:c0:a5;  ⑨
  fixed-address fantasia.fugue.com;  ⑩
}
  • ② 该选项指定客户端应使用的 DNS 服务器的逗号分隔列表。可以使用其完全限定的域名(FQDN),如示例中所示,或者使用它们的 IP 地址。

  • ③ 将提供给客户端的子网掩码。

  • ④ 默认租约到期时间,以秒为单位。客户端可以配置为覆盖此值。

  • ⑤ 租约的最大有效时长,以秒为单位。如果客户端请求更长的租约,仍然会发放租约,但它将仅在 max-lease-time 的有效期内有效。

  • ⑥ 默认值 none 禁用动态 DNS 更新。将其更改为 interim 配置 DHCP 服务器,在每次发放租约时更新 DNS 服务器,这样 DNS 服务器就知道哪些 IP 地址与网络中的哪些计算机相关联。除非 DNS 服务器已配置为支持动态 DNS,否则不应更改默认设置。

  • ⑦ 这一行创建一个可供 DHCP 客户端分配的 IP 地址池。地址范围必须对前面指定的网络或子网有效。

  • ⑧ 声明在前面花括号之前指定的网络或子网的默认网关。

  • ⑨ 指定客户端的硬件 MAC 地址,以便 DHCP 服务器在客户端请求时识别该客户端。

  • ⑩ 指定该主机应始终获得相同的 IP 地址。使用主机名是正确的,因为 DHCP 服务器将在返回租约信息之前解析主机名。

此配置文件支持更多选项。有关详细信息和示例,请参见与服务器一起安装的 dhcpd.conf(5)。

配置完 dhcpd.conf 后,在 /etc/rc.conf 中启用 DHCP 服务器:

dhcpd_enable="YES"
dhcpd_ifaces="dc0"

将 dc0 替换为 DHCP 服务器应侦听 DHCP 客户端请求的接口(或多个接口,接口间以空格分隔)。

通过以下命令启动服务器:

# service isc-dhcpd start

DHCP 服务器使用以下文件。请注意,手册页已随服务器软件一起安装。

  • /usr/local/sbin/dhcpd 有关 dhcpd 服务器的更多信息,请参见 dhcpd(8)。

  • /usr/local/etc/dhcpd.conf 服务器配置文件需要包含所有应提供给客户端的信息,以及关于服务器操作的信息。此配置文件在 dhcpd.conf(5) 中有详细描述。

  • /var/db/dhcpd.leases DHCP 服务器将它所发放的租约保存在此文件中,文件以日志的形式写入。请参阅 dhcpd.leases(5),该文档给出了稍长的描述。

本节演示如何配置 FreeBSD 系统,使其充当 DHCP 服务器,使用互联网系统联盟(ISC)实现的 DHCP 服务器。此实现及其文档可以通过安装 软件软件包和 Ports 来获得。

安装 后,会安装一个示例配置文件。将 /usr/local/etc/dhcpd.conf.example 复制到 /usr/local/etc/dhcpd.conf,并对新文件进行编辑。

① 该选项指定将提供给客户端的默认搜索域。有关更多信息,请参见 。

以后对服务器配置的任何更改都需要先停止 dhcpd 服务,然后使用 命令重新启动。

/usr/local/sbin/dhcrelay 该守护进程用于在高级环境中,其中一个 DHCP 服务器将客户端的请求转发到另一个 DHCP 服务器,该服务器位于不同的网络中。如果需要此功能,请安装 软件包和 Ports 。安装后包含 dhcrelay(8),提供更多详细信息。

RFC 2131
isc.org/downloads/dhcp/
bpf(4)
Accounts, Time Zone, Services and Hardening
dhcp-options(5)
“Setting Up Network Interface Cards”
rc.conf(5)
dhclient.conf(5)
dhclient(8)
dhclient-script(8)
dhclient.leases(5)
net/isc-dhcp44-server
net/isc-dhcp44-server
resolv.conf(5)
service(8)
net/isc-dhcp44-relay