V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ixdeal
V2EX  ›  宽带症候群

wireguard 组网请教

  •  
  •   ixdeal · 2023-10-10 09:41:42 +08:00 · 2493 次点击
    这是一个创建于 400 天前的主题,其中的信息可能已经有所发展或是发生改变。

    各局域网随便找了台机器装了 wireguard,请教如何设置能解决这个问题:局域网可以互相访问其它局域网资源。

    是否能够设置个中心 wireguard 节点,新加入的局域网就可以通过加入该中心节点,然后访问其它节点资源,其它节点也可以访问该新节点?

    19 条回复    2023-10-16 12:54:26 +08:00
    ghostwwg
        1
    ghostwwg  
       2023-10-10 09:47:55 +08:00   ❤️ 1
    各节点宣告自己要转的路由网段,各局域网网关做静态路由,比如点 A(192.168.22.0/24) wg ( 192.168.22.250 ) 自己宣告网段 192.168.22.0/24 点 B (192.168.23.0/24)网关需要加静态路由 目的 192.168.22.0/24 下一条是点 B wg (192.168.23.250)
    wacke
        2
    wacke  
       2023-10-10 09:48:56 +08:00   ❤️ 1
    个人建议是直接在各局域网的主路由上建立端到端的网状 wg 链路。。。。这样所有局域网都可直连互访
    ghostwwg
        3
    ghostwwg  
       2023-10-10 09:50:19 +08:00
    @ghostwwg 读了遍 好像有点乱。。 就 2 步:1.wg 宣告自己本地网段 ; 2.局域网网关加静态路由,访问其它局域网走自己的 wg
    dude4
        4
    dude4  
       2023-10-10 11:16:59 +08:00
    WG 本身设计时没有所谓服务端客户端的概念, 就是 peer 对 peer ,所以你要实现需求最简单的方法就像 2 楼说的,需要 peer 在构建 WG 之前本身就是该网段的网关,譬如 peer A 和 B ,需要分别是各自网段的网关,这样 A 和 B 通过 WG 连接后,其他连接到 A 的客户端就能自动访问对面 peer B 的局域网资源了
    Archeb
        5
    Archeb  
       2023-10-10 11:20:19 +08:00   ❤️ 1
    这个需求用 netbird 或者 tailscale 比较简单……可以 peer to peer ,也可以自建一个连接性好的 DERP 服务器做中继。
    ixdeal
        6
    ixdeal  
    OP
       2023-10-10 12:38:35 +08:00
    @Archeb #5 是啊,一直想考虑 tailscale/headscale, 但是 wg 速度太快了。
    ixdeal
        7
    ixdeal  
    OP
       2023-10-10 12:40:11 +08:00
    @ghostwwg #1 请问有具体的教程吗?
    dacapoday
        8
    dacapoday  
       2023-10-10 13:21:01 +08:00
    @ixdeal tailscale/headscale 的底层就是 wireguard 呀
    dacapoday
        9
    dacapoday  
       2023-10-10 13:24:23 +08:00
    @ixdeal 而且 tailscale 的 wireguard 实现,比内核中的还要快: https://tailscale.com/blog/more-throughput/
    即使介意商业公司的产品,用 headscale 也能实现完全的自主控制,自己手动管理 wireguard 配置和组网没有意义了。
    Jimmyisme
        10
    Jimmyisme  
       2023-10-10 13:27:04 +08:00
    wireguard 实际上就是一条网线。你如果每个局域网都连起来就是去中心化。如果都连到一台主机,再转发,那就是中心化的。
    Jimmyisme
        11
    Jimmyisme  
       2023-10-10 13:31:03 +08:00
    ixdeal
        12
    ixdeal  
    OP
       2023-10-10 13:51:42 +08:00
    @dacapoday #9 所以用 Headscale 的也可以用 wg 拨入?
    dacapoday
        13
    dacapoday  
       2023-10-10 14:06:56 +08:00
    @ixdeal 仅理论可行,tailscale 托管了 公钥交换 和 地址分配,没有暴露接口去手动添加一个节点的 公钥和 地址段。
    mantouboji
        14
    mantouboji  
       2023-10-10 16:48:48 +08:00
    这个很简单,建议搜索一下 wireguard 里面 allowedIPs 的介绍就知道了。

    有个要点:这些局域网的 IP 网段不能相同,比如不能都是 192.168.0.0/24 ,一定要这个是 192.168.1 ,那个是 192.168.2… 然后你把 wireguard 自己的网段用另外一个,比如就是 192.168.0 好了。
    rrfeng
        15
    rrfeng  
       2023-10-10 16:56:45 +08:00
    其实我也有个疑问:

    A - B - C
    这样连

    A:allowIPs = B ,C
    B:allowIPs = A ,C
    C:allowIPs= A ,B


    如果 A 访问 C ,那么 B 默认会转发吗?是从 B 的 tun 里出来之后,重新路由回到了 tun 里?要额外加解密一次?
    HawkinsSherpherd
        16
    HawkinsSherpherd  
       2023-10-10 17:25:59 +08:00
    给每对连接配置一个独立的 Wireguard 接口,这样每对连接都能有重叠的 AllowedIPs 了。
    在每个 Wireguard 配置里加上 Table=off ,这样 AllowedIPs 里面的内容就不会影响路由表。
    每台机器上装个 frr ,打开路由转发,配上 ospf ,把局域网里有的网段塞进去,就全网通了。
    GoldenSheep
        18
    GoldenSheep  
       2023-10-10 19:45:13 +08:00
    wireguard+bird+BGP 看看我们的成果 https://status.dn11.top/
    ixdeal
        19
    ixdeal  
    OP
       2023-10-16 12:54:26 +08:00
    @GoldenSheep #18 牛逼,这个可视化做的很好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5469 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 74ms · UTC 07:01 · PVG 15:01 · LAX 23:01 · JFK 02:01
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.