Wireguard 同时使用多台 iOS/Mac 设备通过 Surge 连接的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
TashinV
V2EX    WireGuard

Wireguard 同时使用多台 iOS/Mac 设备通过 Surge 连接的问题

  •  
  •   TashinV
    PRO
    349 天前 2800 次点击
    这是一个创建于 349 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Surge 在 iOS 和 macOS 上是通用的一份配置文件,该配置文件已经写好了 Wireguard 回家的规则。
    但是我了解到的信息是每个客户端需要创建一组密钥,例如需两台手机、一台电脑进行远程访问,则需要创建三组密钥。
    目前 Surge 配置文件里面只有一组密钥,想请教下大神们,这样的情况如何写 Surge 配置,以达到让三台设备都能回家的目的?
    37 条回复    2024-12-20 20:28:06 +08:00
    Kite6
        1
    Kite6  
       349 天前 via Android   1
    那就写三个配置项?
    zieglar
        2
    zieglar  
       349 天前
    都用 Surge 了怎么不用 Ponte
    TashinV
        3
    TashinV  
    OP
    PRO
       349 天前 via iPhone
    @zieglar
    要考虑 windows 设备
    TashinV
        4
    TashinV  
    OP
    PRO
       349 天前 via iPhone
    @Kite6
    您的意思是写 3 个 surge 的 conf 文件还是在一个 conf 文件内写 3 个 wireguard 的规则?
    Donaldo
        5
    Donaldo  
       349 天前   1
    @TashinV #4 一个 conf 三个 wg 的规则,分别给三台设备用
    TashinV
        6
    TashinV  
    OP
    PRO
       349 天前 via iPhone
    @Donaldo
    写 3 组密钥,共同一个规则( rule )吗?
    dfdd1811
        7
    dfdd1811  
       349 天   1
    很麻烦,我看说要自己写脚本要么就三套配置文件。所以我干脆路由上开个 ss 就得了,不用 wireguard 了
    Danswerme
        8
    Danswerme  
       349 天前   1
    不了解 Surge , 但是我记得 WireGuard 每个设备都有自己的公钥和私钥,需要在自身的 WireGuard 配置文件里配置自己的私钥、其他两台设备的公钥和 Endpoint 。
    Donaldo
        9
    Donaldo  
       348 天前   1
    @TashinV #6 创建一个策略组,把你的三个 WG peers 配置都加入这个策略组中,需要走 WG 的规则都走这个策略组,这个策略组可以在不同的设备上选择不同的 peers 。
    TashinV
        10
    TashinV  
    OP
    PRO
       348 天前 via iPhone
    @Donaldo
    那这样的话会跟我现有的出国的策略和节点选择冲突吗?
    Donaldo
        11
    Donaldo  
       348 天前   1
    @TashinV #10 没有想到为什么会冲突,你配置好什么网段走 WG 就好了吧。难道你这些内网网段还会和你需要出国的规则有重叠么。
    TashinV
        12
    TashinV  
    OP
    PRO
       348 天前 via iPhone
    @Donaldo
    感谢思路,我研究研究。
    TashinV
        13
    TashinV  
    OP
    PRO
       347 天前 via iPhone
    @Donaldo
    有点儿奇怪,surge 设置好策略组之后,iOS 设备可以打通,但是 mac 设备连不上……不知道问题出在哪里哦?
    Donaldo
        14
    Donaldo  
       347 天前   1
    @TashinV #13 描述的有点模糊,连不上的错误是什么?我有一台 Mini 一台 MBP ,也是按照上述思路配置的,目前没啥问题。iOS 我是单独的一套配置,不和电脑设备共享,不过理论上应该没什么区别。
    Donaldo
        15
    Donaldo  
       347 天前   1
    @TashinV #13 不过我这样配置可能会有一个 bug ,就是 Surge 初始化的时候会把所有 Proxy 都握手一遍,也即你三个 Peers 都会被同一台设备连接一次,可能会导致冲突,有时候就要等一会儿才能连接上,但这样非常不优雅,所以我在考虑要把这些配置分开了,建议你也考虑一下。。。

    我不知道你的问题是不是也出现在这里
    TashinV
        16
    TashinV  
    OP
    PRO
       347 天前 via iPhone
    @Donaldo
    我的 iOS 和 Mac 是共用一套配置的,策略组里面都加入 iOS 和 Mac 设备,每台设备一个节点。目前情况是 iOS 设备不管是在外面的 Wi-Fi 还是蜂窝网络下都可以连接回家,换成 Mac 在外面的 Wi-Fi 或者连接手机热点就无法连接回家。
    Donaldo
        17
    Donaldo  
       347 天前   1
    @TashinV #13 找到了一个更好的解决方案,可以把 wg 的配置写在 modules 里面,具体参考 https://manual.nssurge.com/others/module.html 。module 语法和 profile 一致,就相当于当前 profile 的一个 patch 。这样多台设备共享一个 profile ,然后每个设备加载不同的 module ,应该就可以避免这个握手冲突的问题了
    Donaldo
        18
    Donaldo  
       347 天前   1
    TashinV
        19
    TashinV  
    OP
    PRO
       347 天前 via iPhone
    @Donaldo
    module 完全不会写,规则还有一点点基础
    Donaldo
        20
    Donaldo  
       347 天前   1
    @TashinV #19

    Module 和 Profile 遵从一样的语法,我是这么写的:
    Profile 里面:

    [Rule]
    RULE-SET,192.168.9.0/24,wg

    [Proxy]
    wg = wireguard, section-name=WG

    然后就结束,规则里面不写 WG peers ,然后每个 module 里面(我用我给 Mini 用的做例子):

    # mini.sgmodule
    [WireGuard WG]
    private-key = <Peer Private Key>
    self-ip = 192.168.9.2
    self-ip-v6 = fd00:9::2
    dns-server = 10.0.0.1
    mtu = 1280
    peer = (public-key = <PubKey>, allowed-ips = "0.0.0.0/0, ::/0", endpoint = host:port, preshared-key = <PSK>, keepalive = 25)

    然后如常应用 Profile ,再去加载规则( Profiles 和 Modules 在一个文件夹内)
    TashinV
        21
    TashinV  
    OP
    PRO
       347 天前
    @Donaldo #20
    尝试了一下,能挂载 sgmodule ,但是还是没用,连接不上。
    Donaldo
        22
    Donaldo  
       347 天前 via iPhone   1
    @TashinV #21 那真的爱莫能助了,看看 endpoint 的 log 有没有异常?
    TashinV
        23
    TashinV  
    OP
    PRO
       347 天前 via iPhone
    @Donaldo
    看了一下没开增强模式。是不是 surge for mac 需要打开增强模式?
    Donaldo
        24
    Donaldo  
       347 天前   1
    @TashinV #23 不清楚,因为我从开始用 Surge 就是增强模式。。
    TashinV
        25
    TashinV  
    OP
    PRO
       347 天前
    @Donaldo #24
    打开 surge for Mac 的增强模式,可以连上了。
    TashinV
        26
    TashinV  
    OP
    PRO
       347 天前 via iPhone
    @Donaldo
    但是还想请问一下,surge 这个增强模式跟普通的模式有什么区别呀?我看有人开了增强模式,好像有找不到局域网下的共享打印机之类的问题
    TashinV
        27
    TashinV  
    OP
    PRO
       347 天前 via iPhone
    TashinV
        28
    TashinV  
    OP
    PRO
       347 天前 via iPhone
    还想请问一下,目前的设置大概是这样:

    [Proxy]
    Home = wireguard, section-name=iPhone
    Home = wireguard, section-name= MacBook

    [Proxy Group]
    Home = select, “iPhone”, “MacBook”

    [Rule]
    IP-CIDR,172.16.0.0/24, “Home”

    [iPhone]
    private-key = privatekey
    self-ip = 192.168.5.2
    dns-server = 114.114.114.114
    mtu = 1280
    peer = (public-key = public, allowed-ips = 172.16.0.0/24, endpoint = ip:port)


    这样会不会在内网和外网都通过 wireguard 来连接内网设备(比方 NAS )?

    @Donaldo
    Donaldo
        29
    Donaldo  
       346 天前   1
    @TashinV #28 会的,我的解决方案是设置一个 Subnet 策略组,根据 BSSID/SSID/网段来判断你所在的网络,自动选择走 Wireguard 还是 DIRECT
    TashinV
        30
    TashinV  
    OP
    PRO
       346 天前 via iPhone
    @Donaldo
    可不可以分享一下您的 subnet 策略组是怎么写的?我照猫画虎。
    Donaldo
        31
    Donaldo  
       346 天前   1
    @TashinV #30

    Home = subnet, default = Wireguard, "SSID:<SSID Prefix>*" = DIRECT

    其实图形界面加一个就行,很直观。
    TashinV
        32
    TashinV  
    OP
    PRO
       346 天前 via iPhone
    @Donaldo #30
    我的理解是这个命令是配合策略组里面的规则启用的,如果我把 wireguard 切换到 module 的形式启用,这个命令还会生效吗?
    Donaldo
        33
    Donaldo  
       346 天前   1
    @TashinV #32 会的,所谓 Module 也就是运行时对你的 Profile 打补丁,最终看的是打完补丁的那一份 Profile 。
    xpn282
        34
    xpn282  
       346 天前 via iPhone   1
    不用搞多配置文件,把多个 Wireguard 节点放进一个 smart 策略组,Surge 智能判断,哪个通用哪个,完事
    TashinV
        35
    TashinV  
    OP
    PRO
       340 天前
    @Donaldo #33
    大佬,想请问一下,我现在的 allowed-ips 是这么写的
    allowed-ips = "192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24, ::0/0"
    是不是意味着我连回家里去只能访问 192.168.1.0, 192.168.2.0, 192.168.3.0 这 3 个网段?
    因为我看有人在家里是路由器上开机场,需要的时候连接 WG 回家通过家里机场出国。我这个配置是不是意味着我的全局流量没有连回家(只能访问家里 1 、2 、3 网段,但是不能连回家里的机场)?
    Donaldo
        36
    Donaldo  
       339 天前   1
    @TashinV #35 是的,你这个只有内网走。
    TashinV
        37
    TashinV  
    OP
    PRO
       339 天前 via iPhone
    @Donaldo
    谢谢大佬解惑
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5522 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 26ms UTC 06:28 PVG 14:28 LAX 22:28 JFK 01:2
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86