Raspberry Pi 可用作网络中的一个wifi的无线接入点。让使用无线接入的计算机和设备可以接入网络。
设置成wifi的无线AP的前提是,你的网络中已经有一个路由器,你只是希望用这个无线AP扩展WIFI的覆盖范围或者是给网络引入无线wifi的覆盖能力。

如下图所示,本来的已经就有了一个带路由器能独立上网的网络了,只是这个网络不带路由器。现在我们可以用一个树莓派设置成wifi无线AP模式,让笔记本电脑可以通过wifi无线上网。

                                         +- 树莓派------+
                                     +---+ 10.10.0.2   |          +--记本电脑----+
                                     |   |     WLAN AP +-)))  (((-+ WLAN Client |
                                     |   |  Bridge     |          | 10.10.0.5   |
                                     |   +-------------+          +-------------+
                 +- 路由器 -----+     |
                 | Firewall    |     |   +- PC#2 ------+
(外网)----WAN-----+ DHCP server +-LAN-+---+ 10.10.0.3   |
                 |   10.10.0.1 |     |   +-------------+
                 +-------------+     |
                                     |   +- PC#1 ------+
                                     +---+ 10.10.0.4   |
                                         +-------------+

树莓派4、树莓派 3 或者 树莓派 Zero W 都内置了无线功能(如果你的树莓派不支持无线功能 ,那么你可以在你的树莓派连接上一个支持接入点模式的USB 无线网卡)都可以用于创建wifi无线AP。

本文档的测试环境:最新Raspberry Pi OS bullseys + 树莓派 4B

1、准备工作

  1. 树莓派的管理员权限
  2. 最好是,通过直接将屏幕和键盘连接到树莓派的本地访问模式(免得设置过程中因为ip的变化导致ssh连接中断)
  3. 树莓派已经连接到以太网并正常启动
  4. 升级到最新的树莓派操作系统,如果在此配置过程中安装了软件包,则记得重启树莓派,确保安装正确完成。
  5. 准备好无线客户端设备,比如笔记本电脑、智能手机等,用于测试wifi无线AP是不是配置成功。

2、安装无线AP 和管理软件

  1. 安装hostapd接入点软件包:
sudo apt install hostapd
  1. 启用无线接入点服务并将其设置为在树莓派启动时自动启动:
sudo systemctl unmask hostapd 
sudo systemctl enable hostapd

3、创建Linux网桥

在树莓派上建立Linux桥接,让树莓派的以太网卡和无线网络通过Linux网桥进行树莓派的内部通信 。

3.1、创建网桥设备并填充网桥

通过以下命令,创建一个配置文件,这个配置文件会一个名叫br0的Linux网桥虚拟设备。文件内容如下:

sudo vi /etc/systemd/network/bridge-br0.netdev
[NetDev]
Name=br0
Kind=bridge

用以下命令让以太网卡和无线网卡都接入到这个Linux网桥虚拟设备上。首先通过创建以下文件将内置以太网卡(eth0) 添加为桥接成员:

sudo vi /etc/systemd/network/br0-member-eth0.network

文件内容:

[Match]
Name=eth0

[Network]
Bridge=br0

注意:
hostapd会在服务启动时把wlan0无线网卡添加到Linux网桥。所以这里无需为无线网卡wlan0创建文件。这种情况只适用于无线 LAN 接口。

使用systemd-networkd服务在树启动时自动创建和配置网桥:

sudo systemctl enable systemd-networkd

3.2、定义网桥设备IP配置

作为网桥设备成员的网卡是工作在链路层的,所以不需要给他们分配 IP 地址。但网桥设备本身需要一个 IP 地址,这个地址用于让我们可以通过网络远程访问树莓派。

dhcpcd是树莓派上运行的 DHCP 客户端软件,它会自动为每个连接上网络的网卡申请 IP 地址。所以这里我们需要让dhcpcd不要为eth0和wlan0申请ip地址,并让dhcpcd只为br0这个Linux网桥设备申请IP地址。

sudo vi /etc/dhcpcd.conf

在文件开头添加以下配置:

denyinterfaces wlan0 eth0

在文件末尾添加以下内容:

interface br0

这样Linux网桥br0将通过 DHCP 分配IP地址。

保存文件,完成本机IP配置。

4、确认无线配置

To ensure WiFi radio is not blocked on your Raspberry Pi, execute the following command:

世界各国按协议分配了不同的wifi无线电频段,以确保不会相互干扰。Linux 操作系统允许为应用程序配置两个字母的“WiFi 国家代码”(例如 如果是在美国使用的计算机,那么就配置US)来帮助用户遵守这些规则。

在 树莓派操作系统中,如果没有配置wifi国家代码的话,5 GHz频段的无线网络是被禁用的。通常在安装过程中就已经配置好了wifi国家代码,当然也可以通过raspi-config工具配置。

5、配置 AP 软件

创建hostapd的配置文件/etc/hostapd/hostapd.conf,把wifi无线网络相关的各种参数放在这个文件中。

sudo vi /etc/hostapd/hostapd.conf

内容如下:

将以下信息添加到配置文件中。此配置假定我们使用频道 7,网络名称为raspberry_wifi_ap,密码为raspberry_wifi_password。注意,名称和密码不应包含引号,密码长度应介于 8 到 64 个字符之间。

country_code=CN
interface=wlan0
bridge=br0
ssid=raspberry_wifi_ap
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=raspberry_wifi_password
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
#rsn_pairwise=CCMP

请注意:interface=wlan0和bridge=br0: 当hostapd启动时时,hostapd会根据这个配置将网卡wlan0设置为Linux网桥br0的一个成员,从而完成以太网卡eth0和无线网卡wlan0之间的桥接。

请注意该行country_code=GB:它将计算机配置为在英国使用。在中国,需要配置成CN。
如果你要:使用 5 GHz 频段,您可以将操作模式从hw_mode=g为hw_mode=a。hw_mode可以配置成以下值:

  • a = IEEE 802.11a (5 GHz)(需要硬件支持,注意3B+以上的树莓派才支持)
  • b = IEEE 802.11b (2.4 GHz)
  • g = IEEE 802.11g (2.4 GHz)

注意,更改时hw_mode,可能还需要更改channel成对应的值。

6、运行wifi无线AP

重启树莓派,并测试无线接入点是否已经可用。

sudo systemctl reboot

树莓派重新启动后,使用无线客户端(比如电脑,手机等)搜索无线网络。这时,你应该可以通过在文件/etc/hostapd/hostapd.conf中指定的网络名和密码接入外网。

Logo

更多推荐