使用树莓派在ZeroTier和本地网络之间创建桥接

你是否有一些家中的设备无法运行ZeroTier?你是否想要远程访问这些设备?你是否已经在使用ZeroTier?你可以使用一台小型Linux PC作为ZeroTier虚拟网络物理网络之间的桥接设备

假设和要求

在开始之前,请确保满足以下假设和要求:

  • 你正在在家庭网络上进行操作,并可以登录到你的路由器并找到DHCP设置。
  • 你有一个键盘、显示器和以太网电缆连接到你的树莓派。因为在配置过程中可能会破坏网络,导致无法远程连接,所以这些物理设备很重要。
  • 你对命令行和SSH有一定的了解。
  • 本教程将使用systemd networking。如果你对systemd有异议,你可能需要自行适应不同的Linux网络配置系统。
  • 我们在编写本文时使用的是树莓派2,但树莓派3或4也应该可以正常工作。任何运行基于Debian 10的发行版的设备都应该可以正常工作。不一定非要使用树莓派,但某些指令可能特定于Raspbian系统。

准备信息

在开始之前,请准备以下信息以在配置过程中使用:

  • 物理LAN子网
  • 物理LAN DHCP范围
  • ZeroTier自动分配范围
  • 默认网关IP地址(路由器)
  • 桥接IP地址(将静态分配)
  • 创建一个新的ZeroTier网络并获取其ID。保留旧网络以作为连接已使用ZeroTier的设备的备用方法。
  • DHCP范围和ZeroTier自动分配范围应该位于相同的子网中,但不重叠。你可能会基于已在你的路由器上配置的内容进行设置。

以下是一个示例计划:

  • 物理LAN子网:192.168.192.0/24
  • 物理LAN DHCP范围:192.168.192.65到192.168.192.126
  • ZeroTier自动分配范围:192.168.192.129到192.168.192.190
  • 默认网关IP地址:192.168.192.1
  • 桥接IP地址:192.168.192.2/24(或使用DHCP)
  • ZeroTier网络ID:d5e04297a19bbd70

步骤

步骤1:使你的桥接设备运行起来

首先,确保你的树莓派设备已经启动并运行。按照以下步骤进行操作:

  1. 遵循树莓派的安装指南,下载并安装操作系统。你可以使用以下版本:Raspbian Buster Lite

  2. 启用SSH以便远程登录到树莓派,详细说明请参考这里

  3. 使用SSH连接到树莓派,例如:

    ssh pi@raspberrypi.local

    或者

    ssh pi@<树莓派的IP地址>
  4. 更新操作系统:

    sudo apt update && sudo apt -y full-upgrade && sudo reboot
  5. 在重启后重新登录。

步骤2:安装ZeroTier

接下来,安装ZeroTier。请遵循Linux系统的安装指南,具体指南请参考这里。基本上,你可以运行以下命令:

curl -s https://install.zerotier.com | sudo bash

在安装完成后,设置一些shell变量以在后续配置中使用:

NETWORK_ID=<你的网络ID>
BR_IF="br0"
BR_ADDR=<你的桥接地址>
GW_ADDR=<你的网关地址>

然后,加入ZeroTier网络:

sudo zerotier-cli join $NETWORK_ID
sudo zerotier-cli listnetworks

我们不希望ZeroTier在$ZT_IF上管理地址或路由,我们会在下面的步骤中手动进行配置。

sudo zerotier-cli set $NETWORK_ID allowManaged=0

再设置一个变量,用于存储ZeroTier网络接口的名称,你可以从listnetworks输出中找到它,它通常会类似于:zt3jvirser。

ZT_IF=<你的ZeroTier接口名称>

步骤3:在my.zerotier.com上配置设备

前往my.zerotier.com,找到你的ZeroTier网络($NETWORK_ID),然后在“Members”部分添加你的设备。打开高级设置的扳手图标,并选中以下选项:

  • 允许桥接
  • 不自动分配
  • 授权成员

步骤4:切换到systemd networking

现在,我们将切换到systemd networking。首先,删除已有的网络配置:

sudo apt remove --purge --auto-remove dhcpcd5 fake-hwclock ifupdown isc-dhcp-client isc-dhcp-common openresolv

然后,启用systemd-networkd:

sudo ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf;
sudo systemctl enable systemd-networkd;
sudo systemctl enable systemd-resolved;
sudo systemctl enable systemd-timesyncd;

接下来,配置网络接口。我们将在下面的步骤中创建网络配置文件。以下是示例配置文件:

cat << EOF | sudo tee /etc/systemd/network/25-bridge-br0.network
[Match]
Name=$BR_IF

[Network]
Address=$BR_ADDR
Gateway=$GW_ADDR
DNS=1.1.1.1
EOF

cat << EOF | sudo tee /etc/systemd/network/br0.netdev
[NetDev]
Name=$BR_IF
Kind=bridge
EOF

cat << EOF | sudo tee /etc/systemd/network/25-bridge-br0-zt.network
[Match]
Name=$ZT_IF

[Network]
Bridge=$BR_IF
EOF

cat << EOF | sudo tee /etc/systemd/network/25-bridge-br0-en.network   
[Match]
Name=eth0 # 可能是en*

[Network]
Bridge=$BR_IF
EOF

完成配置后,请检查网络配置文件:

