首页>教程>FreeBSD 教程> 网络配置 >FreeBSD 配置无线网络

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 协议版本 1
  • ap_scan=1:主动扫描可用 AP
  • fast_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