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

iOS WireGuard 客户端连接不上服务器?

  •  
  •   DopaminePlz · 2023-05-01 14:55:29 +08:00 · 2664 次点击
    这是一个创建于 601 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,同样的配置,在 Android 上可以连接家里的 WG 服务器,可是在 iPad/iPhone 死活连接不上。iOS 上的日志为:

    2023-05-01 14:47:48.956783: [NET] peer(***…***) - Handshake did not complete after 5 seconds, retrying (try 2)
    2023-05-01 14:47:48.958434: [NET] peer(***…***) - Sending handshake initiation
    2023-05-01 14:47:48.965840: [NET] peer(***…***) - Failed to send handshake initiation: write udp4 0.0.0.0:59076->114.114.114.114:13800: sendto: network is unreachable
    

    在服务器上 tcpdump 没有输出。

    请问各位在 iOS 上,用 WG 官方客户端连接 WG 服务器的情况如何?

    第 1 条附言  ·  2023-05-01 16:08:40 +08:00
    抱歉,在日记里,我把宽带获得的 IP ( 116 开头)改成 114.114.114.114 了,没有在帖子里说明。
    第 2 条附言  ·  2023-05-01 16:20:22 +08:00

    服务器配置:

    [Interface]
    PrivateKey = QJ*HGE=
    Address = 10.5.0.1/16,fda5::1/64
    ListenPort = 1380
    PostUp = logger -t wireguard 'Tunnel WireGuard wgs0 started'
    PostUp = rm -rf /etc/resolvconf/run
    /etc/wireguard/helper/add-fw-rules.sh
    PostDown = logger -t wireguard 'Tunnel WireGuard wgs0 stopped'
    /etc/wireguard/helper/del-fw-rules.sh
    DNS = 10.5.0.1,fda5::1
    MTU = 1412
    
    
    [Peer]
    PublicKey = AQ*g=
    AllowedIPs = 10.5.10.7/32,fda5::1007/128
    

    客户端配置:

    [Interface]
    PrivateKey = 0P*0=
    Address = 10.5.10.7/16,fda5::1007/64
    DNS = 10.5.0.1,fda5::1
    MTU = 1420
    
    [Peer]
    PublicKey = Zc*s=
    AllowedIPs = 0.0.0.0/1, 128.0.0.0/1, ::/1, 8000::/1
    Endpoint = example.com:1380
    PersistentKeepalive = 25
    

    另外,客户端MTU改成1412或1420,在ANDROID上都可以连上。

    第 3 条附言  ·  2023-05-01 16:45:53 +08:00
    客户端端口是 13800 ,在 iOS 上修改的,配置文件没有改过来。在主路由上配置了端口映射,13800-->1380 。
    9 条回复    2023-05-03 12:15:53 +08:00
    billlee
        1
    billlee  
       2023-05-01 15:48:02 +08:00
    114.114.114.114 这个 IP 就不对吧?
    MrGba2z
        2
    MrGba2z  
       2023-05-01 15:51:58 +08:00
    建议打半码后发 wireguard 的 interface 和 peer 配置
    MrGba2z
        3
    MrGba2z  
       2023-05-01 15:52:57 +08:00
    你 iOS 上 peer 的 endpoint 地址不对吧?写成了 dns(114)的地址?
    ooxxcc
        4
    ooxxcc  
       2023-05-01 16:33:55 +08:00
    到底是 13800 还是 1380

    你改的东西太多了
    cwbsw
        5
    cwbsw  
       2023-05-01 17:21:18 +08:00
    服务器上抓包都没有记录?该不会是那个 Wi-Fi 权限 BUG 吧。
    还有就是 DNS 解析结果对不对?
    Daeyn
        6
    Daeyn  
       2023-05-01 22:41:56 +08:00 via iPhone
    你这配置吐槽几点
    1 、fda5::1 这个可能冲突
    2 、服务器配置 DNS 的目的是?
    3 、客户端 Allowed IP 应该是 0.0.0.0/0, ::/0
    DopaminePlz
        7
    DopaminePlz  
    OP
       2023-05-02 11:25:03 +08:00
    @Daeyn
    1. fda5::1 是一个 Unique local address, 自己使用不会冲突吧;
    2. 要指定 DNS 服务器,如 1.1.1.1 ,或者用 WG 服务器内网地址( 10.5.0.1,fda5::1 ),否则能连上路由器页面但不能访问因特网;
    3. 按你的提示修改了,可以访问因特网了。但是这些配置不知道为啥 Android 、Windows 可以,就是 iOS 的平板或手机不行。
    Daeyn
        8
    Daeyn  
       2023-05-02 11:43:34 +08:00 via iPhone
    @DopaminePlz
    1 、你可以搜 digitalocean 的 wiregurd 文档如何生成唯一的 unique local address ,因为你这个可能跟 windows 自动配置 local ipv6 的冲突
    2 、指定 dns 服务器在客户端指定
    DopaminePlz
        9
    DopaminePlz  
    OP
       2023-05-03 12:15:53 +08:00 via Android
    @Daeyn
    1. 这个方法应该比较严谨,不过暂时不冲突,懒得搞了
    2. 应该在客户端指定,不过服务器有这句好像也不影响,也懒得修改了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   841 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 21:24 · PVG 05:24 · LAX 13:24 · JFK 16:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.