树莓派上如何设置 WiFi 桥接和 dnsmasq ?

树莓派 WiFi 桥接器是向仅支持以太网连接的设备提供 Internet 访问的最佳方法之一。

在本教程中,我们将向您展示如何设置 WiFi 桥接器以及如何正确设置 dnsmasq ,以允许任何设备通过 Pi 进行连接而不会出现问题。

您将需要记住的是,速度不会像直接连接到路由器那样快。由于必须通过树莓派运行连接,因此存在一些开销。

请记住,要完成本教程,您将需要一个 WiFi 加密狗或一个带有内置 WiFi 模块的树莓派 3。

本教程可以与我们的基本 VPN 访问点结合使用,您可以在本教程后直接找到有关如何进行设置的教程。基本上,它将显示如何设置 OpenVPN 客户端以及如何通过该客户端重定向所有流量。

请注意:如果您决定沿 VPN 路线进行操作,则本教程将需要进行一些细微的更改,我们将在本教程的最后解释必要的更改。

设备清单

以下是本树莓派 WiFI 桥接教程所使用的所有点点滴滴,您将需要无线互联网连接才能完成本教程。

推荐的

  • 树莓派 2 或 3

  • Micro SD 卡

  • Wifi 加密狗 (The Pi 3 内置 WiFi)

  • 以太网连接

可选的

  • 树莓派外壳

设置 WiFi 桥

要设置树莓派 Wifi 桥接器,我们将使用 dnsmasq 软件包,此软件包可处理本教程的大部分繁琐工作。

Dnsmasq 是既充当本地 DHCP 服务器又充当本地 DNS 服务器的程序包。我们利用此软件包,以便我们可以通过树莓派本身分配 IP 地址和处理 DNS 请求,并像路由器一样工作。

利用 dnsmasq 的好处之一是,与 isc -dhcp-server 和 bind9 软件包相比,它非常易于配置,同时重量轻。

请记住,在本教程中,您将需要有一个活动的 WiFi 路由器进行连接,并打算将 Wi -Fi 连接桥接到一个以太网设备。

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

sudo apt-get update
sudo apt-get upgrade

2 完成后,我们现在可以安装一个将要使用的唯一软件包,运行以下命令以安装 dnsmasq 。

sudo apt-get install dnsmasq

3 在我们超越自己之前,我们应该设置我们计划使用的 wlan0 连接。如果您已经设置无线连接,则可以跳至步骤 5 。

否则,通过运行以下命令打开 wpa \ _supplicant 文件:

sudo vim /etc/wpa_supplicant/wpa_supplicant.conf

4 在此文件中添加以下内容,确保将 ssid 替换为要连接的网络的名称,并将 psk 值替换为该网络的密码。

网络= {
        ssid ="网络名称"
        psk ="networkpassword"
}

5 现在可以正确设置无线网络以正确连接,我们可以继续设置_eth0 接口_。基本上,这将强制其使用静态 IP 地址,如果不进行设置,则可能导致多个问题。

为此,我们需要通过运行以下命令来修改 dhcpcd .conf 文件:

sudovim/etc/dhcpcd.conf

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

确保为本教程中的所有命令更新了这些命令。

6 在此文件中,我们需要添加以下几行,请确保使用正确的以太网接口替换 ** eth0 **。

eth0接口
静态 ip _address = 192.168.220.1/24
静态路由器= 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** 现在备份了原始配置并移开了,现在我们可以通过在终端中键入以下命令继续创建新的配置文件。
sudovim/etc/dnsmasq.conf

10 现在,我们已经创建了新文件,我们想要添加以下行,这些行基本上告诉 dnsmasq 软件包如何处理 DNS 和 DHCP 流量。

interface = eth0#使用接口 eth0 
listen-address = 192.168.220.1#指定要监听的地址
bind-interfaces#绑定到接口
server = 8.8.8.8#使用 Google DNS
域所需的#不要转发短名称
bogus-priv#删除未路由的地址空间。
dhcp-range = 192.168.220.50,192.168.220.150,12h#IP范围和租用时间

现在,我们可以通过按 ** Ctrl + X 然后按 Y 然后按 Enter ** 保存并退出文件。

11 现在,我们需要配置树莓派的防火墙,以便它将所有流量从 eth0 连接转发到 wlan0 连接。在执行此操作之前,我们必须首先通过 sysctl .conf 配置文件启用 ipv4p IP 转发,因此让我们开始使用以下命令进行编辑:

sudovim/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 Internet 连接。

运行以下命令以将我们的新规则添加到 iptable 中:

sudo iptables -t nat -A写信-o wlan0 -j伪装
sudo iptables -A FORWARD -i wlan0 -o eth0 -m state --state相关,已确定-j ACCEPT
sudo iptables -A转发-i eth0 -o wlan0 -j接受

注意:如果在输入上述行时遇到错误,只需使用 sudo reboot 重新启动 Pi 。

15 当然,树莓派每次启动时都会刷新 iptables ,因此我们需要将新规则保存在某个地方,以便它们在每次启动时重新加载。

要保存我们的新规则集,请运行以下命令。

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

16 现在,我们将新规则安全地保存在了某个地方,我们需要在每次重新启动时重新加载该文件。解决此问题的最简单方法是修改 rc .local 文件。

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

sudovim/etc/rc.local

17 现在我们在此文件中,我们需要在下面添加行。确保此行出现在 ** exit 0 ** _._上方。该行基本上是从 iptables .ipv4.nat 文件中读取设置并将其加载到 iptables 中的。

找:

出口 0 

添加以上:

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

现在,我们可以先按_Ctrl + X_,再按_Y_,再按_Enter_,然后保存并退出文件。

18 最后,我们要做的就是启动 dnsmasq 服务。为此,您需要做的就是运行以下命令:

sudo service dnsmasq 启动

19 现在,您终于应该有了一个可以正常运行的树莓派 WiFi 桥接器,您可以通过将任何设备插入其以太网端口来确保它能够正常工作,该桥接器应该可以为您插入的设备提供 Internet 连接。

为确保一切顺利进行,最好立即尝试重新启动。这将确保在启动树莓派时一切都将成功重新启用。运行以下命令以重新启动树莓派:

sudo reboot

使用 VPN 设置树莓派 WiFi 桥

本教程与基本 VPN 路由器教程完全兼容。但是,您必须在步骤 13 中进行一个小更改,而不是使用此处显示的命令,请运行以下命令。

基本上,您将在这里看到的主要变化是,不是将流量从 wlan0 重定向到通过隧道,而是将流量从 eth0 连接重定向到了隧道。

sudo iptables -t nat-输出-o tun0 -j伪装
sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state相关,已确定-j ACCEPT
sudo iptables -A转发-i eth0 -o tun0 -j接受

无需完成任何其他更改即可完成 VPN 接入点教程的其余部分。希望到目前为止,您应该已经可以全面使用树莓派 WiFi Bridge。如果您遇到任何问题或对本教程有任何反馈,请不要在下面发表评论。

分享到