如何使用Raspberry Pi创建Wi-Fi热点

描述

大家好,今天我将展示如何将树莓派变成其他设备可以连接的无线接入点,基本上我们正在将树莓派变成无线“路由器”。作为奖励,我还将向我们展示如何设置无线接入点,以提供(共享)对连接设备的互联网访问。因此,让我们开始使用Raspberry Pi创建Wi-Fi热点。

所需组件:

将树莓派设置为无线接入点需要以下组件:

树莓派 2

8GB SD 卡

无线 USB 加密狗

以太网电缆

Pi 的电源。

监视器(可选)

键盘(可选)

鼠标(可选)

虽然Raspberry Pi 3和Pi zero广泛使用并且可以使用,但在本教程中,我将使用Raspberry Pi 2,因为我的Pi3目前正忙于执行一些繁重的计算机视觉相关任务,我希望很快在这里的教程中分享。然而,这个过程也适用于 pi 3,并且应该(注意强调)也适用于树莓派零 W。使用Raspberry Pi 3或Zero W时,不需要外部Wi-Fi模块,因为这两块板已经安装了Wi-Fi。

为了更复杂地定义本教程的目标,我们将为我们的 Raspberry Pi 提供充当无线接入点的能力,为了实现这一目标,我们需要安装和设置一个软件,为 Raspberry Pi 配备此功能以及DHCP 服务器软件,为将连接到接入点的设备提供网络地址。为了满足此软件要求,我们将使用dnsmasq和hostapd软件。

本教程将基于 Raspbianstretch OS,因此要像往常一样进行,我假设您熟悉使用 Raspbian 拉伸操作系统设置 Raspberry Pi,并且您知道如何使用 putty 等终端软件 SSH 连接到 Raspberry Pi。如果您对此有任何问题,本网站上有大量的树莓派教程可以提供帮助。

将树莓派设置为无线接入点的步骤:

通过遵循以下关键步骤,一个接一个,我们将能够将树莓派设置为无线接入点。应该注意的是,某些无线USB加密狗在AP模式下无法工作,但是在尝试了此加密狗并且它起作用之后,我很想说5个加密狗中的8个可以工作。

第 1 步:更新 Pi

像往常一样,我们更新树莓派以确保我们拥有最新版本的所有内容。这是使用;

sudo apt-get update

其次;

sudo apt-get upgrade

更新完成后,重新启动 pi 以进行更改。

第 2 步:安装 “dnsmasq” 和 “hostapd”

接下来,我们安装可以将 pi 设置为无线接入点的软件,以及帮助为连接到 AP 的设备分配网络地址的软件。我们通过跑步来做到这一点;

sudo apt-get install dnsmasq

其次;

sudo apt-get install hostapd

或者你可以通过跑步来组合它;

sudo apt-get install dnsmasq hostapd

步骤 3:停止软件运行

由于我们还没有配置软件,因此运行它没有意义,因此我们禁止它们在地下运行。为此,我们运行以下命令来停止 systemd 操作。

sudo systemctl stop dnsmasq sudo systemctl stop hostapd

步骤 4:为无线端口配置静态 IP 地址

确认正在使用的无线设备连接的 WLAN 端口。对于我的Pi,无线在wlan0上。将树莓派设置为充当服务器需要我们为无线端口分配一个静态 IP 地址。这可以通过编辑 dhcpcd 配置文件来完成。要编辑配置文件,请运行;

sudo nano /etc/dhcpcd.conf

滚动到配置文件的底部并添加以下行。

Interface wlan0 static ip_address=192.168.4.1/24

添加行后,配置文件应如下图所示。

wi-fi

注意:可以更改此 IP 地址以适合您的首选配置。

保存文件并退出使用;ctrl+x 后跟 Y

重新启动 dhcpcd 服务以使用以下命令对配置所做的更改;

Sudo service dhcpcd restart

步骤 5:配置dhcpcd服务器

