概述
您想将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供电,我们也建议不要连接红色电线,而应从墙上适配器供电。保持黑色,白色和绿色电缆保持连接状态。
别忘了扩展sd卡,否则可能会用完空间!
检查以太网和wifi
在继续进行操作之前,请确保已连接以太网电缆,并且您可以从树莓派 ping :ping 8.8.8.8
您也将要设置您的wifi加密狗。立即运行 sudo shutdown -h ,然后在pi处于关闭状态时插入wifi模块,以免造成电涌。
如果您拥有pi 3或任何其他具有内置wifi的pi,不需要外部wifi适配器,但是如果需要更大/外部天线,您可以 使用
在备份时,请使用 ifconfig -a 检查 wlan0 - wifi模块。
安装软件
下一步,我们将软件安装到将充当“ hostap”(主机访问点)的pi上。此步骤需要互联网访问因此请确保以太网连接已建立!
sudo apt-get update
sudo apt-get install hostapd isc-dhcp-server
(如果出现以下情况,您可能需要 sudo apt-get update pi似乎无法到达apt-get存储库)
(上面的文本显示了udhcpd,但它与isc-dhcp-server一样不起作用,但输出看起来应该相似)
还可以使用
sudo apt-get install iptables-persistent
安装一个不错的iptables管理器,您会得到两个“配置”屏幕,例如是到两者
设置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;
然后向下滚动到底部并添加以下行
下载:文件
复制代码
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;
}
通过键入 control-x保存文件,然后 y ,然后返回
运行
sudo nano /etc/default/isc-dhcp-server
并向下滚动到 interfaces =“” ,然后将其更新为 interfaces =“ wlan0”
,或者说您的无线适配器的名称是什么!
它可能称为 interfacesv4 和 v6 -在这种情况下,请同时添加 wlan0
关闭并保存文件
为静态ip设置wlan0
如果由于设置了它而使 wlan0 处于活动状态,请运行 sudo ifdown wlan0
‘不确定
下一步,我们将设置 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 之后-参见下面的示例。此后任何其他行都应在其前面加上#以将其禁用
保存文件(control-x y)
通过运行
sudo ifconfig wlan0 192.168.42.1
配置访问点
现在我们可以配置访问点详细信息。我们将建立一个受密码保护的网络,以便只有具有密码的人才能连接。
通过运行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 或类似的内容
如果您使用的是raspberry pi 3的内部wifi适配器,请注释driver=rtl871xdrv总共一行:
照常保存。确保每行结尾或开头没有多余的空格或制表符-该文件非常挑剔!
现在,我们将告诉pi在哪里可以找到此配置文件。运行 sudo nano/etc/default/hostapd
找到行 #daemon_conf =“” 并进行编辑因此它说 daemon_conf =“/etc/hostapd/hostapd.conf”
别忘了删除前面的#激活它!
然后保存文件
类似,运行 sudo nano/etc/init.d/hostapd 并找到该行
daemon_conf=
并将其更改为
daemon_conf=/etc/hostapd/hostapd.conf
配置网络地址转换
设置nat将允许多个客户端连接到wifi,并通过单个以太网ip将所有数据“隧道化”。 (但是,即使只有一个客户端要连接,也应该这样做)。
运行sudo nano /etc/sysctl.conf
滚动到底部并添加
net.ipv4.ip_forward=1
换行。保存文件。这将在启动时开始ip转发
还运行
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”
在开始时安装的 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
首先测试!
最后我们可以测试接入点主机了!运行
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 二进制文件
如果它可以正常工作,则应获得以下内容:
,然后看到创建的新访问点:
您可以尝试使用之前设置的密码(可能raspberry如果您复制了hostapd配置),则将显示调试文本在pi控制台上,但您将无法连接到以太网连接。
在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状态
或 sudo 服务isc-dhcp-服务器状态
启动守护程序服务。验证它们是否都成功启动(没有“失败”或“错误”)
然后使其成功启动,以便每次启动时都运行
sudo update-rc.d hostapd启用
sudo update-rc.d isc-dhcp-server 启用
连接并测试
现在我们已经在pi上安装了软件,是时候连接到它并测试连接了。我使用的是windows计算机,但是任何类型的计算机都可以正常运行
在pi上,运行命令 tail -f/var/log/syslog 来查看系统日志数据,便于检查和调试发生了什么!
将另一台计算机连接到上一步中创建的ap
输入在上一步中指定的wpa密钥
i》
在pi syslog中,您应该会看到类似这样的内容!它表明客户端已连接,在什么时候以及为他们提供了什么ip地址。
如果您根本无法连接,则 hostapd
在您的计算机上,打开一个终端(mac/linux)或开始-》运行-》 cmd 打开命令行
首先检查 ifconfig (mac/linux)或 ipconfig (windows)说。您的ip地址应该在192.168.42.10-50范围内
尝试ping pi,其地址为 192.168.42.1 -在windows上它将ping 3次并退出。在mac/linux上,按control-c几秒钟后退出。您应该成功完成ping操作,如下所示
如果该操作无效,则 hostapd 或 dhcpd (更可能)
下一步尝试ping 8.8.8.8,如果这不起作用,但以前的方法可行,则 dhcpd 或nat配置(更可能是)有问题
最后,我们将检查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)中的什么位置
使用面向物联网应用的RA MCU创新套件加速调试
小功率数码适配器电源ic SF5773
中国生态物联网已在路上 “生态系统”决胜市场
FAULHABER为客户提供适合众多应用领域的交钥匙解决方案
华为Nova2、华为Nova2 Plus正式发布:售价曝光2499元为何不买小米6?
怎样将树莓派设置为WiFi接入点
高通收购NUVIA,填补芯片制造短板
区块链和游戏的融合潜力有哪些
液位传感器在家用热水器中的应用
工业测试测量复杂?Maxim推高精确度18位元DAC MAX5318
广和通发布业界首款支持全球5G频段的智能模组SC151-GL
python的使用技巧
晶体振荡器振荡频率分析
搏仕熔融指数仪详细介绍
德国汽车制造经历变革后的行业分析与布局
DMC640MH激光焊锡控制器示教系统
康耐视改造升级传统设备,化繁为简提效率
无线电源研讨会上IDT专家的精彩解析
电烙铁不粘锡的原因及解决方法
DFT的简单介绍(下)