xlsepiphone
V2EX  ›  问与答

A、B 区域 Wireguard 异地组网求教

  •  
  •   xlsepiphone · Jun 15, 2023 · 1950 views
    This topic created in 1074 days ago, the information mentioned may be changed or developed.
    A 区域:网关是 192.168.1.1/24 opewnrt ,有公网 ip 。Unraid 位于 NAT 后,192.168.1.99/24 ,在 Unraid 中使用 Docker 运行 Wireguard Easy ,然后用网关的端口转发暴露 Docker Wireguard 的 UDP 端口到公网。


    现在将 A 区域 NAT 后的 Wireguard 当作中转节点,手机虚拟网卡地址 10.0.8.5/24 ,连上隧道后,可以访问 A 区 192.168.1.0/24 子网设备。


    B 区域:网关 192.168.2.1/24 ,无公网 ip 。同样有一台位于 NAT 后的 Unraid ,192.168.2.99/24 ,虚拟网卡地址 10.0.8.11/24 。

    使用 B 中的 Unraid 自带的 VPN 管理器中的 Wireguard 隧道功能配置连接上 A 区的中转服务器后,手机则可以通过 10.0.8.11/24 访问 B 中的 Unraid 。但是无法通过 192.168.2.99 或 192.168.2.1 访问子网设备。

    A 、B 区 Unraid 的 /etc/sysctl.conf 都默认配置了 ip 转发的,即 net.ipv4.ip_forward = 1 。

    现在的问题是,手机连上隧道后,如何访问 192.168.2.0/24 子网的设备?
    Supplement 1  ·  Jun 15, 2023

    跟着Cladue一步一步操作,结果B区域的Unraid被我搞得无法访问了(Web界面操作Unraid的Wireguard配置,手滑了导致allowedIp被重置),只有等过几天回B手动配置才行了。

    目前只好在A区本地PVE虚拟个2.0/24的子网环境来做测试了。。。。

    但是本地我无法再弄个Unraid来测试了,只有先试试虚拟个openwrt来测试。

    Cladue给出的方案如下:

    1. 连接到B区Unraid服务器,并以root用户登录
    2. 运行以下iptables命令添加SNAT规则:
    iptables -t nat -A POSTROUTING -s 10.0.8.11/32 -d 192.168.2.0/24 -j SNAT --to-source 192.168.2.1
    
    1. 在B区Unraid上重启Wireguard虚拟网卡,使设置生效
    wg-quick down wg0 && wg-quick up wg0
    
    1. 手机重新连接Wireguard隧道,尝试ping 192.168.2.1以及192.168.2.0/24子网下其他设备

    2. 192.168.2.1网关接收到从10.0.8.11的请求后,会认为是来自本机,然后正常路由到内网,实现连接。

    结果: 依然无效

    9 replies    2023-06-16 23:33:19 +08:00
    coffeesun
        1
    coffeesun  
       Jun 15, 2023 via Android
    A 区域子设备能访问 B 区子设备么?
    sarices
        2
    sarices  
       Jun 15, 2023
    估计是路由问题吧,直接用 tailscale 组网就比较方便,也是基于 wireguard 的
    ysc3839
        3
    ysc3839  
       Jun 15, 2023 via Android
    A 区域路由表添加 192.168.2.0/24 走 wireguard
    hanguofu
        4
    hanguofu  
       Jun 15, 2023 via Android
    好奇问问: 手机通过 10.0.8.11/24 访问 B 中的 Unraid ,流量是通过 A 区域 NAT 后的 Wireguard 中转节点转发的吗?
    xlsepiphone
        5
    xlsepiphone  
    OP
       Jun 15, 2023
    @coffeesun #1 不可以

    @sarices #2 tailscale 是我之前的方案,觉得速度上没有 wiregurad 丝滑,放弃了,tailscale 就很简单,有 subnet ,可以通过 peer 访问 peer 所处局域网中的其他子网设备。

    @ysc3839 #3 还没试,试不了了。。。


    @hanguofu #4 我也不知道,计算机网络没有好好学,后悔了。
    slowman
        6
    slowman  
       Jun 15, 2023
    看起来是路由表的原因
    coffeesun
        7
    coffeesun  
       Jun 15, 2023
    @xlsepiphone #5 那就是 3 楼说的问题,要在 A 区添加 B 区 ip 段走 wg 中转节点
    shenyuzhi
        8
    shenyuzhi  
       Jun 16, 2023 via iPhone
    site2site 这种模式,不要给 wireguard 分配 ip 地址,没有意义,平白无故增加复杂度。
    flynaj
        9
    flynaj  
       Jun 16, 2023 via Android
    要配置路由表,不会弄得话上 zerotier.
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2726 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 02:15 · PVG 10:15 · LAX 19:15 · JFK 22:15
    ♥ Do have faith in what you're doing.