0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样将树莓派设置为WiFi接入点

454398 来源:网络整理 作者:网络整理 2019-11-27 09:52 次阅读

概述

您想将Pi用作WiFi路由器吗?还是将其作为特殊的过滤访问点?将Pi设置为接入点(AP)比将其用作客户端要先进一些,但是键入它只需要半小时即可进行配置。如果需要,本教程将使Pi广播WiFi服务,然后将互联网流量路由到以太网电缆。由于它是全Linux操作系统,因此您可以按自己的喜好进行更新或配置。

我使用以下页面作为创建本教程的指南,请注意,其中许多将无法完全使用,但请检查是否有兴趣!

http://qcktech.blogspot.com/2012/08/raspberry-pi-as-router.html

http ://itsacleanmachine.blogspot.com/2013/02/wifi-access-point-with-raspberry-pi.html

http://esrlabs.com/android-transporter-for-the-nexus -7-and-the-raspberry-pi/

http://elinux.org/RPI-Wireless-Hotspot

http://blog.mxard.com/persistent- iptables-on-raspberry-pi-raspbian

当前仅在Raspbian,Jessie和Raspberry Pi 3上进行过测试

所需条件

运行本教程将需要一些帮助:

Raspberry Pi-需要以太网

以太网电缆

WiFi适配器-并非所有WiFi适配器都可以使用,我们确定它可以与Adafruit商店中的适配器兼容!

带有Raspbian的SD卡(4GB或更大)。您可以自己动手或购买现成的Raspbian卡

用于Pi和Micro USB电缆的电源

USB控制台电缆(可选)-这使操作变得简单一些调试系统

Pi的外壳(可选)

SD或MicroSD读卡器(可选)

我们的Pi入门包将满足您的所有需求,甚至提供更多有趣的东西供您玩

准备

本教程假定您已设置好Pi并准备就绪。

请按照教程进行操作,以

安装将操作系统安装到SD卡上

引导Pi并配置

别忘了更改“ pi”帐户的默认密码!

设置并测试以太网和Wifi连接

使用USB控制台电缆(可选)连接

完成后,您应该拥有一个引导Raspbian的Pi。 ,您可以使用USB控制台电缆连接并通过命令行界面登录Pi。

可以通过以太网端口上的 ssh 或使用控制台电缆。

如果使用控制台电缆,即使最后一步中的图显示了通过USB控制台电缆(红色电线)为Pi供电,我们也建议不要连接红色电线,而应从墙上适配器供电。保持黑色,白色和绿色电缆保持连接状态。

o4YBAF3dDWSAadNHAAEPB3jtTD0286.png

别忘了扩展SD卡,否则可能会用完空间!

pIYBAF3dDbeAV-v9AABh8NqTzCk317.gif

检查以太网和Wifi

在继续进行操作之前,请确保已连接以太网电缆,并且您可以从树莓派 ping :ping 8.8.8.8

pIYBAF3djQKAG_bUAACL_qxKuZk837.gif

您也将要设置您的WiFi加密狗。立即运行 sudo shutdown -h ,然后在Pi处于关闭状态时插入WiFi模块,以免造成电涌。

如果您拥有Pi 3或任何其他具有内置WiFi的Pi,不需要外部WiFi适配器,但是如果需要更大/外部天线,您可以 使用

在备份时,请使用 ifconfig -a 检查 wlan0 - WiFi模块。

o4YBAF3djLGAOdQLAACDCOZT3jM129.gif

安装软件

下一步,我们将软件安装到将充当“ hostap”(主机访问点)的Pi上。此步骤需要互联网访问因此请确保以太网连接已建立!

sudo apt-get update

sudo apt-get install hostapd isc-dhcp-server

(如果出现以下情况,您可能需要 sudo apt-get update Pi似乎无法到达apt-get存储库)

pIYBAF3djfGAPvaJAAB81Cglum8127.gif

(上面的文本显示了udhcpd,但它与isc-dhcp-server一样不起作用,但输出看起来应该相似)

