14.1 网络基础配置
网络基础配置是指对 FreeBSD 操作系统网络通信基础设施进行设置的过程,包括 DNS 配置、网络接口管理、IP 地址设置等内容。这些配置构成了 FreeBSD 网络通信的基础,对于系统的网络连通性和可用性至关重要。
手动设置 resolv.conf 文件
resolv.conf 文件DNS 配置文件的动态特性
手动编辑 /etc/resolv.conf 后,重启系统时该文件可能被重置,这是因为动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)客户端在获取网络配置时会通过 resolvconf 服务重写该文件。resolvconf 是一个管理系统 DNS 配置的框架,它协调多个来源(如 DHCP、PPP、静态配置等)对 resolv.conf 的修改,确保 DNS 配置的一致性。
防止 DNS 配置被覆写的方法
若需要使用手动配置的 DNS 服务器而不被系统自动更新覆盖,可通过禁用 resolvconf 服务实现。编辑 /etc/resolvconf.conf 文件(如果不存在则创建),写入 resolvconf=NO 一行,该配置将禁用系统对 DNS 配置文件的自动更新功能。
参考文献
FreeBSD Project. resolvconf[EB/OL]. [2026-03-26]. https://man.freebsd.org/cgi/man.cgi?query=resolvconf,man 手册。提供 resolvconf 工具的完整技术文档,为 DNS 配置管理提供权威参考。
FreeBSD Forums. 8.8.8.8 or 1.1.1.1 if set in etc resolv conf doesn't stay as an entry in the file after a network restart[EB/OL]. [2026-03-26]. https://forums.freebsd.org/threads/8-8-8-8-or-1-1-1-1-if-set-in-etc-resolv-conf-doesnt-stay-as-an-entry-in-the-file-after-a-network-restart.85951/,实际案例分析,提供防止 DNS 配置被覆写的解决方案。
ifconfig 命令
ifconfig 命令网络接口配置工具概述
ifconfig 是用于配置和显示网络接口状态的常用命令,该命令是 FreeBSD 网络配置的核心工具之一,通过与内核网络子系统交互,实现对网络接口的参数配置和状态查询。用户可以使用该命令设置 IP 地址、子网掩码、广播地址等网络参数。
网络接口识别
在进行网络配置前,需要确认系统已识别并加载了网卡驱动。使用 ifconfig 命令可查看系统中的网络接口列表及其状态。
示例输出:
lo0 是本地回环接口,用于本机内部通信,不属于物理网卡。如果 ifconfig 输出中仅包含 lo0 接口,说明系统未识别物理网卡,此时需要检查网卡硬件连接和驱动加载情况。可以通过 dmesg | grep ether 命令查看网卡驱动加载日志。
配置 DNS 文件
DNS 解析服务器配置
DNS 配置文件用于指定域名解析服务器,该文件定义了系统进行域名解析时使用的递归 DNS 服务器列表。编辑 /etc/resolv.conf 文件,可根据需要清空原有内容或保留现有配置,然后添加 DNS 服务器条目:
修改 DNS 配置后,需要重启网络服务以使配置生效。重启网络服务将重新加载 /etc/rc.conf 中的网络配置参数:
配置完成后,可使用 ping 命令测试与目标域名的连通性(按 Ctrl + C 可中断测试),示例输出如下:
若能正常收到 ICMP 响应报文,说明网络已连通。
混杂模式
混杂模式的技术原理
混杂模式(Promiscuous Mode)是一种网络接口工作模式。在该模式下,网络接口控制器(NIC)不再仅过滤目标 MAC 地址与本机地址匹配的帧,而是接收网络链路层上传输的所有数据帧,无论其目标媒体访问控制(Media Access Control,MAC)地址是否为本机。
应用场景
这种工作模式在网络协议分析、网络流量监控、安全审计、虚拟化网络环境与容器网络等场景中具有重要应用价值。
如需在系统启动时为指定网络接口配置 IPv4 地址、子网掩码并启用混杂模式,可在 /etc/rc.conf 中添加以下配置:
参考文献
FreeBSD Project. ifconfig(8)[EB/OL]. [2026-03-26]. https://man.freebsd.org/cgi/man.cgi?ifconfig(8),提供 ifconfig 命令的完整技术文档,为网络接口配置提供权威参考。
/etc/rc.conf 网络配置持久化
/etc/rc.conf 网络配置持久化系统启动配置文件概述
/etc/rc.conf 是 FreeBSD 系统启动配置文件,用于存储各种系统和服务的启动参数。该文件是系统初始化过程中的核心配置文件之一。
网络配置的持久化机制
使用 ifconfig 命令进行的网络配置多为一次性配置,系统重启后配置将失效。与一次性配置不同,将网络配置写入 /etc/rc.conf 文件可实现配置的持久化,系统启动时会自动读取并应用该文件中的配置参数。
网络配置相关文件结构
注意:
修改
rc.conf后,需要重启系统或运行/etc/rc.d/netif restart来应用网络更改。
① 在 /etc/rc.conf 中,如果需要一次性写入多个配置项,只能使用 ABC_XYZ="xxx yyy ccc ddd" 这种格式。
如果在 /etc/rc.conf 中写成以下形式:
这种形式下,后续的 ABC_XYZ 配置行会覆盖前一行,因此只有最后一行会生效。
查看网卡速率
如需实时监控网络接口的流量统计信息,可使用 systat 工具的网络接口视图。该命令以指定的刷新间隔显示各网络接口的接收和发送流量数据:
其中 -if 参数指定显示网络接口信息,数字 2 表示刷新间隔为 2 秒。
查看 FreeBSD 下载流量(bwm-ng)
如需查看更详细的网络流量统计,可安装 bwm-ng 工具,该工具提供了多种流量显示格式和交互功能:
按字母 d 可以切换流量显示格式,按 h 可以查阅更多使用方法。
课后习题
在 FreeBSD 系统上配置双静态 IP 地址,分别设置不同的 DNS 服务器,然后使用
dig命令验证每个 DNS 服务器的解析行为,分析为什么系统允许同时配置多个 DNS 服务器而不产生冲突。修改网络接口的 MTU 值为 9000(巨型帧),使用
ping -M do -s 8972命令测试连通性。禁用
resolvconf服务,然后手动修改/etc/resolv.conf并重启网络服务,验证配置是否持久化。
最后更新于