Skip to content

将树莓派设置为路由无线访问点

以太网中的树莓派可以用作无线访问点,从而创建辅助网络。由此产生的新无线网络完全由树莓派管理。

如果希望将现有的以太网网络扩展到无线客户端,请考虑改为设置桥接访问点。

                                         +-RPi ------- +
                                     + --- + 10.10.0.2 | +-笔记本电脑---- +
                                     | | WLAN AP +-)))((((-+ WLAN客户端|
                                     | | 192.168.4.1 | | 192.168.4.2 |
                                     | + ------------- + + ------------- +
                 +-路由器---- + |
                 |防火墙| | +-PC#2 ------ +
(互联网)--- WAN- + DHCP服务器+ -LAN-+ --- + 10.10.0.3 |
                 | 10.10.0.1 | | + ------------- +
                 + ------------- + |
                                     | +-PC#1 ------ +
                                     + --- + 10.10.0.4 |
                                         + ------------- +

可以使用树莓派 4,树莓派 3或树莓派 Zero W的内置无线功能或使用支持访问点模式的合适的 USB 无线加密狗来创建路由的无线访问点。 某些 USB 软件狗可能需要对其设置进行些微更改。如果您在使用 USB 无线加密狗时遇到问题,请查看论坛

本文档已在运行树莓派 OS Buster全新安装的树莓派 3B上进行了测试。

在你开始之前

确保您具有对树莓派的管理访问权限。网络设置将在安装过程中进行修改:建议使用将屏幕和键盘连接到树莓派的本地访问。 将树莓派连接到以太网,然后启动树莓派 OS。 确保树莓派上的树莓派 OS是最新并在安装过程中重新启动软件包。 注意树莓派连接到的以太网的 IP 配置: 在本文档中,我们假设在以太网 LAN 上配置了 IP 网络" 10.10.0.0/24",并且树莓派将为无线客户端管理 IP 网络" 192.168.4.0/24"。 请选择用于无线的其他 IP 网络,例如如果您的以太网 LAN 已使用 IP 网络 192 .168.4.0/24,则为 192 .168.10.0/24。 *准备好无线客户端(笔记本电脑,智能手机等)来测试您的新接入点。

安装接入点和网络管理软件

为了用作访问点,树莓派需要安装" hostapd"访问点软件包:

sudo apt安装 hostapd 

启用无线接入点服务并将其设置为在树莓派启动时启动:

sudo systemctl取消屏蔽 hostapd 
sudo systemctl启用 hostapd 

为了向无线客户端提供网络管理服务(DNS,DHCP),树莓派需要安装" dnsmasq"软件包:

sudo apt安装 dnsmasq 

最后,安装netfilter-persistent及其插件iptables-persistent。此实用程序通过保存防火墙规则并在树莓派启动时将其还原来提供帮助:

sudo DEBIAN_FRONTEND =非交互式 apt  install -y netfilter-persistent iptables-persistent

软件安装完成。稍后我们将配置软件包。

设置网络路由器

树莓派将运行并管理一个独立的无线网络。它还将在无线和以太网网络之间路由,从而为无线客户端提供 Internet 访问。如果愿意,可以选择跳过下面的"启用路由和 IP 伪装"部分来跳过路由,并以完全隔离的方式运行无线网络。

定义无线接口 IP 配置

树莓派为无线网络运行 DHCP 服务器。这要求树莓派中的无线接口(wlan0)具有静态 IP 配置。 树莓派还充当无线网络上的路由器,按照惯例,我们将为它提供网络中的第一个 IP 地址:" 192.168.4.1"。

要配置静态 IP 地址,请使用以下命令编辑 dhcpcd 的配置文件:

 sudo nano /etc/dhcpcd.conf

转到文件末尾并添加以下内容:

接口 wlan0 
    静态 ip _address = 192.168.4.1/24
    Nohook wpa_supplicant

启用路由和 IP 伪装

本节将树莓派配置为允许无线客户端访问主(Ethernet)网络上的计算机,并从那里访问 Internet 。注意:如果要阻止无线客户端访问以太网和 Internet ,请跳过本节。 要启用路由,即允许流量在树莓派中从一个网络流向另一个网络,请使用以下命令创建一个文件,其内容如下:

 sudo nano /etc/sysctl.d/routed-ap.conf

文件内容:

# https://www.raspberrypi.org/documentation/configuration/wireless/access-point-routed.md
# 启用 IPv4 路由
net.ipv4.ip_forward = 1

启用路由将允许来自网络 192 .168.4.0/24的主机到达 LAN ,并且主路由器到达 Internet 。为了允许该外部无线网络上的客户端与 Internet 之间的通信不更改主路由器的配置,树莓派可以使用"伪装"防火墙规则在 LAN 上用其自己的 IP 地址替换无线客户端的 IP 地址。 。 *主路由器将把来自无线客户端的所有传出流量视为来自树莓派,从而允许与 Internet 进行通信。 * 树莓派将接收所有传入流量,替换回 IP 地址,并将流量转发到原始无线客户端。

通过在树莓派中添加一条防火墙规则来配置此过程:

sudo iptables -t nat-输出-o eth0 -j伪装

现在保存用于 IPv4 的当前防火墙规则(包括上述规则),并在启动时通过 netfilter -persistent服务来加载 IPv6 :

sudo netfilter持久保存

过滤规则保存在目录"/etc/iptables /"中。如果将来更改防火墙的配置,请确保在重新启动之前保存配置。

为无线网络配置 DHCP 和 DNS 服务

DHCP和 DNS 服务由 dnsmasq 提供。默认配置文件充当所有可能配置选项的模板,而我们只需要其中几个。从空文件开始比较容易。

重命名默认配置文件并编辑一个新文件:

 sudo MV /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
 sudo nano /etc/dnsmasq.conf

将以下内容添加到文件中并保存:

interface = wlan0#监听接口
dhcp-range = 192.168.4.2,192.168.4.20,255.255.255.0,24h
                #通过 DHCP 服务的 IP 地址池
domain = wlan#本地无线 DNS 域
地址=/gw.wlan/192.168.4.1
                #此路由器的别名

树莓派将为无线 DHCP 客户端提供介于 192 .168.4.2和 192 .168.4.20之间的 IP 地址,租用时间为 24 小时。您应该可以从无线客户端以名称" gw.wlan"访问树莓派。

dnsmasq还有更多选项;有关详细信息,请参见默认配置文件(/etc/dnsmasq.conf)或在线文档

确保无线操作

世界各国对电信无线电频段的使用进行监管,以确保无干扰运行。 Linux操作系统允许用户使用两个字母的" WiFi国家/地区代码"配置应用程序,从而帮助用户遵守遵循这些规则。美国使用的计算机的" US"。

在树莓派 OS中,直到用户配置了 WiFi 国家代码(通常是初始安装过程的一部分)后,才能禁用 5 GHz无线网络连接(有关详细信息,请参见本节(README.md)中的无线配置页)。 )

为确保树莓派上的 WiFi 无线电未被阻止,请执行以下命令:

sudo rfkill解锁无线局域网

此设置将在启动时自动恢复。接下来,我们将在接入点软件配置中定义适当的国家/地区代码。

配置接入点软件

创建位于" /etc/hostapd/hostapd.conf"中的" hostapd"配置文件,为您的新无线网络添加各种参数。

 sudo nano /etc/hostapd/hostapd.conf

将以下信息添加到配置文件。此配置假定我们使用的是频道 7 ,其网络名称为 NameOfNetwork ,密码为 AardvarkBadgerHedgehog 。请注意,名称和密码不应带有引号。密码的长度应在 8 到 64 个字符之间。

country_code = GB
接口= wlan0
ssid = NameOfNetwork
hw_mode = g
频道= 7
macaddr_acl = 0
auth_algs = 1
ignore_broadcast_ssid = 0
wpa = 2
wpa_passphrase = AardvarkBadgerHedgehog
wpa_key_mgmt = WPA-PSK
wpa_pairwise = TKIP
rsn_pairwise = CCMP

请注意" country_code = GB"行:它将计算机配置为使用英国的正确无线频率。 适应此行,并指定您所在国家/地区的两个字母的 ISO 代码。请参阅Wikipedia,以获取两个字母的 ISO 3166-1国家/地区代码列表。要使用 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"时,您可能还需要更改"频道"-有关允许的组合列表,请参见Wikipedia

运行新的无线接入点

现在,重新启动树莓派,并验证无线访问点是否自动可用。

sudo systemctl重新启动

树莓派重新启动后,请使用您的无线客户端搜索无线网络。您在文件/etc/hostapd/hostapd.conf中指定的网络 SSID 现在应该存在,并且可以使用指定的密码进行访问。

如果在树莓派上启用了 SSH ,则应该可以通过您的无线客户端按照以下说明从其进行连接,假设存在" pi"帐户:" ssh pi@192.168.4.1"或" ssh pi@gw.wlan"

如果您的无线客户端可以访问树莓派(如果设置了路由,则可以访问 Internet ),那么祝贺您设置新的访问点!

如果遇到困难,请与论坛联系以获得帮助。请在您的消息中参考此页面。