还可以使用

sudo apt-get install iptables-persistent

安装一个不错的iptables管理器,您会得到两个“配置”屏幕,例如是到两者

o4YBAF3djZ-ADdxMAAB855Zb-Pw633.png

设置DHCP服务器

下一步我们将编辑/etc/dhcp/dhcpd.conf ,该文件可设置我们的DHCP服务器-这允许s的wifi连接以自动获取IP地址,DNS等。

运行此命令以编辑文件

sudo nano /etc/dhcp/dhcpd.conf

查找提示行

下载:文件

复制代码

option domain-name “example.org”;

option domain-name-servers ns1.example.org, ns2.example.org; option domain-name “example.org”;

option domain-name-servers ns1.example.org, ns2.example.org;

,并将其更改为在开头添加#,以便他们说

下载:文件

复制代码

#option domain-name “example.org”;

#option domain-name-servers ns1.example.org, ns2.example.org; #option domain-name “example.org”;

#option domain-name-servers ns1.example.org, ns2.example.org;

找到以下行:/p》

下载:文件

复制代码

# If this DHCP server is the official DHCP server for the local

# network, the authoritative directive should be uncommented.

#authoritative; # If this DHCP server is the official DHCP server for the local

# network, the authoritative directive should be uncommented.

#authoritative;

并删除#,以使其显示为

下载:文件

复制代码

# If this DHCP server is the official DHCP server for the local

# network, the authoritative directive should be uncommented.

authoritative; # If this DHCP server is the official DHCP server for the local

# network, the authoritative directive should be uncommented.

authoritative;

pIYBAF3djfaAP01CAACABC0sZj4905.gif

然后向下滚动到底部并添加以下行

下载:文件

复制代码

subnet 192.168.42.0 netmask 255.255.255.0 {

range 192.168.42.10 192.168.42.50;

option broadcast-address 192.168.42.255;

option routers 192.168.42.1;

default-lease-time 600;

max-lease-time 7200;

option domain-name “local”;

option domain-name-servers 8.8.8.8, 8.8.4.4;

} subnet 192.168.42.0 netmask 255.255.255.0 {

range 192.168.42.10 192.168.42.50;

option broadcast-address 192.168.42.255;

option routers 192.168.42.1;

default-lease-time 600;

max-lease-time 7200;

option domain-name “local”;

option domain-name-servers 8.8.8.8, 8.8.4.4;

}

o4YBAF3djaSAeAhGAACsFxxRXWc327.png

通过键入 Control-X保存文件,然后 Y ,然后返回

运行

sudo nano /etc/default/isc-dhcp-server

并向下滚动到 INTERFACES =“” ,然后将其更新为 INTERFACES =“ wlan0”

,或者说您的无线适配器的名称是什么!

它可能称为 INTERFACESv4 和 v6 -在这种情况下,请同时添加 wlan0

o4YBAF3djaaAALlPAABsbAnazHk847.gif

关闭并保存文件

为静态IP设置wlan0

如果由于设置了它而使 wlan0 处于活动状态,请运行 sudo ifdown wlan0

‘不确定

pIYBAF3djfyAVWIrAABxf7GVpqY048.gif

下一步,我们将设置 wlan0 连接是静态的并且是传入的。运行sudo nano /etc/network/interfaces编辑文件

找到 auto wlan0 行,并在该行的前面和随后的每一行的前面添加#。如果您没有该行,请确保它最终看起来像下面的屏幕截图!基本上只需删除任何旧的 wlan0 配置设置,我们将对其进行更改

根据您现有的设置/分布,文本可能会或多或少,并且可能会有所不同

添加行

下载:文件

复制代码

iface wlan0 inet static

address 192.168.42.1

netmask 255.255.255.0 iface wlan0 inet static

address 192.168.42.1

netmask 255.255.255.0

在 allow-hotplug wlan0 之后-参见下面的示例。此后任何其他行都应在其前面加上#以将其禁用

o4YBAF3djaqAYt3bAABefuCBuno492.gif

