关于 WireGuard 异地组网的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TashinV
V2EX    宽带症候群

关于 WireGuard 异地组网的问题

  •  
  •   TashinV
    PRO
    2024-10-11 17:09:28 +08:00 3202 次点击
    这是一个创建于 432 天前的主题,其中的信息可能已经有所发展或是发生改变。
    确认了网络设备之后开始研究异地组网的问题。
    目前情况是:
    有 3 处地方需要组网,暂且用 A 、B 、C 3 个字母替代吧。
    A 地是家里,电信 1000MB 宽带,有 ipv4 公网,路由器支持 WireGuard ;
    B 地是家里,电信 300MB 宽带,暂时没有公网,路由器支持 WireGuard ;
    C 地是办公室,电信宽带,带宽不明,确认无公网,计划用一台 NUC 装 WireGuard 。

    目前是把 A 、B 、C 3 地组成局域网,当人在外地出差的时候可以方便连回任意一个地点。除此之外,希望 3 地能够实现互通:
    1. 移动设备与 2 个家庭局域网互联
    2. 移动设备与公司局域网互联
    3. 2 个家庭局域网都与公司局域网互联
    4. 公司局域网与 2 个家庭局域网互联
    5. 2 个家庭之间能够局域网互联

    想请问大佬们:
    1. 这个需求 WireGuard 可以做到吗?
    2. 如果 WireGuard 可以做到的话,是否可以不需要外界的有公网的主机?因为我看很多教程都是通过阿里等提供公网的主机来中继的,这样速度会有瓶颈,所以不想要这种方式。


    感谢各位指点迷津的大佬!
    第 1 条附言    2024-10-12 00:29:43 +08:00
    忘记说了,使用情况也就是同步和获取一些文档,偶尔出差时可能会有观看流媒体需求。
    此外,A 家庭可以使用域名+DDNS 的。这样的话,用 A 做中继,监控 wg 链接(或者说公网 IP 变化)这个该怎么操作?我看好像有办法可以推送到微信,但是问题是公网 IP 变化之后,我 3 个地方的 wg 链接和配置是不是需要重新设置?
    第 2 条附言    2024-10-12 00:30:17 +08:00
    公网 IP 变化之后,我移动设备上的链接和配置是不是也需要重新设置?
    28 条回复    2024-10-17 20:12:48 +08:00
    Drool
        1
    Drool  
       2024-10-11 17:19:30 +08:00   1
    我是直接用 zeroTier 打通成都家里和江苏家里,成都联通有公网,江苏电信 NAT1 ,打洞能成功的话应该不需要中转了
    IvanLi127
        2
    IvanLi127  
       2024-10-11 17:30:14 +08:00   1
    没固定公网 ip 的话,想做到比较麻烦。正常来说通过 A 的公网 ip 做中继就能实现,就是变化时比较麻烦。

    不想加公网服务器还是 zerotier 或者 tailscale 吧,至少方便点
    RinGress
        3
    RinGress  
       2024-10-11 17:30:39 +08:00   1
    看看 BC 之间能不能打洞吧。不行可能要用 A 当中转
    RinGress
        4
    RinGress  
       2024-10-11 17:31:46 +08:00   1
    @IvanLi127 动态 IP 倒是可以用域名+DDNS ,不过可能要弄个监控重启的机制啥的
    bobryjosin
        5
    bobryjosin  
       2024-10-11 17:31:48 +08:00   1
    A 作为中心节点就行了,BC 全部连到 A ,三台设备起 ospf 三层就通,移动设备连到 A 就行了,缺点就是带宽受制于 A 。
    aichunya
        6
    aichunya  
       2024-10-11 17:31:57 +08:00   1
    没有问题,我现在就是你这种网络环境,你把有公网的那个当做中继就行了
    zbinlin
        7
    zbinlin  
       2024-10-11 17:37:58 +08:00   1
    既然 A 有 1000M ,可以拿 A 作为 Server 节点,其他地直接连 A
    bjfane
        8
    bjfane  
    PRO
       2024-10-11 17:55:58 +08:00   1
    楼上说的都没问题,但是都是大佬说的,太简要了,
    实施步骤 1 、移动流量(不在 abc 局域网),能访问 A 以及 A 背后的所有设备,目的看看怎么配置才能访问 A 的局域网的其他设备。
    步骤 2 、检测 B C 能不能直接通,这个对体验非常重要,就是有没有 A 中转,
    步骤 3 、A 和 B 双边设备都能访问对面局域网设备,且移动流量能访问 A 和 B 任意设备

    有了以上 wg 的配置基础,C 怎么加入就好办了。

    核心就是 allowips 怎么填、peer 地址是什么,和 wg 上的一层 NAT
    bjfane
        9
    bjfane  
    PRO
       2024-10-11 17:57:35 +08:00   1
    另外你的 A 的机器至少完全可以当云厂商的功能,肯定不需要公网云, 轻度同步从 A 过一下 也不是不行,现在一般都是 30 ~ 50M 的上行了,完全没问题。
    Int100
        10
    Int100  
       2024-10-11 18:01:39 +08:00 via iPhone   1
    可以做到,wireguard 单纯起 p2p 隧道,allowip 全部放行,路由交给动态路由协议来生成,rip ospf 这些,三层组网。
    orionl
        11
    orionl  
       2024-10-11 18:02:53 +08:00   1
    A 用 WireGuard 做 server ,配置成站点到站点。其他的做 client ,导出 A 的客户端配置上传即可。
    Ipsum
        12
    Ipsum  
       2024-10-11 19:40:33 +08:00  
    组成网状结构,A 当中心节点。
    git00ll
        13
    git00ll  
       2024-10-11 19:46:59 +08:00   1
    用 zeroTier 打洞试试,A 有公网无论用啥工具组网肯定没问题,试试说不定 BC 能直接打洞这样就不用麻烦 A 做中转了
    SenLief
        14
    SenLief  
       2024-10-11 20:17:54 +08:00   1
    楼上有说用 zerotier 或者 tailscale 打洞,这两种打洞方式都是需要 NAT1 的,要不然一样需要走中继,最容易的还是 ipv6 ,wg 也用 ipv6
    dalaoshu25
        15
    dalaoshu25  
       2024-10-11 21:02:04 +08:00   1
    超简单。

    A 就做中心节点,配置好 DDNS 即可。
    B 和 C 都是 peer ,连接到 A 。当然这样做 BC 之间访问要经过 A ,无所谓了。

    需要确认的是,B 的路由器是什么,有没有运行脚本检测 wg 链接是否接通的能力,否则 A 一旦断线换新 IP 后 B 和 C 都会断线,需要重新建立 wg 链接。
    IvanLi127
        16
    IvanLi127  
       2024-10-12 00:40:33 +08:00   1
    回附言,即使是用 DDNS ,变化后至少得主动断开重连。B 和 C 得自动话处理这个事,不然变了你就失去从 A 连 BC 的机会了。
    dalaoshu25
        17
    dalaoshu25  
       2024-10-12 11:02:32 +08:00   1
    A 设置好 DDNS ,具体怎样看你的路由器是什么了,把自己的公网 IPv4 和 v6 都设给 ddns 的动态域名,比如我用 dynv6

    B 和 C 的设置文件里,A 的 Endpoint 写动态域名和端口。

    B 和 C 如果是个服务器,可以写脚本定时去 ping 节点 A 的 wg 地址,如果 Ping 不通就重新建立 wg 连接。因为 wg 仅仅在建立连接的时候查询域名,之后在内核里就只有 IP 地址了。

    有现成的例子可供参考 /usr/share/doc/wireguard-tools/examples/reresolve-dns
    TashinV
        18
    TashinV  
    OP
    PRO
       2024-10-12 11:31:33 +08:00 via iPhone
    @linzyjx
    请问下这个监控重启机制该怎么弄呢?有没有教程?

    @aichunya
    请问下您在公网 IP 变化的问题是怎么解决的呢?

    @bjfane
    请问下在公网 IP 变化的问题是怎么解决的呢?
    TashinV
        19
    TashinV  
    OP
    PRO
       2024-10-12 11:36:05 +08:00 via iPhone
    @IvanLi127
    #16 A 路由准备用 UDM SE ,B 路由目前是 AC68U ,必要的话 B 路由可以更换。
    目前这个情况 B 、C 需要能自动检测并重启连接,请问这个该怎么做到呢?

    @dalaoshu25
    #29 B 是路由,AC68U ,必要的话可以更换。C 地就是一台连接公司网络的 Windows 电脑。这样的情况该怎么解决公网 IP 变化的问题呢?
    bjfane
        20
    bjfane  
    PRO
       2024-10-12 11:37:40 +08:00
    DDNS 啊, 我看你的方案里不是有 《域名+DDNS 》这个么,你先找个域名和 ddns 装起来,配置好,然后重启 A 的拨号节点等更新,感受一下就知道了 :),这块是非常简单的, 比如 ddns-go ,搜这个项目
    dalaoshu25
        21
    dalaoshu25  
       2024-10-12 12:39:47 +08:00
    俺们乡下人只会折腾 RouterOS 和 Linux ,你说的这两个路由器和你用的 Windows 俺都不知道是什么东西,只能帮你到这里了。
    aichunya
        22
    aichunya  
       2024-10-12 13:57:59 +08:00
    @TashinV #18 DDNS,加我做的笔记
    liuxyon
        23
    liuxyon  
       2024-10-12 14:25:51 +08:00
    我也许可以提供技术帮助.
    que01
        24
    que01  
       2024-10-12 14:28:12 +08:00
    不管你们多会玩 我用 zeroTier 。。。就这个省事不要钱。。。
    sxml2015
        26
    sxml2015  
       2024-10-15 20:26:19 +08:00 via Android
    */10 * * * * /usr/bin/wireguard_watchdog
    openwrt 有自带这个 wireguard_watchdog 我用 GPT 修改监控指定公匙 断了就重启 WG 接口

    A 主路由 做服务器 有公网+DDNS
    B 旁路由 对端
    C 手机 对端 可以访问 A B
    A B 可以互访 以及访问 NAS

    搞了几天要吐血 不知道哪里问题 断了重启 op 都没用 放弃了 手机太难握手
    zerotier 简单方便 但在外远程看 nas 视频卡顿 WG 就顺畅

    哪位大佬长期使用 WG 手机好握手吗?
    huaxie1988
        27
    huaxie1988  
       2024-10-17 14:25:20 +08:00 via Android
    @sxml2015 wg 手机没问题,手机用 ipv6ddns 连接家里路由器。
    sxml2015
        28
    sxml2015  
       2024-10-17 20:12:48 +08:00 via Android
    @huaxie1988 瞎折腾几天没注意 passwall 导致手机接收不了数据包 UDP 不转发 WG 端口解决了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     926 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 22:07 PVG 06:07 LAX 14:07 JFK 17:07
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86