如何使用树莓派WiFi中继,增加WiFi网络的覆盖范围

树莓派WiFi中继是一种廉价且省电的方式,可以增加WiFi网络的覆盖范围。WiFi中继与WiFi热点有很大的不同。

WiFiExtender-mini-watermark.jpg

主要区别在于,它不是从以太网获得网络连接,而是从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中继。如果你遇到任何问题或有一些与本教程相关的反馈,那么请不要犹豫在下面留言。

平均: 5 / 5. votes: 2

到目前为止还没有投票!成为第一位评论此文章。

欢迎转载,请留下出处链接:Labno3 » 如何使用树莓派WiFi中继,增加WiFi网络的覆盖范围

赞 (0)

2 评论

2+3=

  1. 哦哦

    不支持tun,咋整?

    回复