保存文件(Control-X Y)

通过运行

sudo ifconfig wlan0 192.168.42.1

pIYBAF3djgCAWRq-AABAzDZYFBc911.gif

配置访问点

现在我们可以配置访问点详细信息。我们将建立一个受密码保护的网络,以便只有具有密码的人才能连接。

通过运行sudo nano /etc/hostapd/hostapd.conf

创建一个新文件,粘贴以下内容,您可以在 《后更改文本strong》 ssid = 改为另一个名称,即网络广播名称。可以在 wpa_passphrase =

下载:文件

复制代码

interface=wlan0

driver=rtl871xdrv

ssid=Pi_AP

country_code=US

hw_mode=g

channel=6

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=Raspberry

wpa_key_mgmt=WPA-PSK

wpa_pairwise=CCMP

wpa_group_rekey=86400

ieee80211n=1

wme_enabled=1 interface=wlan0

driver=rtl871xdrv

ssid=Pi_AP

country_code=US

hw_mode=g

channel=6

macaddr_acl=0

auth_algs=1

ignore_broadcast_ssid=0

wpa=2

wpa_passphrase=Raspberry

wpa_key_mgmt=WPA-PSK

wpa_pairwise=CCMP

wpa_group_rekey=86400

ieee80211n=1

wme_enabled=1

如果您不使用Adafruit wifi适配器,您可能必须更改 driver = rtl871xdrv 以说 driver = nl80211 或类似的内容

pIYBAF3djgKAbXixAABbUoSo7dY833.gif

如果您使用的是Raspberry Pi 3的内部WiFi适配器,请注释driver=rtl871xdrv总共一行:

o4YBAF3djbGADsqOAACo38dpqLQ985.png

照常保存。确保每行结尾或开头没有多余的空格或制表符-该文件非常挑剔!

现在,我们将告诉Pi在哪里可以找到此配置文件。运行 sudo nano/etc/default/hostapd

找到行 #DAEMON_CONF =“” 并进行编辑因此它说 DAEMON_CONF =“/etc/hostapd/hostapd.conf”

别忘了删除前面的#激活它!

然后保存文件

o4YBAF3djbSAefFKAAEf23aO9Rk030.gif

类似,运行 sudo nano/etc/init.d/hostapd 并找到该行

DAEMON_CONF=

并将其更改为

DAEMON_CONF=/etc/hostapd/hostapd.conf

pIYBAF3djgmAPmnkAACNNl4y5TE396.png

配置网络地址转换

设置NAT将允许多个客户端连接到WiFi,并通过单个以太网IP将所有数据“隧道化”。 (但是,即使只有一个客户端要连接,也应该这样做)。

运行sudo nano /etc/sysctl.conf

滚动到底部并添加

net.ipv4.ip_forward=1

换行。保存文件。这将在启动时开始IP转发

pIYBAF3djgyAa_w1AABgHNIc4sY301.gif

还运行

sudo sh -c “echo 1 》 /proc/sys/net/ipv4/ip_forward”

以立即将其激活

运行以下命令以在以太网端口 eth0 和wifi端口 wlan0

下载:文件

复制代码

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

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

sudo iptables -A FORWARD -i eth0 -o wlan0 -m state --state RELATED,ESTABLISHED -j ACCEPT

sudo iptables -A FORWARD -i wlan0 -o eth0 -j ACCEPT

您可以检查一下内容在带有

sudo iptables -t nat -S

sudo iptables -S

的表中(要在重新启动时进行此操作(因此您不必每次都键入它))运行

sudo sh -c “iptables-save 》 /etc/iptables/rules.v4”

o4YBAF3djbuARDjAAACMM2GzCvI530.png

在开始时安装的 iptables-persistent 工具将自动在启动时重新加载配置。

更新hostapd(也许)

如果您正在运行Raspberry pi内核4.4.13-v7 +或更高版本(使用 uname -a 检查内核版本),则无需执行此步骤。

如果您使用的是Raspberry Pi 3个内置WiFi或未使用类似RTL8192的WiFi适配器,请跳过此步骤!

