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

关于 WireGuard 连接的问题

  •  
  •   UserName99 · 2023-10-16 01:26:25 +08:00 · 4080 次点击
    这是一个创建于 430 天前的主题,其中的信息可能已经有所发展或是发生改变。
    在树莓派上搭了个 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  
       2023-10-16 02:03:27 +08:00
    我一直都配不好 WireGuard , 真的太累了, 我就想在两个局域网各运行一个 client, 然后两边的局域网内设备全部互通, 一直都搞不定, 心累
    ysc3839
        2
    ysc3839  
       2023-10-16 03:02:38 +08:00 via Android
    Server 那里没配置 Peer ?
    另外建议防火墙换 firewalld ,把 wg0 接口添加到 trusted zone ,然后 public zone --add-masquerade 就能 NAT 转发了。
    kljsandjb
        3
    kljsandjb  
       2023-10-16 03:10:48 +08:00 via Android
    @stinkytofu 确实上手性比不上 open vpn
    wuruxu
        4
    wuruxu  
       2023-10-16 07:21:25 +08:00
    不能用的这个机器 换个 KEY ,重新试下
    chenall
        5
    chenall  
       2023-10-16 07:24:37 +08:00 via Android
    wiregurard 每台机器都必须要用一个唯一的 PrivateKey ,不能像 open VPN 一样共用。
    Quarter
        6
    Quarter  
       2023-10-16 07:29:48 +08:00 via Android
    推荐用个 docker 面板一键部署,比较省事
    zhcode
        7
    zhcode  
       2023-10-16 08:50:19 +08:00
    我也配不好,所以我用 wg-easy ,有 webui ,简单方便
    hahaha121
        8
    hahaha121  
       2023-10-16 09:35:47 +08:00
    WireGuard Server 端相应的 peer 要配置 AllowedIPs,client 本身不需要添加
    hahaha121
        9
    hahaha121  
       2023-10-16 09:36:32 +08:00
    @stinkytofu WireGuard Server 端相应的 peer 要配置 AllowedIPs,client 本身不需要添加 我用的是 wg-easy 就是这个问题搞了好久
    mcluyu
        10
    mcluyu  
       2023-10-16 09:37:19 +08:00
    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  
       2023-10-16 09:59:35 +08:00
    我就嫌弃自己写配置麻烦,搞了个 wg-gen-web ( GitHub 上有,docker 部署),就简单多了。
    helllkz
        12
    helllkz  
       2023-10-16 10:23:31 +08:00
    WG 是真的难赔,不是说技术多难,而是繁琐,一个 peer 一个配置文件,还要记清楚,所以我现在用 tailscale 了,总归好一些,OpenVPN 也可以,前提得有公网 IP
    xiamy1314
        13
    xiamy1314  
       2023-10-16 10:49:58 +08:00
    还行,就是会不小心弄乱。。
    Getting
        14
    Getting  
       2023-10-16 10:57:53 +08:00
    感觉还是 zerotier 比较简单
    lovelylain
        15
    lovelylain  
       2023-10-16 12:10:32 +08:00
    @stinkytofu 两边都是 openwrt 的话,还是挺容易的,在网络里配置 wireguard 类型的接口就行。因为很多服务都通过 docker 运行的,所以我之前也试图通过 docker 跑 wireguard ,一看镜像和配置,觉得复杂劝退,后来直接在 openwrt 本身的页面上配置,简单的一逼,有了这个基础再去手机上配置,也很容易。
    ixdeal
        16
    ixdeal  
       2023-10-16 12:43:37 +08:00
    @lifekevin #11 是国内不过墙还是过墙用?
    vmebeh
        17
    vmebeh  
       2023-10-16 12:47:39 +08:00 via iPhone
    跟着文档过一遍就熟悉了
    不看文档试错确实难
    DataSheep
        18
    DataSheep  
       2023-10-16 12:50:48 +08:00 via iPhone
    树莓派的话可以装个 pivpn ,一键式配 wg ,用了一两年了
    mantouboji
        19
    mantouboji  
       2023-10-16 13:29:01 +08:00   ❤️ 3
    你们这些人,想要别人帮忙,却不提供完整的信息,拿别人当猴耍。独生子女吧?

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

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

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