14.2 无线网络(Wi-Fi)配置
本章详细阐述 FreeBSD 操作系统中无线网络(Wi-Fi)的配置方法,包括无线网卡驱动加载、无线接口创建、无线网络扫描与连接、不同厂商网卡的特殊配置等内容。无线网络配置是移动计算环境和便携式设备的核心功能之一。
附录:更新系统版本后无法使用无线网络
固件与系统更新的兼容性问题
在 FreeBSD 中,固件(Firmware)是硬件设备正常工作所需的底层软件。固件与内核版本之间存在紧密的耦合关系,系统版本更新后可能导致固件不兼容是常见现象。
固件重新获取方法
如果在更新系统版本后无法使用无线网络,请使用命令 fwget 重新获取固件。
如果没有网络连接,可以手动通过 USB 网络共享获得网络连接,再到 https://mirrors.ustc.edu.cn/freebsd-pkg/FreeBSD%3A14%3Aamd64/kmods_latest_3/All/ 等位置下载所需固件。
安装命令示例:
# pkg add /home/ykla/wifi-firmware-iwlwifi-kmod-20241017.1403000_2.pkg一般无线网卡驱动方式(基于 COMFAST CF-912AC 1200M 802.11AC)
示例网卡选择说明
本节以 COMFAST CF-912AC 1200M 802.11AC 无线网卡为例,介绍一般无线网卡的驱动配置方法。该网卡采用 Realtek 芯片组,在 FreeBSD 中具有较好的兼容性。
硬件识别方法
首先需要确认系统是否能够识别无线网卡。运行以下命令,该命令会显示系统中可用的无线网络接口设备列表:
输出示例如下:
如果输出中冒号 : 后没有内容,则说明无线网卡未被识别。此时可能需要更换无线网卡。
虚拟无线接口机制
在 FreeBSD 中,需要创建一个虚拟的无线接口 wlan0,并将其绑定到物理无线网卡上才能使用。这种设计实现了物理设备与逻辑配置的分离。
创建一个新的无线接口
wlan0,并绑定到物理设备rtwn0:
rtwn0 为上一步输出中的网卡名称,本例中为 rtwn0,请替换为你自己的网卡名称,直接照抄无效。(除非你也使用 COMFAST CF-912AC 1200M 802.11AC)。
观察
ifconfig输出(已省略以太网卡和lo0):
应该出现一个 wlan0 接口才对。
扫描 WiFi
在连接到无线网络之前,需要先扫描周围可用的无线网络。启用 wlan0 接口并扫描周围的无线网络:
SSID 的定义与作用
服务集标识符(Service Set Identifier,SSID)是无线网络的名称标识,用于区分不同的无线网络。
将
wlan0接口连接到 SSID 为test_5G的无线网络(如果没有密码的话):
① test_5G 是示例 WiFi 名称(SSID)
如果扫描不到 WiFi 网络,可能需要修改无线区域设置或路由器信道:
重启网络服务以接入 WiFi:
WPA 安全机制概述
对于加密的无线网络,需要使用 Wi-Fi 保护访问(Wi-Fi Protected Access,WPA)配置文件进行连接。WPA 是目前主流的无线网络安全协议,提供了数据加密与身份认证功能。
创建
/etc/wpa_supplicant.conf:
以上:
ssid 指定要连接的无线网络 SSID(WiFi 名称),此处示例为 test_5G
psk 指定无线网络的密码,此处示例为 freebsdcn
在
/etc/rc.conf里面加入或修改相关条目如下:
重启系统以使配置生效:
使用
ifconfig查看连接情况,可以看到已经连接成功(IP 为 192.168.31.178):
英特尔无线网卡驱动概况
英特尔(Intel)网卡是目前使用较为广泛的无线网卡之一。iwlwifi 驱动 适用于 备份 AC 8265、AC 9260、AC 9560、AX200、AX201、AX210、AX 211 以及旧的 iwm 驱动所包含的网卡,见 英特尔 ® 无线适配器的 Linux* 支持 备份。
将以下部分写入
/etc/rc.conf:
创建
/etc/wpa_supplicant.conf:
启动 WiFi 测试:
故障排除与未竟事宜请参考:wiki/WiFi/Iwlwifi 备份
博通(Broadcom)网卡驱动
博通(Broadcom)是另一家常用的无线网卡厂商。FreeBSD 内置的 Broadcom(博通)网卡驱动主要有两种:bwi 和 bwn,其中 bwi 支持较旧型号,bwn 支持较新型号。两者的支持范围部分重叠,但 bwn 对硬件的兼容性更好。
那么,应该使用哪种驱动呢?请参考 FreeBSD Broadcom Wi-Fi Improvements。可能打不开,可以用互联网档案馆的 存档 备份 查看。
示例:BCM4301、BCM4303、BCM4306 rev 2
经阅读参考文献研判,只能使用 bwi 驱动。
首先,在
/boot/loader.conf文件中添加下行,设置系统在启动时加载bwi驱动(用于 Broadcom 无线设备):
然后使用 ports 安装 Broadcom 无线设备的固件(未提供二进制包,下同):
可以先通过 USB 或以太网共享网络来安装,也可以提前将所需依赖下载到指定目录。
在
/etc/rc.conf文件中添加下行,将物理无线设备 bwi0 绑定到 wlan0 接口:
重启系统即可。
示例:配置 bwn 驱动
安装 Broadcom 无线设备的固件:
编辑
/boot/loader.conf文件添加下行,设置系统在启动时加载bwn驱动(用于 Broadcom 无线设备):
配置
/etc/rc.conf文件添加下行,将物理无线设备 bwn0 绑定到 wlan0 接口:
附录:特殊型号需要编译内核
对于一些特殊型号的博通无线网卡,可能需要重新编译内核才能获得完整支持。
一些在 FreeBSD Broadcom Wi-Fi Improvements(若无法访问,可参考互联网档案馆的 存档 备份)中列出的型号带有 $ 注释:The optional bwn(4) PHY driver is derived from b43 GPL code, and must be explicitly enabled.,表示需要使用基于通用公共许可证(GNU General Public License,GPL)协议的代码。由于 FreeBSD 基本系统及内核去除了 GNU 组件,因此需要重新编译内核以支持该选项。
然后在 /boot/loader.conf 文件中添加以下配置:
完成后重启系统,使用 ifconfig 检查是否存在 wlan0 接口,然后按照前文教程进行配置。
参考文献
故障排除概述
在配置无线网络的过程中,可能会遇到一些常见问题,以下是相关的故障排除方法。
如果连不上或者搜不到特定信道
无线网络的区域码设置会影响可用的信道列表。尝试将 WiFi 区域码选 NONE,然后选 China。
在
/etc/rc.conf中写入:
创建 wlan0 接口时设置无线国家码为 CN,使用无特定无线频段限制。
然后重启系统。
断开 WiFi
禁用 wlan0 接口:
WPA 验证
配置 wlan0 接口使用 WPA,并设置静态 IP 地址和子网掩码:
设置静态 IP
为 wlan0 接口配置静态 IPv4 地址和子网掩码:
开启无线热点
先确认你的网卡是否支持 hostap,列出 wlan0 接口支持的无线功能和能力:
可以看到该网卡支持 hostap 功能。
销毁 wlan0 接口并释放其占用的资源:
再创建:

附录:图形化网络配置工具
图形化网络管理工具,类似于 Linux 的 Plasma NetworkManager 或 NetworkManager:
使用 pkg 安装:
或者使用 Ports 安装:
最后更新于