在运行接入点软件之前,我们必须将其更新为支持该版本的版本。 WiFi适配器。

首先输入

wget http://adafruit-download.s3.amazonaws.com/adafruit_hostapd_14128.zip

来下载新版本(请检查下一部分) (有关如何编译自己的更新的 hostapd )的信息,然后

unzip adafruit_hostapd_14128.zip

对其进行解压缩。使用

sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.ORIG

将旧版本移开,并使用

sudo mv hostapd /usr/sbin

对其进行设置,使其可以与

sudo chown root:root /usr/sbin/hostapd

sudo chmod 755 /usr/sbin/hostapd

o4YBAF3djbyAC2g2AACAmfGFUNo642.gif

首先测试!

最后我们可以测试接入点主机了!运行

sudo/usr/sbin/hostapd/etc/hostapd/hostapd.conf

与我们一起手动运行 hostapd 配置文件。您应该看到它已设置并使用 wlan0 ,然后您可以与另一台wifi计算机进行检查,以查看SSID是否显示出来。如果是这样,则说明您已经成功设置了接入点。

如果收到此警告

下载:文件

复制代码

Configuration file: /etc/hostapd/hostapd.conf

Line 2: invalid/unknown driver ’rtl871xdrv‘

1 errors found in configuration file ’/etc/hostapd/hostapd.conf‘

Failed to set up interface with /etc/hostapd/hostapd.conf

Failed to initialize interface Configuration file: /etc/hostapd/hostapd.conf

Line 2: invalid/unknown driver ’rtl871xdrv‘

1 errors found in configuration file ’/etc/hostapd/hostapd.conf‘

Failed to set up interface with /etc/hostapd/hostapd.conf

Failed to initialize interface

这可能意味着您不在使用一个RTL871Xdrv WiFi适配器(例如Pi 3内部wifi),并且应使用该芯片组注释掉hostapd配置 OR 中的driver=rtl871xdrv行,并且您需要下载我们重新编译的 hostapd 二进制文件

如果它可以正常工作,则应获得以下内容:

pIYBAF3djhGAdw2zAABvfLBrD5s327.gif

o4YBAF3djcCAbiuPAAB73zF3cxo238.png

,然后看到创建的新访问点:

pIYBAF3djhaAEdZvAABc880fREU642.gif

您可以尝试使用之前设置的密码(可能Raspberry如果您复制了hostapd配置),则将显示调试文本在Pi控制台上,但您将无法连接到以太网连接。

o4YBAF3djcaAMumPAAC-5oYK21s443.png

在Pi控制台中键入 Control-C 以返回到Pi命令行

删除WPA请求方,以取消测试。

根据您的发行版,您 可能需要删除WPASupplicant。为此,请运行以下命令:

下载:文件

复制代码

sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/ sudo mv /usr/share/dbus-1/system-services/fi.epitest.hostap.WPASupplicant.service ~/

,然后重新启动( sudo重新启动)并重试运行 hostapd

整理!

现在我们知道它可以工作了,是时候将其设置为“守护程序”了-该程序将在Pi启动时启动。

运行以下命令

sudo service hostapd start

sudo service isc-dhcp-server start

您可以随时检查状态

sudo服务hostapd状态

pIYBAF3djhyAdvZXAAD56ERbX_o797.png

或 sudo 服务isc-dhcp-服务器状态

o4YBAF3djcmABWqYAADKUreRAeo773.png

启动守护程序服务。验证它们是否都成功启动(没有“失败”或“错误”)

然后使其成功启动,以便每次启动时都运行

sudo update-rc.d hostapd启用

sudo update-rc.d isc-dhcp-server 启用

pIYBAF3djh-ADGtFAABI0zRPIT0555.gif

连接并测试

现在我们已经在Pi上安装了软件,是时候连接到它并测试连接了。我使用的是Windows计算机,但是任何类型的计算机都可以正常运行