现在为Raspberry Pi wlan配置了静态IP地址,接下来就是我们配置dhcpcd服务器并为其提供要分配给连接到无线接入点的设备的IP地址范围。为此,我们需要编辑dnsmasq软件的配置文件,但是该软件的配置文件包含太多信息,很多信息可能会出错 如果没有正确编辑,那么我们将创建一个新的配置文件,而不是编辑,其中包含使无线接入点完全正常运行所需的信息量。

在创建新的配置文件之前,我们通过移动和重命名旧配置文件来确保旧配置文件的安全。

sudo mv /etc/dnsmasq.conf  /etc/dnsmasq.conf.old

然后启动编辑器以创建新的配置文件;

sudo nano /etc/dnsmasq.conf

启动编辑器后,复制下面的行并粘贴或直接键入其中。

Interface = wlan0  #indicate the communication interface which is usually wlan0 for wireless dhcp-range = 192.168.4.2, 192.168.4.20, 255.255.255.0,24h

文件的内容应如下图所示。

wi-fi

保存文件并退出。此配置文件的内容只是指定可以分配给连接到无线接入点的设备 IP 地址的范围。

完成此操作后,我们将能够为网络上的设备提供身份。

下一组步骤将帮助我们配置接入点主机软件、设置 ssid、选择加密等。

步骤 6:为 SSID 和密码配置hostapd

我们需要编辑hostapd配置文件(运行sudo nano /etc/hostapd/hostapd.conf)来添加正在设置的无线网络的各种参数,包括ssid和密码。应该注意的是,密码(密码短语)应介于 8 到 64 个字符之间。任何较小的东西都行不通。

interface=wlan0 driver=nl80211 ssid=piNetwork   hw_mode=g channel=7 wmm_enabled=0 macaddr_acl=0 auth_algs=1 ignore_broadcast_ssid=0 wpa=2 wpa_passphrase=emmanuel # use a very secure password and not this wpa_key_mgmt=WPA-PSK wpa_pairwise=TKIP rsn_pairwise=CCM

文件的内容应如下图所示。

wi-fi

随意更改 ssid 和密码以满足您的需求和愿望。

保存配置文件并退出。

保存配置文件后,我们需要将 hostapd 软件指向保存配置文件的位置。为此,请运行;

sudo nano /etc/default/hostapd

找到注释掉daemon_conf的行,如下图所示。

wi-fi

取消注释DAEMON_CONF行,并在“等于”符号前面的引号之间添加下面的行。

/etc/hostapd/hostapd.conf

第 7 步:启动它

由于我们最初禁用了这两个软件,为了使我们能够正确配置它们,我们需要在配置后重新启动系统以进行更改。

用;

sudo systemctl start hostapd sudo systemctl start dnsmasq

步骤 8:出站流量的路由和伪装

我们需要为出站流量添加路由和伪装。

为此,我们需要通过运行以下命令来编辑 systemctl 的配置文件:

sudo nano /etc/sysctl.conf

取消注释此行net.ipv4.ip_forward=1(下图突出显示)

wi-fi

保存配置文件并使用 ctrl+x 后跟 y 退出。

接下来,我们开始伪装出站流量。这可以通过对 iptable 规则进行一些更改来完成。为此,请运行以下命令:

sudo iptables -t nat -A  POSTROUTING -o eth0 -j MASQUERADE

然后使用以下方法保存 Iptables 规则:

sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"

步骤9:启动时创建无线接入点:

对于大多数无线接入点应用,通常需要接入点在系统启动后立即启动。要在树莓派上实现这一点,最简单的方法之一是在 rc.local 文件中添加运行软件的指令,因此我们将启动时安装 iptable 规则的命令放在 rc.local 文件中。

要编辑 rc.local 文件,请运行:

sudo nano /etc/rc.local

并在系统底部的 exit 0 语句之前添加以下行

iptables-restore < /etc/iptables.ipv4.nat

