FreeBSD 配置无线网络
FreeBSD 除了支持有限网卡外,还完全支持无线网络。FreeBSD 支持 IEEE 802.11 标准的无线网卡。FreeBSD 可以使用 IEEE 802.11a、802.11b、802.11g、802.11n 协议配置无线网络。
在文本中会详细介绍配置无线网络的过程,会涉及的内容包括获取物理无线网卡、创建虚拟无线接口、扫描无线网络、配置认证等。
核心概念
为了方便在 FreeBSD 中配置无线连接,将为你介绍如下的概念,方便理解如何在 FreeBSD 中配置无线连接:
- 物理无线网卡:在系统中安装的硬件网卡,如名称为
iwn0(驱动为iwn) - 虚拟无线接口:需要使用虚拟无线接口创建网络连接,不能直接使用物理无线网卡创建连接,如名称为
wlan0,名称由自己创建。 - WPA_Supplicant:无线认证管理工具,其配置文件为
/etc/wpa_supplicant.conf。
快速配置
如果你已经有无线账号,即无线网络名(SSID)和无线网络密码,可以快速配置无线网络。
获取物理无线网卡名称
在配置无线网络连接前,需要先获取物理无线网卡灯的名称。
使用如下的命令获取物理无线网卡名称:
sudo sysctl net.wlan.devices
系统会输出类似如下的信息:
net.wlan.devices: iwn0
如上的信息表示物理无线网卡的名称为 iwn0。
创建虚拟无线接口
以物理无线网卡为基础,创建虚拟无线接口,用于无线网络连接。
在物理无线网卡 iwn0 的基础上创建虚拟无线网卡 wlan0:
sudo sysrc wlans_iwn0="wlan0"
配置无线网络
如下会介绍如何配置无线网络。
配置认证方式
使用如下命令配置使用 WPA 认证和 DHCP 自动获取 IP:
sudo sysrc ifconfig_wlan0="WPA DHCP"
配置 WPA 认证信息
编辑 /etc/wpa_supplicant.conf 文件:
sudo vi /etc/wpa_supplicant.conf
添加无线网络名 SSID 和密码信息:
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="你的无线网络名称"
psk="你的无线网络密码"
}
信息解释说明:
ctrl_interface=/var/run/wpa_supplicant:指定控制接口路径,用于与wpa_supplicant进行通信eapol_version=1:使用 EAPOL 协议版本 1ap_scan=1:主动扫描可用 APfast_reauth=1:启用快速重认证ssid="xxx":设置无线网络的名称psk="xxx":设置无线网络的密码
重启网络服务
重启无线网络服务,实现自动扫描 AP 连接无线网络:
service netif restart
详细配置
默认情况下使用系统默认创建的虚拟无线接口无需自动创建。如果需要你也可以自己创建网络接口后,在自己配置无线网络。
创建虚拟无线接口
基于无线物理无线网卡创建虚拟无线接口。
临时创建
在物理无线网卡 iwn0 的基础上创建虚拟无线网卡 wlan0:
sudo ifconfig wlan0 create wlandev iwn0
命令使用说明:
create:用于指定创建虚拟无线接口wlandev iwn0:指定绑定的物理无线网卡
使用如上的方式创建虚拟无线接口,在系统重启后需要重新配置。
开机自动创建
使用如下方式可以开机时自动创建虚拟无线接口:
sudo sysrc wlans_iwn0="wlan0"
配置无线区域
不同的国家或地区使用的无线信道和功率不同,所以需要设置其使用的区域,以设置正确的信道。
临时配置区域
使用如下的方式配置无线信道的区域为中国:
sudo ifconfig wlan0 regdomain row country CN
命令解释说明:
regdomain:指定区域标准,row表示Rest Of World世界其他地区,符合中国的无线网配置规则country:指定国家代码,中国使用CN或者China。
开机自动配置区域
使用如下命令开机自动配置无线网络信道的区域为中国:
sudo sysrc create_args_wlan0="country CN regdomain row"
命令解释说明:
create_args_wlan0:为wlan0虚拟无线连接附加参数。
查看可用区域定义
在系统中默认安装了区域定义,使用如下的命令查看:
vi /etc/regdomain.xml | less
或者使用图形文本编辑器查看。
扫描可用无线网络
使用如下命令手动扫描可用的无线网络:
sudo ifconfig wlan0 up list scan
系统会输出类似如下的信息:
SSID/MESH ID BSSID CHAN RATE S:N INT CAPS
FreeBSD e8:d1:1b:1b:58:ae 1 54M -47:-96 100 EP RSN BSSLOAD
输出信息解释说明:
SSID/MESH ID:无线网络的名称BSSID:路由器的 MAC 地址CHAN:无线信道S:N:信号强度/噪声比,数值越大信号就越好CAPS:支持的无线连接方式,如RSN表示支持 WPA2,WPS支持一键连接
连接加密无线网络
加密连接方式一般使用 WPA2 / WPA 连接方式。
1)若需要扫描隐藏的无线网络,在 /etc/wpa_supplicant.conf 文件中需添加 scan_ssid=1:
network={
scan_ssid=1 # 扫描隐藏 SSID 时启用
ssid="FreeBSD"
psk="12345678"
}
2)默认使用 DHCP 自动获取 IP,但也可以使用如下的命令配置静态 IP:
sudo sysrc ifconfig_wlan0="inet 192.168.1.20 netmask 255.255.255.0 WPA"
3)重启网络服务,启用新的配置:
sudo service netif restart
连接开放无线网络
如果无线网络没有设置密码,可以使用如下的方式配置。
临时连接
使用如下的命令临时连接开放无线网络:
sudo ifconfig wlan0 ssid "开放网络名称"
sudo dhclient wlan0
使用如上的方式创建虚拟无线接口,在系统重启后需要重新配置。
开机自动连接
使用如下方式开机自动连接无线网络:
sudo sysrc ifconfig_wlan0="inet DHCP ssid 开放网络名称"
重启无线网络服务,启用新配置:
sudo service netif restart