树莓派WiFi中继是一种廉价且省电的方式,可以增加WiFi网络的覆盖范围。WiFi中继与WiFi热点有很大的不同。
主要区别在于,它不是从以太网获得网络连接,而是从WiFi获得网络连接。
因此,要完成本教程,你需要两个WiFi适配器,其中一个必须是热点功能。
当您连接到Wifi中继时,网络连接速度会有所下降,主要原因是必须等待流量经过初始Wi-Fi连接。
本教程可以和VPN热点教程很好地结合起来,可以在本教程之后直接找到关于如何设置的教程。这篇文章主要讲了如何设置一个OpenVPN客户端,并通过该客户端重定向所有流量。
但请注意,本教程需要做一些细微的改动,我们将在本教程的最后解释这些改动。
设备清单
下面是所需要的设备列表,点击链接可直达特别优惠购买。
建议
可选
设置WiFi中继
要设置Raspberry Pi Wifi中继,需要利用dnsmasq包,这个包处理了本教程中大部分的繁琐工作,因为它既是DNS,也是连接的DHCP服务器。还需要利用hostapd包,这个包可以让Wi-Fi模块设置为热点。
请记住,对于本教程,需要有一个Wi-Fi路由器和一个以太网设备连接到打算在桥接的Wifi。
1. 在开始安装和设置包之前,首先在Raspberry Pi上运行更新,在终端中输入以下两个命令。
sudo apt-get update
sudo apt-get upgrade
2. 做好了这些,可以安装将要利用的两个软件包了,运行下面的命令来安装dnsmasq和hostapd。
sudo apt-get install dnsmasq
sudo apt-get install hostapd
3. 设置我们计划使用的wlan0连接。如果已经设置了无线连接,可以跳到第五步。
否则在Raspberry Pi上运行以下命令打开wpa-supplicant.conf文件。
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
4. 在这个文件中添加以下内容,确保用要连接的网络名称代替ssid,用该网络的密码代替psk值。
network={
ssid="networkname"
psk="networkpassword"
}
输入网络名称和网络密码后,可以按Ctrl + X,然后按Y,然后按Enter键保存文件。
5. 现在安装了软件包和WiFi设置后,现在要设置dhcpcd,尝试给Raspberry Pi一个静态IP地址。
通过以下命令修改dhcpcd.conf来实现。
sudo nano /etc/dhcpcd.conf
6. 在这个文件中,需要在底部添加以下几行,这将按照要求设置wlan1的连接。
注意:如果已经升级到Raspbian Stretch,那么wlan0和wlan1可能需要在本教程中进行更改。使用ifconfig命令查看新的名称是什么,它们可能相当长,并将包含MAC地址。
interface wlan1
static ip_address=192.168.220.1/24
static routers=192.168.220.0
现在按Ctrl + X然后按Y然后按Enter键保存并退出文件。
7. 重启dhcpd服务,这样它就会加载有的配置更改。
sudo service dhcpcd restart
8. 接下来,需要调整hostapd配置,为此需要在Raspberry Pi上运行以下命令开始编辑配置文件。
sudo nano /etc/hostapd/hostapd.conf
9. 在这个文件中,输入以下几行,这些是设置如何与wlan设备交互。在这个文件中,唯一需要担心的是ssid和wpa_passphrase。
注意:可能需要将driver改为适合您设备的驱动程序,因为一些Wi-Fi设备有特殊的驱动程序要求。
interface=wlan1
driver=nl80211
hw_mode=g
channel=6
ieee80211n=1
wmm_enabled=1
ht_capab=[HT40][SHORT-GI-20][DSSS_CCK-40]
macaddr_acl=0
ignore_broadcast_ssid=0
auth_algs=1
wpa=2
wpa_key_mgmt=WPA-PSK
rsn_pairwise=CCMP
ssid=Pi3-Extender
wpa_passphrase=raspberry
记得把wpa_assphrase改成自己的密码,一定要设置成安全的密码,这样其他人就不能随便连接到你的WiFi中继上。
现在按Ctrl +X然后按Y然后按Enter键保存并退出文件。
10. 完成后,应该修改/etc/default/和/etc/init.d/中的hostapd文件。这些文件是hostapd读取之前创建的新配置文件的地方。
要开始编辑这两个文件中的第一个文件,请运行以下命令。
sudo nano /etc/default/hostapd
11. 在该文件中,需要找到以下一行并将其替换:
找。
#DAEMON_CONF=""
替换为:
DAEMON_CONF="/etc/hostapd/hostapd.conf"
现在可以通过按Ctrl + X然后按Y然后按Enter键保存并退出文件。
12. 现在需要编辑第二个配置文件,这个文件位于init.d文件夹内。可以用下面的命令来编辑这个文件。
sudo nano /etc/init.d/hostapd
13. 在该文件中,需要找到以下一行并将其替换:
找。
#DAEMON_CONF=
替换为:
DAEMON_CONF=/etc/hostapd/hostapd.conf
按Ctrl +X然后按Y然后按Enter键保存并退出文件。
14. hostapd现在已经设置好了,需要设置dnsmasq,在开始编辑它的配置之前,把默认的配置移到一个新的位置。可以通过下面的命令来完成。
sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
15. 现在,原始配置文件已被移开,可以开始创建新配置文件。用以下命令创建和编辑新文件。
sudo nano /etc/dnsmasq.conf
16. 在这个文件中添加以下几行,这几行主要是告诉dnsmasq服务如何处理所有通过的连接。
interface=wlan1 # Use interface wlan1
listen-address=192.168.220.1 # Specify the address to listen on
bind-interfaces # Bind to the interface
server=8.8.8.8 # Use Google DNS
domain-needed # Don't forward short names
bogus-priv # Drop the non-routed address spaces.
dhcp-range=192.168.220.50,192.168.220.150,12h # IP range and lease time
现在可以通过按Ctrl +X然后按Y然后按Enter键保存并退出文件。
17. 接下来,需要配置Raspberry Pi,让它将所有的流量从wlan1连接转发到wlan0连接。首先必须通过sysctl.conf配置文件来启用它,用下面的命令开始编辑它。
sudo nano /etc/sysctl.conf
18. 在这个文件中,需要找到以下一行,并删除开头的#。
找。
#net.ipv4.ip_forward=1
替换为:
net.ipv4.ip_forward=1
现在按Ctrl + X然后按Y然后按Enter键保存并退出文件。
19. 现在,可以运行以下命令来立即激活它。
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
20. 启用IPv4转发后,可以在wlan0接口和wlan1接口之间配置一个NAT。这将把所有的流量从热点转发到以太网连接上。
运行以下命令将新规则添加到iptable中。
sudo iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
sudo iptables -A FORWARD -i wlan0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
注意:如果在输入上述行时出现错误,只需使用sudo reboot重启Pi即可。
21. 当然iptables会在每次启动Raspberry Pi时被刷新,所以需要将新规则保存在某个地方,以便在每次启动时将它们加载回来。
要保存新规则集,运行以下命令。
sudo sh -c "iptables-save > /etc/iptables.ipv4.nat"
22. 现在,新规则已经安全地保存在某个地方,需要让这个文件在每次重启时重新加载进来。最简单的方法是修改rc.local文件。
运行以下命令开始编辑文件。
sudo nano /etc/rc.local
23. 在这个文件中,需要添加下面一行。确保这行出现在 exit 0 的上方。这一行基本上是从我们的iptables.ipv4.nat文件中读取设置,并将它们加载到iptables中。
找。
exit 0
添加ABOVE。
iptables-restore < /etc/iptables.ipv4.nat
现在可以通过按Ctrl + X然后按Y然后按Enter键保存并退出文件。
24. 最后需要做的就是启动这两个服务,并在systemctl中启用它们。运行以下两个命令。
sudo service hostapd start
sudo service dnsmasq start
25. 现在,应该终于有了一个完全可操作的Raspberry Pi无线热点,可以连上测试看看。
为了确保一切都能顺利运行,最好现在就重新启动,运行以下命令重新启动Raspberry Pi。
sudo reboot
用VPN设置Raspberry Pi WiFi中继。
本教程与VPN热点教程完全兼容。但是,有一个小的变化,在步骤13的地方。
这里的主要变化是,把wlan1连接的流量重定向到隧道,而不是从wlan0重定向到隧道。
sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i tun0 -o wlan1 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i wlan1 -o tun0 -j ACCEPT
剩下的VPN热点教程可以不做其他改动。
希望到现在,你应该有一个完全可以操作的Raspberry Pi WiFi中继。如果你遇到任何问题或有一些与本教程相关的反馈,那么请不要犹豫在下面留言。
欢迎转载,请留下出处链接:Labno3 » 如何使用树莓派WiFi中继,增加WiFi网络的覆盖范围
不支持tun,咋整?
我也不会整