tail -n+0 /etc/systemd/network/*

如果需要,使用你喜欢的文本编辑器编辑这些文件。如果一切看起来正常,重新启动树莓派以应用配置:

sudo reboot

你现在应该能够从物理LAN连接到树莓派,使用$BR_ADDR作为目标地址。

如果在启动过程中等待网络连接时间较长,有时物理接口可能会出现长的“可预测接口名称”,例如“enb827eb0d4176”,有时只是“eth0”,这取决于Raspbian版本。如果出现这种情况,请连接键盘和显示器,并检查/etc/systemd/network/25-bridge-br0-en.network以匹配接口名称。

步骤5:配置ZeroTier网络

前往my.zerotier.com/network/$NETWORK_ID,然后在“设置” -> “Advanced”中进行以下配置:

  • 删除默认的Managed Route,添加新的Managed Route $ZT_ROUTE
  • 将IPv4自动分配更改为Advanced,
  • 删除现有的Pool,创建新的Pool,其范围从$ZT_POOL开始和结束。

为了文档记录,将$BR_ADDR分配给ZeroTier桥接成员。

结论

至此,你已经成功创建了一个树莓派桥接设备,用于将ZeroTier虚拟网络和物理网络连接起来。你可以从物理LAN连接到树莓派,并通过它访问ZeroTier网络中的设备。

如果一切正常,你应该能够在一分钟后通过$BR_ADDR重新使用SSH连接到树莓派。如果有任何问题,树莓派不再在网络上,你需要使用键盘和显示器来查找问题。

希望这个教程能够帮助你成功创建一个ZeroTier和本地网络之间的桥接,以便更轻松地管理和访问你的设备。

本文由作者 王大神 原创发布于 大神网的AI博客。

转载请注明作者:王大神

原文出处:使用树莓派在ZeroTier和本地网络之间创建桥接

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 2023年12月17日
下一篇 2023年12月17日

相关推荐

  • ZeroTier网络故障排除指南:无法Ping通解决方法

    你是否曾经遇到过这样的情况?你已经按照ZeroTier的入门指南配置好了网络,但却无法通过Ping命令与网络上的设备进行通信。这个问题可能会让你感到困惑,但不用担心,本教程将为你提供解决方案,帮助你排除无法Ping…

    2023年12月17日
    00
  • ZeroTier路由器配置技巧:优化网络连接

    ZeroTier被设计用于在尽可能多的环境中工作。我们提供多层备用方案,以确保即使在最受限制或故障的物理网络下,也能实现某种程度的连接性。但是,“某种程度的连接性”并不意味着“最佳连接性”。本页面将详细介绍我们…

    2023年12月17日
    00
  • 解决 Android 手机无法在学校热点中通过设备名访问 Windows 11 电脑的问题

    在数字化时代,我们经常依赖于无线网络来连接各种设备,以便高效地工作和学习。然而,有时候会遇到一些令人头疼的问题,比如在学校热点下,Android手机无法通过设备名访问Windows 11电脑。这个问题可能会让人感到非…

    2023年4月7日
    00
  • Ubuntu Zerotier自启动安装教程

    在使用Ubuntu操作系统时,有时我们需要在系统启动时自动运行特定的应用程序或服务。本教程将向您介绍如何在Ubuntu上安装Zerotier,并配置它在系统启动时自动运行。Zerotier是一款用于创建虚拟局域网络的工具,它可…

    2023年12月14日
    00
  • ZeroTier命令行界面(zerotier-cli):网络管理与配置

    ZeroTier是一个强大的网络虚拟化工具,它可以帮助你轻松管理和配置虚拟网络。虽然在Mac和Windows平台上有图形界面,但在所有平台上都可以使用zerotier-cli命令行界面来执行各种任务,包括加入和离开网络以及检查zer…

    2023年12月17日
    00
  • 如何选择适合远程办公的小型计算设备

    远程办公已经成为了现代工作生活中的一部分,尤其是对于像我这样的自由职业者。在进行远程办公时,选择一台小型计算设备成为瘦客户端是至关重要的,它可以帮助我们连接到云主机,进行工作和运维任务。在本文中,我…

    2023年11月7日
    00
  • ZeroTier网络退出指南:轻松离开网络

    在使用ZeroTier建立网络连接的过程中,有时你可能需要离开一个网络,不再与该网络上的设备通信。本教程将向你介绍如何轻松离开ZeroTier网络,以满足你的网络管理需求。 退出网络的步骤 在macOS和Windows上退出网络 …

    2023年12月17日
    00
  • 邻居家的wifi密码

    在X市的家里过年期间,我躺在床上,突然被一段童年回忆所打动。那是一个无忧无虑的时光,我回想起小时候曾经用妈妈的笔记本电脑,尝试着破解邻居的WIFI密码,这个经历让我感慨万千。 技术的初试牛刀 当时,我还是一…

    2023年2月4日
    00
  • 远程访问工作室服务器的完美指南:中秋节也能保持高效工作

    当节日临近,我们往往会面临一些特殊情况,例如需要远程连接到办公室的服务器或工作站。这可能是因为你需要处理紧急事务,或者只是想在度过节日的同时保持工作的灵活性。无论何种原因,我将在本文中为你介绍一些解…

    2023年9月27日
    00
  • Zerotier 为何优于 Tailscale:比较虚拟局域网解决方案的不同之处

    Zerotier 和 Tailscale 都是目前非常流行的虚拟局域网解决方案,它们都提供了安全、简便的云网络连接服务。然而,这两个解决方案在一些方面存在差异。本文将比较 Zerotier 和 Tailscale 的不同之处,并解释 Zerotie…

    2023年4月15日
    00