AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题 / 781140
Accepted
rubund
rubund
Asked: 2024-07-31 17:46:25 +0800 CST2024-07-31 17:46:25 +0800 CST 2024-07-31 17:46:25 +0800 CST

如何使用 Raspberry Pi 和基本以太网交换机建立从 Wifi 到本地以太网的桥接?

  • 772

我想在车库里安装一个以太网交换机,它将提供与主楼相同的 LAN 段的连接。但是,主楼和车库之间没有网线,但车库里有 WiFi 覆盖。

我已经用支持无线桥接模式的 TP-Link Archer A7 路由器实现了我想要的功能。但是我更想用一个简单的 Raspberry Pi 和一个基本的以太网交换机来实现它。

通过使用 GRE TAP 接口/隧道,我几乎能够成功,但它在处理长数据包时会遇到困难(因为一些烦人的 MTU 问题),因此丢失了许多数据包。我也在网上找到了一些使用 NAT 解决这个问题的方法,但这在我的用例中是不可接受的。连接到交换机的设备需要与主楼中的所有其他设备位于同一 LAN 段上。

有人可以提供实现这一目标的最佳方法的答案吗?

wifi
  • 2 2 个回答
  • 40 Views

2 个回答

  • Voted
  1. Marcus Müller
    2024-07-31T18:52:24+08:002024-07-31T18:52:24+08:00

    在 openwrt 上,有一个通过 wifi“桥接器”扩展网络的解决方案。

    它依赖于 openwrt-relayd(注意,还有其他“relayd”软件,因此会造成混乱)。

    但是,如果您的接入点和 RPi 的 wifi 硬件支持它,则根据 802.11s 的 WiFi 网状网络更为可取。使用 检查iw list,查找mesh point“支持的接口模式”。

    • 0
  2. Best Answer
    rubund
    2024-08-01T21:32:03+08:002024-08-01T21:32:03+08:00

    现在我可以使用 OpenVPN TAP 连接来实现这一点。OpenVPN 似乎不会像 GRE TAP 那样遇到 MTU 问题,因为它会自动将长以太网帧分割成多个 UDP 数据包。

    以下方法也依赖于主楼中的一台 Raspberry Pi(或某种可以运行 OpenVPN 的 Linux 机器......)。

    Raspberry Pi 1号(主楼)

    在主楼的 Raspberry Pi 上(物理连接到主以太网端),我修改了 /etc/network/interfaces 以执行以下操作:

    auto eth0
    iface eth0 inet manual
    
    auto br0 
    iface br0 inet static
        address 192.168.1.49   # <-- my static IP of choice
        netmask 255.255.255.0
        gateway 192.168.1.1
        bridge-ports eth0
    

    这确保有一个可用的桥接器来连接 TAP 接口。

    在 RPi 1 上,我还创建了以下 OpenVPN 配置文件。

    dev tap0
    port 9123
    proto udp   
    keepalive 10 120
    script-security 2
    up /etc/openvpn/up_tap0.sh
    

    (我显示没有配置加密以节省空间。这对我来说也不是什么大问题,因为它只在本地网络上运行。没有加密也有助于提高速度)。

    openvpn 启动时运行的 up_tap0.sh 脚本只是将 tap0 接口连接到网桥:

    #!/bin/sh
    brctl addif br0 tap0
    ip link set dev tap0 up
    

    Raspberry Pi 2 号(车库)

    在第二台 Raspberry Pi 上(在车库中),我首先确保它已连接到 Wifi 网络(使用 NetworkManager 或 /etc/network/interfaces)。然后我创建了这个 OpenVPN 配置:

    remote 192.168.1.49  # <- pointing to server
    port 9123
    dev tap0
    proto udp
    keepalive 10 120
    persist-tun
    script-security 2
    up /etc/openvpn/up_tap0.sh
    

    RPi2 上的脚本 up_tap0.sh 包含以下内容:

    #!/bin/bash
    brctl addbr br0
    brctl addif br0 tap0
    brctl addif br0 eth0
    ip link set dev tap0 up
    ip link set dev eth0 up
    ip link set dev br0 up
    

    在 RPi1 和 RPi2 上启动 OpenVPN,并将交换机和计算机连接到车库中 RPi2 的可用以太网端口后,我能够通过 DHCP 获取 IP 地址!:) 并且它似乎运行得很好。另一台计算机现在显示为该网络上的任何其他设备。

    • 0

相关问题

  • 如何找出 nmcli 中缺少的插件?

  • /proc/net/wireless 如何是 /proc/net/dev 的“克隆”?

  • iwlist 质量和信号格式不一致?

  • 在 Gentoo 上,如何在不运行 NetworkManager 守护程序的情况下从命令行连接到 WiFi?

  • 哪些 802.11ac(或更高版本)WiFi 加密狗适用于 Linux 4.13 内核

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve