V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Huelse
V2EX  ›  问与答

请问 3 台主机用 wireguard 怎么组成内网?

  •  
  •   Huelse · 2021-01-22 10:36:11 +08:00 · 809 次点击
    这是一个创建于 1433 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我想要 3 台主机组成内网,wg0.conf 分别配置如下:

    公网主机(假设 ip 1.2.3.4):

    [Interface]
    Address = 192.168.100.1/24
    ListenPort = 12345
    PrivateKey = abc
    
    # Win 笔记本
    [Peer]
    PublicKey = t++
    AllowedIPs = 192.168.100.2/32
    
    # unraid
    [Peer]
    PublicKey = eEm
    AllowedIPs = 192.168.100.3/32
    

    Win 笔记本:

    [Interface]
    PrivateKey = cba
    Address = 192.168.100.2/32
    
    [Peer]
    PublicKey = F2H
    AllowedIPs = 192.168.100.0/24
    Endpoint = 1.2.3.4:12345
    

    unraid:

    [Interface]
    PrivateKey=bac
    Address=192.168.100.3/32
    # 下面是自动生成的
    ListenPort=51820
    PostUp=logger -t wireguard 'Tunnel WireGuard-wg0 started'
    PostUp=iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o br0 -j MASQUERADE
    PostDown=logger -t wireguard 'Tunnel WireGuard-wg0 stopped'
    PostDown=iptables -t nat -D POSTROUTING -s 192.168.100.0/24 -o br0 -j MASQUERADE
    
    [Peer]
    #unraid
    PublicKey=F2H
    Endpoint=1.2.3.4:12345
    AllowedIPs=192.168.100.0/24
    

    最终效果是我的笔记本能 Ping 通公网主机内的服务,端口访问都可以等,另一边 unraid 的也可以 ping 通公网主机( ping 192.168.100.1 ),key 等隐私信息已简化。

    但最主要的笔记本访问 unraid 却始终不行(例如笔记本上 ping 192.168.100.3),请教下各位怎么操作,谢谢!

    jasonyang9
        1
    jasonyang9  
       2021-01-22 16:38:33 +08:00
    3 个节点上的`wg`输出贴一下,最好带各自的防火墙信息。

    `unraid`上用`iptables`做了 SNAT,但没有允许转发,比较奇怪。它需要转发和做 MASQ 么?

    除此之外没有明显的问题。

    你想用 WG 的虚拟网络地址,192.168.100.3 来访问`unraid`上的服务么?
    Huelse
        2
    Huelse  
    OP
       2021-01-22 17:04:12 +08:00
    @jasonyang9 #1
    是的,比如 http://192.168.100.3:12345,两者都能 ping 通公网主机,但相互有时不能 ping,会出故障
    win10: https://sm.ms/image/pPm9GXgTQ4FKU8R
    unraid: https://sm.ms/image/ZOziFlunQVqvb4R
    server: https://sm.ms/image/eWDKx6UMmybSjOd
    server 的 iptables 就这样:
    ```
    ACCEPT tcp -- anywhere anywhere tcp dpt:43155
    ACCEPT udp -- anywhere anywhere udp dpt:43155
    ```
    server 和 unraid 都有设置`net.ipv4.ip_forward=1`,可能是 iptables 的配置问题?
    jasonyang9
        3
    jasonyang9  
       2021-01-22 17:31:32 +08:00
    有点奇怪,`server`为什么是连到`unraid`的 51820 的,`unraid`的 ListenPort=51820 去掉试试。
    另外从`server`上看到 latest handshake 是 4 天前的,最近没连上。

    `win10`和`unraid`上都加一个保活的选项试试。

    其它没仔细看。
    Huelse
        4
    Huelse  
    OP
       2021-01-22 18:09:03 +08:00
    @jasonyang9 #3 盲猜需要在 unraid 和我的电脑上都加上对方的 peer,我先试试看
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2787 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:27 · PVG 08:27 · LAX 16:27 · JFK 19:27
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.