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

关于 WireGuard 连接的问题

  •  
  •   UserName99 · 194 天前 · 2705 次点击
    这是一个创建于 194 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在树莓派上搭了个 WireGuard Server ,在其他地方用两个电脑连接时,第一个可以正常连接,第二个只有少量发送流量,没有接收流量。配置如下:

    WireGuard Server
    --------------------------------
    [Interface]
    PrivateKey = xxxxxx
    Address = 10.8.0.1/24
    ListenPort = xxxx
    SaveConfig = true

    PostUp = ufw route allow in on wg0 out on wlan0
    PostUp = iptables -t nat -I POSTROUTING -o wlan0 -j MASQUERADE
    PostUp = ip6tables -t nat -I POSTROUTING -o wlan0 -j MASQUERADE
    PreDown = ufw route delete allow in on wg0 out on wlan0
    PreDown = iptables -t nat -D POSTROUTING -o wlan0 -j MASQUERADE
    PreDown = ip6tables -t nat -D POSTROUTING -o wlan0 -j MASQUERADE

    client1
    ---------------------------
    [Interface]
    PrivateKey = xxxxxx
    Address = 10.8.0.2/24
    DNS = 114.114.114.114

    [Peer]
    PublicKey = [Server PublicKey]
    AllowedIPs = 0.0.0.0/0
    Endpoint = example.com:xxxx

    client2
    -----------------------------
    [Interface]
    PrivateKey = xxxxxx
    Address = 10.8.0.3/24
    DNS = 114.114.114.114

    [Peer]
    PublicKey = [Server PublicKey]
    AllowedIPs = 0.0.0.0/0
    Endpoint = example.com:xxxx


    两个客户端都是 Mac App Store 下载的官方客户端,client1 连接后发送接收流量都有,可以正常上网,client2 连接后只有少量发送流量,没有接收流量,不能上网。然后又在 Windows 上用官方客户端试了一下,同样只有少量发送流量,没有接收流量。配置都是一样的格式,为什么只有一个能正常连接。
    23 条回复    2023-10-26 01:53:50 +08:00
    stinkytofu
        1
    stinkytofu  
       194 天前
    我一直都配不好 WireGuard , 真的太累了, 我就想在两个局域网各运行一个 client, 然后两边的局域网内设备全部互通, 一直都搞不定, 心累
    ysc3839
        2
    ysc3839  
       194 天前 via Android
    Server 那里没配置 Peer ?
    另外建议防火墙换 firewalld ,把 wg0 接口添加到 trusted zone ,然后 public zone --add-masquerade 就能 NAT 转发了。
    kljsandjb
        3
    kljsandjb  
       194 天前 via Android
    @stinkytofu 确实上手性比不上 open vpn
    wuruxu
        4
    wuruxu  
       194 天前
    不能用的这个机器 换个 KEY ,重新试下
    chenall
        5
    chenall  
       194 天前 via Android
    wiregurard 每台机器都必须要用一个唯一的 PrivateKey ,不能像 open VPN 一样共用。
    Quarter
        6
    Quarter  
       194 天前 via Android
    推荐用个 docker 面板一键部署,比较省事
    zhcode
        7
    zhcode  
       194 天前
    我也配不好,所以我用 wg-easy ,有 webui ,简单方便
    hahaha121
        8
    hahaha121  
       194 天前
    WireGuard Server 端相应的 peer 要配置 AllowedIPs,client 本身不需要添加
    hahaha121
        9
    hahaha121  
       194 天前
    @stinkytofu WireGuard Server 端相应的 peer 要配置 AllowedIPs,client 本身不需要添加 我用的是 wg-easy 就是这个问题搞了好久
    mcluyu
        10
    mcluyu  
       194 天前
    client2
    -----------------------------
    [Interface]
    PrivateKey = xxxxxx
    Address = 10.8.0.3/24
    DNS = 114.114.114.114


    超过一个 client 后, 地址不能是 /24, 10.8.0.3/32 应该就没问题了, 当初我折腾了好久不管怎么搞都是只有一个能连上
    lifekevin
        11
    lifekevin  
       194 天前
    我就嫌弃自己写配置麻烦,搞了个 wg-gen-web ( GitHub 上有,docker 部署),就简单多了。
    helllkz
        12
    helllkz  
       194 天前
    WG 是真的难赔,不是说技术多难,而是繁琐,一个 peer 一个配置文件,还要记清楚,所以我现在用 tailscale 了,总归好一些,OpenVPN 也可以,前提得有公网 IP
    xiamy1314
        13
    xiamy1314  
       194 天前
    还行,就是会不小心弄乱。。
    Getting
        14
    Getting  
       194 天前
    感觉还是 zerotier 比较简单
    lovelylain
        15
    lovelylain  
       194 天前
    @stinkytofu 两边都是 openwrt 的话,还是挺容易的,在网络里配置 wireguard 类型的接口就行。因为很多服务都通过 docker 运行的,所以我之前也试图通过 docker 跑 wireguard ,一看镜像和配置,觉得复杂劝退,后来直接在 openwrt 本身的页面上配置,简单的一逼,有了这个基础再去手机上配置,也很容易。
    ixdeal
        16
    ixdeal  
       194 天前
    @lifekevin #11 是国内不过墙还是过墙用?
    vmebeh
        17
    vmebeh  
       194 天前 via iPhone
    跟着文档过一遍就熟悉了
    不看文档试错确实难
    DataSheep
        18
    DataSheep  
       194 天前 via iPhone
    树莓派的话可以装个 pivpn ,一键式配 wg ,用了一两年了
    mantouboji
        19
    mantouboji  
       194 天前   ❤️ 3
    你们这些人,想要别人帮忙,却不提供完整的信息,拿别人当猴耍。独生子女吧?

    你为什么不把 server 端的配置文件贴完整?

    我估计,你的问题在于 server 端的配置,给每一个 peer 的地址写成了 10.8.0.x/24, 而不是/32. 这样所有的流量都跑去第一个 peer ,其他 peer 当然收不到。
    SoFarSoGood
        20
    SoFarSoGood  
       194 天前
    mtu 和 mss 要修改成合适的值, 还有修改握手间隔更小些
    UserName99
        21
    UserName99  
    OP
       189 天前
    发现两个问题
    1. WireGuard Server 修改配置文件时有个坑,WireGuard Server 运行--修改配置文件--重启服务,刚才修改的配置文件会消失,导致 peer 没有添加上,WireGuard Server 运行--关闭服务--修改配置文件--启动服务,这样才能修改成功。
    2. 按 10 楼说的 Address 里 IPv4 改成/32 ,IPv6 改成/128

    改完这两个问题后,第一个和第二个客户端可以正常连接了,但是第三个客户端还是有问题,一直显示连接中
    ixdeal
        22
    ixdeal  
       188 天前
    @UserName99 #21 我也遇到了这个问题,第二个客户端我改为/32 还是不行。
    cloudsong
        23
    cloudsong  
       184 天前 via iPhone
    allowedips 只能有一个是 0.0.0.0
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2830 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 07:21 · PVG 15:21 · LAX 00:21 · JFK 03:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.