在Pi上,运行命令 tail -f/var/log/syslog 来查看系统日志数据,便于检查和调试发生了什么!

将另一台计算机连接到上一步中创建的AP

pIYBAF3djxeALqMoAABXZvqxmvU926.gif

输入在上一步中指定的WPA密钥

o4YBAF3djsWANwcRAAA3ILApDBg059.gif

pIYBAF3djxqAboBWAAA2iL4okBM059.gif

i》

在Pi syslog中,您应该会看到类似这样的内容!它表明客户端已连接,在什么时候以及为他们提供了什么IP地址。

如果您根本无法连接,则 hostapd

o4YBAF3djsmAUChMAACacHk5waI634.gif

在您的计算机上,打开一个终端(mac/linux)或开始-》运行-》 cmd 打开命令行

首先检查 ifconfig (mac/linux)或 ipconfig (windows)说。您的IP地址应该在192.168.42.10-50范围内

o4YBAF3djs2APNL9AACMoYmCyk8382.gif

尝试ping Pi,其地址为 192.168.42.1 -在Windows上它将ping 3次并退出。在Mac/Linux上,按Control-C几秒钟后退出。您应该成功完成ping操作,如下所示

如果该操作无效,则 hostapd 或 dhcpd (更可能)

pIYBAF3djyOABq9lAABW6_GHkv4937.gif

下一步尝试ping 8.8.8.8,如果这不起作用,但以前的方法可行,则 dhcpd 或NAT配置(更可能是)有问题

o4YBAF3djtCAG18-AABLRSsS9A4280.gif

最后,我们将检查DNS是否有效,请尝试ping www.mit.edu。如果这不起作用,则 dhcpd

出现了问题。如果到目前为止一切正常,请尝试浏览Internet,发送电子邮件等。您现在将Pi用作Wifi路由器!

更多!

可以将您的路由器设置为开放或WEP访问,但我们不在此介绍(它也不安全!)您可能想在此搜索有关涵盖 hostapd 选项

编译hostapd

此步骤不是必需的,仅适用于好奇的人!

您可能已经注意到,有一个步骤是从adafruit.com下载hostapd副本并将其与您的交换。如果您要自己编译,请按以下步骤操作(如果您可以使用我们的二进制文件,这很容易,但是没有必要)

转到Realtek下载页面http://152.104 .125.41/downloads/downloadsView.aspx?Langid = 1&PNid = 21&PFid = 48&Level = 5&Conn = 4&ProdID = 27 。..

下载linux 3.4.4_4749

将zip复制到SD使用任何可将其放置在Pi的/boot目录中的计算机(或以某种方式将该文件存储到您的Pi上)

从SD卡引导Pi

sudo mv/boot/RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip。

解压缩RTL8192xC_USB_linux_v3.4.4_4749.20121105.zip

mv RTL8188C_8192C_USB_linux_v3.4.4_4749.20121105/rtlli》

cd wpa_supplicant_hostapd

解压缩wpa_supplicant_hostapd-0.8_rtw_20120803.zip

cd wpa_supplicant_hostapd-0.8/

cd hostapd

make

*有一个三明治*

完成后, hostapd 二进制文件位于目录中

(下载链接无法正常工作,也许它的Som在http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=21&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false)中的什么位置
责任编辑:wv

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

    关注

    81

    文章

    5159

    浏览量

    199413
  • 树莓派
    +关注

    关注

    113

    文章

    1638

    浏览量

    104727
