如何把树莓派变成wifi路由器,简单的Raspberry Pi WiFi中继教程

如果你手里没有路由器,使用树莓派WiFi中继让设备通过树莓派接入网络是个好方法,跟随这篇文章的脚步一起看看怎么做吧。

Raspberry-Pi-WiFi-Bridge.jpg

因为树莓派的性能有限,网速可能不是特别好。

设备清单

下面是用到的所有设备,点击链接可直达特别优惠购买。

建议

可选

设置WiFi

为了设置Raspberry Pi Wifi,需要利用dnsmasq包,这个包处理了本教程中大部分的繁琐工作。

Dnsmasq是一个既能作为本地DHCP服务器又能作为本地DNS服务器的软件包。这样就可以通过Raspberry Pi本身分配IP地址和处理DNS请求,就像一个路由器一样。

使用dnsmasq的好处是它非常容易配置,同时与isc-dhcp-server和bind9包相比,它还是轻量级的。

1. 在开始安装和设置我们的软件包之前,首先在Raspberry Pi上运行更新,在终端中输入以下两个命令。

sudo apt-get update
sudo apt-get upgrade

2. 完成后,运行以下命令安装dnsmasq。

sudo apt-get install dnsmasq

3. 现在设置wlan0连接。如果已经设置了无线连接,可以跳到第五步。

否则运行以下命令打开wpa_supplicant文件。

sudo nano /etc/wpa_supplicant/wpa_supplicant.conf

4. 在这个文件中添加以下内容,确保用要连接的网络名称代替ssid,用该网络的密码代替psk值。

network={
        ssid="networkname"
        psk="networkpassword"
}

5. 现在已经设置好了无线网络的正确连接,可以设置eth0接口了。这基本上会强制它使用静态IP地址,不设置这个会引起一些问题。

要做到这一点,我们需要通过运行以下命令来修改dhcpcd.conf文件。

sudo nano /etc/dhcpcd.conf

重要提示:如果你使用的是Raspbian stretch,那么如果开启了可预测的网络名称,那么wlan0和eth0可能需要更改。使用ifconfig命令查看新的名称,它们可能很长,并且会包含MAC地址。

确保你在本教程中更新这些命令。

6. 在这个文件中,需要添加以下几行,确保用正确的以太网接口代替eth0。

interface eth0
static ip_address=192.168.220.1/24
static routers=192.168.220.0

现在可以按Ctrl+X然后按Y然后按Enter键保存并退出文件。

7. 在对dhcpcd配置进行了修改后,运行以下命令重新启动服务。

sudo service dhcpcd restart

8. 在开始修改dnsmasq的配置之前,首先要运行下面的命令,对原始配置进行备份。

sudo mv /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

9. 原始配置已经备份并移出,现在可以继续前进,在终端输入下面的命令,创建新的配置文件。

sudo nano /etc/dnsmasq.conf

10. 已经创建了新的文件,要添加下面的行,这些行基本上告诉dnsmasq包如何处理DNS和DHCP流量。

interface=eth0       # Use interface eth0  
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键保存并退出文件。

11. 此时需要配置Raspberry Pi的防火墙,使其将所有的流量从我们的eth0连接转发到wlan0连接。在这之前,必须先通过sysctl.conf配置文件启用ipv4p IP转发功能,所以让我们用下面的命令开始编辑它。

sudo nano /etc/sysctl.conf

12. 在这个文件中,你需要找到以下一行,并删除开头的#。

找。

#net.ipv4.ip_forward=1

替换为:

net.ipv4.ip_forward=1

按Ctrl+X然后按Y然后按Enter键保存并退出文件。

13. 由于不想等到下一次重启时才将配置加载进来,可以运行以下命令来立即启用它。

sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"

14. 现在IPv4转发已经启用,重新配置下防火墙,使流量从eth0接口转发到wlan0。这样连接到以太网的人都可以使用wlan0互联网连接。

运行以下命令将新规则添加到iptable中。

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

注意:如果在输入上述行时出现错误,只需使用sudo reboot重启Pi即可。

15. 当然iptables会在Raspberry Pi的每次启动时刷新,所以需要将新规则保存在某个地方,以便在每次启动时将它们加载回来。

要保存新规则集,运行以下命令。

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

16. 现在,新规则已经安全地保存在某个地方,需要让这个文件在每次重启时重新加载进来。最简单的方法是修改rc.local文件。

运行以下命令开始编辑文件。

sudo nano /etc/rc.local

17. 在这个文件中,需要添加下面一行。确保这行出现在 exit 0 的上方。这一行是从iptables.ipv4.nat文件中读取设置,并将它们加载到iptables中。

找。

exit 0

添加以上。

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

按Ctrl+X然后按Y然后按Enter键保存并退出文件。

18. 最后,需要做的就是启动dnsmasq服务,运行以下命令。

sudo service dnsmasq start

19. 现在应该有了一个完全可以使用的Raspberry Pi WiFi Bridge,可以联网测试下。

为了确保一切都能顺利运行,最好现在就重新启动。这将确保当Raspberry Pi重新启动时,一切都会成功重新启用。运行以下命令重新启动Raspberry Pi。

sudo reboot

用VPN设置Raspberry Pi WiFi

本教程与VPN路由器的基本教程完全兼容。然而,有一个小的变化,在步骤13,运行下面的命令。

在这里的主要变化是,从eth0连接重定向流量到隧道,而不是从wlan0重定向流量。

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

剩下的VPN接入点教程可以不做其他改动。

希望现在你应该有一个完全可以操作的Raspberry Pi WiFi Bridge。如果你遇到任何问题或有一些与本教程相关的反馈,那么请不要犹豫在下面留言。

平均: 0 / 5. votes: 0

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

欢迎转载,请留下出处链接:Labno3 » 如何把树莓派变成wifi路由器,简单的Raspberry Pi WiFi中继教程

赞 (1)

评论

6+8=