第 9 步:重新启动!和使用

在此阶段,我们需要重新启动系统以实施所有更改,并在更新 iptables 规则的情况下测试启动时启动的无线接入点。

使用以下方法重新启动系统:

sudo reboot

系统重新打开后,您应该能够使用任何启用Wi-Fi的设备和设置期间使用的密码访问无线接入点。

从树莓派的Wi-Fi热点访问互联网

哦,是的,所以我将添加一个奖励教程,以展示如何使用创建的无线接入点为连接到它的设备提供互联网连接。分配给设备的互联网访问通过Pi上的以太网端口提供,该端口可以连接到路由器或任何类似设备。

为了实现这一点,我们需要在Raspberry Pi(无线接入点)上的无线设备和以太网设备之间放置一个“桥接器”,以传递两个接口之间的所有流量。为了设置这一点,我们将使用bridge-utils软件。安装 hostapd 和 bridge-utils。虽然我们之前已经安装了hostapd,但请再次运行安装以消除所有疑问。

sudo apt-get install hostapd bridge-utils

接下来,我们停止hostapd以配置软件。

sudo systemctl stop hostapd

创建网桥时,将在桥接的两个端口上创建更高级别的构造,因此网桥成为网络设备。为了防止冲突,我们需要停止在树莓派上运行的DHCP客户端将IP地址分配给eth0和wlan0端口。这将通过编辑 dhcpcd 客户端的配置文件来完成,以包括拒绝接口 wlan0和拒绝接口 eth0,如下图所示。

可以通过运行命令来编辑该文件;

sudo nano /etc/dhcpcd.conf

wi-fi

注意:从这一点开始,如果您在无外设模式下运行,请确保不要断开以太网电缆与PC的连接,因为由于我们禁用了以太网端口,您可能无法再次通过SSH连接。如果使用显示器,您不必担心。

接下来,我们创建一个名为 br0 的新网桥

sudo brctl addbr br0
接下来,我们使用以下方法将以太网端口 (eth0) 连接到网桥 (br0);

sudo brctl addif br0 eth0
接下来,我们使用 sudo nano /etc/network/interfaces 编辑接口文件,以便各种设备可以使用网桥。编辑接口文件以包含以下信息;

#Bridge setup
auto br0
iface br0 inet manual
bridge_ports eth0 wlan0
最后,我们编辑 hostapd.conf 文件以包含网桥配置。这可以通过运行命令来完成:sudo nano /etc/hostapd.conf 并编辑文件以包含以下信息。请注意,网桥已添加到 wlan0 接口下方,驱动程序行已注释掉。

interface=wlan0
bridge=br0
#driver=nl80211
ssid=NameOfNetwork
hw_mode=g
channel=7
wmm_enabled=0
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
完成此操作后,保存配置文件并退出。

要使对树莓派所做的更改生效,请重新启动系统。一旦它恢复,您现在应该能够通过连接到Raspberry Pi创建的无线接入点来访问互联网。当然,这只有在通过以太网端口可以访问 pi 的情况下才有效。

虽然这个项目可以用来在房子或办公室或整个大院周围扩展Wi-Fi,但我觉得有几个应用程序非常有趣和有用,比如树莓派作为家庭自动化中心,所以几个支持Wi-Fi的家庭自动化设备可以使用树莓派的无线接入点连接到互联网。您是否还有其他可以应用的很酷的想法,请随时通过评论部分分享以激励他人。

测试树莓派无线接入点:

要测试这些说明,请使用手机或任何其他能够连接到WiFi热点网络的设备,您应该会看到名称弹出。然后,您可以使用我们指定的“emmanuel”的可怕密码连接到它。实施时,请务必使用更安全的密码。我只是使用该密码使事情更容易遵循。

另请注意,重新启动后无线接入点可能需要一段时间才能可见,因为 Pi 需要在网络活动开始之前启动。

wi-fi

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分