收藏 人收藏

    评论

    相关推荐

    请问如何在i.MX8 Plus Solidrun上Wi-Fi设置接入点模式?

    失败 WLAN0:接口状态 ACS >禁用 WLAN0:接入点禁用 ACS:可能是通道配置无效,请与您的配置文件一起报告。 ACS:无法启动 wlan0:禁用 AP
    发表于 03-01 09:52

    树莓3树莓4原理图分享

    提供了树莓3、树莓3B、树莓4版本的原理图
    发表于 09-27 07:58

    树莓接入点开源分享

    电子发烧友网站提供《树莓接入点开源分享.zip》资料免费下载
    发表于 06-20 11:37 0次下载
    <b class='flag-5'>树莓</b>派<b class='flag-5'>接入点</b>开源分享

    Wemos D1 Mini忘记了接入点凭据怎么解决?

    我在一个项目中有超过 20 个 Wemos D1 mini,但其中两个在几天后忘记了接入点凭据(有时在 4-5 天后,有时在 20-30 天后)。他们都在使用 wifi 管理器和相同的代码。当他们
    发表于 05-30 07:45

    esp8266无法连接到Mist接入点怎么解决?

    我开发了一个运行良好的 esp8266 项目。但是,我在让 esp8266 连接 到 Mist 接入点时遇到了一些问题。它们设置使用本文中指示的高数据速率 然而,esp8266 不连接,并且在
    发表于 05-16 09:13

    esp8266设置服务器时,如何从不同的接入点连接到服务器?

    嘿,我想问一个 <> 问题。当我 esp8266 设置服务器时,如何从不同的接入点连接到服务器?我阅读了有关端口转发的内容,但没有更简单的方法吗?我想创建应用程序
    发表于 05-15 08:13

    esp8266上做一个小项目,应该使用esp 作为接入点和 aa WIFI 站来做设置页面吗?

    将它插入 pc 或无线时,用户可以在其中放置 WIFI SSID 和 WIFI 密码,就像您购买的任何路由器一样。 我怎样才能做到这一?我应该使用 esp 作为
    发表于 05-15 07:20

    重新连接Wifi ESP8266问题求解

    嗨,我已经一个模块(ESP8266)编程带有 tcp 服务器的接入点,因此我可以发送和读取数据。问题是当我尝试使用小米 redmi note 8 pro 连接它时。手机已连接,1 秒后断开连接
    发表于 05-12 07:16

    在esp8266启动时会尝试连接到接入点怎么解决?

    。有时它会超时,状态 WL_CONNECT_FAILED WL_NO_SSID_AVAIL 当它为 WL_NO_SSID_AVAIL 时,我执行 WiFi.scanNetworks() 并查看我的接入点。 我
    发表于 05-12 06:56

    如何连接ESP8266接入点

    、内置 OTA、接入点管理器、 性能指标、Web 套接字通信、应用程序 API,全部在 ESP8266 上运行...... 甚至可以在 ESP-01S 上使用 --- 请检查一下!
    发表于 05-11 07:23

    如何使用esp8266-01树莓2b提供wifi连接?

    您好,我喜欢使用 esp8266-01 我的树莓 2b 提供 wifi 连接,就像我使用 usb wifi 一样,如果您能帮助我,我将不
    发表于 05-10 10:34

    esp可以与wifi连接一起使用吗?

    个值(连接到接入点),我可以第一个 esp8266 连接到同一个接入点值发送到第二个 esp8266,但连接时间和延迟以及连接期间的功耗很差。 所以我考虑使用 ESP NOW
    发表于 05-08 06:48

    如何esp设置最大功率?

    我测试了两个固件 nodemcu 一个 arduino esp8266 核心和 ardudio 有更好的信号。Nodemcu 可以在距接入点约 8 米的地方进行通信。Arduino 有方法 setOutputPower 但 nodemcu 没有。如何将我的 esp 设置
    发表于 04-26 09:05

    如何使用esp8266作为接入点

    我正在尝试使用 esp8266 作为接入点,我可以使用智能手机上的浏览器读取温度传感器。单个温度传感器串行数据将来自 PIC,因此我可以以任何方式对其进行格式化以使其工作最简单。数据将在第二个左右
    发表于 04-26 06:26

    Basic闪存到esp8266中,需要连接到它作为接入点吗?

    Basic 闪存到我的 esp8266 中。 接下来我需要连接到它作为接入点,对吗?它没有显示在我可用的 wifi 网络上...... 有什么指示吗? 红色 LED 一直亮着。没有蓝色。 Serial 上也没有。
    发表于 04-26 06:05