V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
matzoh
V2EX  ›  Apple

iOS 多个 VPN 共存问题,如何解决?

  •  
  •   matzoh · 2022-10-18 10:22:43 +08:00 · 14263 次点击
    这是一个创建于 527 天前的主题,其中的信息可能已经有所发展或是发生改变。

    说一下需求

    在外网随时访问家里的 NAS ,并同时可上 TG 。 iOS 设备同时 打洞+上外网

    目前的状况

    家里的 NAS 无公网(虽然有 ipv6 ,但主要使用场景网络都不支持 ipv6 ,故约等于没有) 设备是 iOS ,不支持同时开启两个 VPN 目前使用的是打洞方案( Taisacle ),上 TG 用的 Clash 不考虑 FRP 等内网穿透(有部署,但作为主力体验太差)。

    现在一直是两个 VPN 来回切换,上 TG 的时候开 Clash ,访问 Nas 的时候再开 Tailsacle 有没有什么方案,能共存?

    目前知道一个就是使用 Tailsacle 的出口节点,来达到访问外网的目的,但所有流量都需要中转到另外一个节点吧(比如中转到家里的 NAS ),这个方案觉得可用性不是很强,特别是已经用惯各种分流了。

    iOS 设备如何能兼容同时两个 VPN ? 或者更换软件同时达到组网+分流也可以,不想牺牲访问速度

    第 1 条附言  ·  2022-10-18 17:09:32 +08:00
    总结一下目前的方案:

    方案一:两个 VPN 来回切换(可搭配自动化指令)
    方案二:内网穿透(所有流量走中转服务器)
    方案三:所有流量代理到某个出口节点,出口节点负责分流
    方案四:surge + wireguard (目前来看是完美能解决的,等我有空了测一下打洞成功率什么的)
    方案五:choc (支持 tailscale 的 app ,作者疑似跑路停更)

    解决方案都是基于 NAS 设备无公网 ip ( NAT to NAT )

    有公网 IP 的可直接路过🏃🏻‍♀️
    第 2 条附言  ·  2022-10-19 18:48:16 +08:00
    部署了 wireguard 方案,发现都是中转,不能打洞直连。 延迟取决于公网中转服务器。 tailscale 是可以直连的。 有大佬带方案吗
    83 条回复    2023-09-15 11:31:32 +08:00
    monkey110
        1
    monkey110  
       2022-10-18 10:38:11 +08:00
    说个没测试过的方法 ac86u 安装科学插件 然后开启 ac86u 开启 openvpn ipv6 模式 手机 vpn 连 ac86u 使用路由网络 理论上可以解决

    同无 ipv4 公 有 ipv6 公 除了没试过 ac86u 安装科学插件科学上网 其他完全没问题 当然 我常用手机网 老家也有 Ipv6
    cubarco
        2
    cubarco  
       2022-10-18 10:39:46 +08:00
    我也跟你有类似的需求,我的方案你也提到了,不过是用家里的路由器做总的翻墙节点,其他所有设备接入路由器中转。这样做有个好处也是我的痛点:大多机场限制并发 IP 数,这个方案可以把 IP 使用量控制在最小。

    路由器上搞个 clash 做规则分流,同时开 ss/vmess/trojan 之类的服务对外; iOS 设备上搞个 quanx/shadowrocket ,配轻量的分流规则,节点走家里的路由器,同时加上家里的内网 IP 规则,保证能转发到 NAS 上。

    家里的宽带上行是 30M ,对我来说够了,之前升过 100M 上行,跟 30M 上行也没啥区别,这几个月没续了。
    tediorelee
        3
    tediorelee  
       2022-10-18 10:41:31 +08:00
    那个已经断更的 app: choc 好像可以支持连接 tailscale ,但是我也没有实测过
    matzoh
        4
    matzoh  
    OP
       2022-10-18 10:46:53 +08:00
    @monkey110 这个方案就是用 ipv6 ,然后手机开 vpn 流量中转过去吧,但是我这儿除了家里有 ipv6 ,其他大部分网络环境都不支持 ipv6 ,比较僵硬,所以我单纯的把 ipv6 当成备用的异地访问方案了
    matzoh
        5
    matzoh  
    OP
       2022-10-18 10:50:05 +08:00
    @cubarco 这个方案肯定可行,就是心里有点别扭,毕竟绕了一圈
    matzoh
        6
    matzoh  
    OP
       2022-10-18 10:50:35 +08:00
    @tediorelee 看了一下,确实可以,可惜断更了... 还真想买了试试
    totoro625
        7
    totoro625  
       2022-10-18 10:51:01 +08:00
    已知条件,你有外网服务器,家庭 NAS ,tailscale 能直连
    1 、在家里 NAS 上部署 clash 分流,全程用 tailscale 回家

    2 、不支持 ipv6 的地方自己加个路由器跑 tailscale ,支持 ipv6 的地方 ipv6 直连回家

    3 、家里 nas 跑 frp 通过梯子到外网,直接连接,速度取决于你的梯子好坏
    me221
        8
    me221  
       2022-10-18 10:51:58 +08:00
    我在 OpenWRT 跑了 OpenClash 和 WireGuard. 在 IOS 上用 Surge 全局代理. 分流交给 OpenClash
    dcty
        9
    dcty  
       2022-10-18 10:53:16 +08:00
    如果你家里的穿透改为 wireguard ,那么 surge 就可以做到了。
    tediorelee
        10
    tediorelee  
       2022-10-18 10:53:49 +08:00
    @matzoh 确实挺可惜,期待一下其他 app 会适配吧
    alwaysbesideyou
        11
    alwaysbesideyou  
       2022-10-18 10:54:42 +08:00
    我家有 ipv6 ,但是学校的校园网没有 ipv6 。目前用的办法是在 nas 上自建 v2flay ,同时反向代理,然后将 ipv6 的地址 ddns 到 cloudflare ,用 cloudflare 的 proxy 可以实现 ipv4 访问 ipv6 ,手机上用 QX 写上自建的 v2flay ,然后根据反向代理的域名分流。这样一套下来延迟有点大。所以在有 ipv6 的位置,使用 ipv6 的 v2flay 直接访问。
    gesse
        12
    gesse  
       2022-10-18 10:58:17 +08:00 via Android
    tg 用内网的 socks5 代理?
    HB9527
        13
    HB9527  
       2022-10-18 11:00:01 +08:00
    iOS Surge App 可以满足需求。

    科学上网+Wireguard (连接家里 NAS),后者需要家里配置 WG 服务端
    Awes0me
        14
    Awes0me  
       2022-10-18 11:00:04 +08:00
    surge 支持 wireguard 的
    cpstar
        15
    cpstar  
       2022-10-18 11:00:38 +08:00
    难道每台终端自己走科学上网不省事么?配置可以在家庭网络中统一对内外提供。
    我反正是不理解家庭网关提供全局服务有多大便利,除了能够给固定在家庭网络中的设备提供,但凡某台设备要脱离家庭网络,那难道所有流量先回家再出去么?
    matzoh
        16
    matzoh  
    OP
       2022-10-18 11:05:35 +08:00
    @cpstar 你说的没错,我们聊的是:家里 NAS 没有公网的情况下,iOS 如何跟 NAS 异地组网的同时并能科学上网
    matzoh
        17
    matzoh  
    OP
       2022-10-18 11:06:34 +08:00
    @dcty
    @hungrybirder
    @Awes0me

    感谢大佬,我去了解一下 surge ,目前用的是 stash
    leavic
        18
    leavic  
       2022-10-18 11:41:22 +08:00
    也有类似的问题,当前是 zerotier+stash ,如果可以设置手机上 zerotier 默认走家里路由器的话似乎也可以,但好像 zt 没这个功能。
    cpstar
        19
    cpstar  
       2022-10-18 11:55:33 +08:00
    OP 16#
    所以咧?移动设备在外跟家庭网络组网之后,要干啥?为了使用家里的科学上网?那不就是所有流量先回家里再出去?
    matzoh
        20
    matzoh  
    OP
       2022-10-18 12:00:46 +08:00
    @cpstar 不是说了吗,访问家里的 nas 啊,网盘、emby 、一大堆服务都在上面跑着呢
    libook
        21
    libook  
       2022-10-18 12:03:48 +08:00
    我是在家里中转,判断如果是家里的网段就转发到对应的设备,否则就直接出国。
    cjydawn
        22
    cjydawn  
       2022-10-18 12:12:57 +08:00 via Android
    @matzoh 目前在用 choc ,里面的 tailscale 连接是可以的,但是 subnet 功能好像不太行。
    zmxnv123
        23
    zmxnv123  
       2022-10-18 12:16:49 +08:00   ❤️ 2
    跑个题....
    一劳永逸的解决: 肉翻
    webcape233
        24
    webcape233  
       2022-10-18 12:54:26 +08:00 via iPhone
    同需要,但 ios 本身没办法
    matzoh
        25
    matzoh  
    OP
       2022-10-18 13:09:55 +08:00
    @cjydawn subnet 还好,但凡能通一个都好说,效果怎么样,科学上网什么的,听说跑路了怕用不了😱
    cshlxm
        26
    cshlxm  
       2022-10-18 13:44:33 +08:00
    cloudflare 有免费 cdn ,你把 ddns 动态域名解析搞一下,在 nas 上跑个脚本更新当前 v6 地址,并打开代理模式,我就是这么搞的,v4 ,v6 下都可访问,速度还可以。不需要 vpn 了就。TG 用 clash 就行了
    wyd011011daniel
        27
    wyd011011daniel  
       2022-10-18 13:50:17 +08:00 via iPhone
    ssr 可以用快捷指令自动化打开。另一个软件没试过
    ndxxx
        28
    ndxxx  
       2022-10-18 13:51:54 +08:00
    在你的翻墙服务器上用 tailscale 和你的 NAS 建立隧道,再在服务器上开一个不同端口的代理,并流量转发到本地的 tailscale 上。然后写个规则让 clash 分流,就好了。
    matzoh
        29
    matzoh  
    OP
       2022-10-18 14:00:42 +08:00
    @cshlxm 我现在有 ipv6 ddns ,但我在外面的网络都不支持 ipv6 (比如公司),让我很痛苦,所以只当做备选方案了。 你是有 ipv4 动态公网 ip 嘛
    matzoh
        30
    matzoh  
    OP
       2022-10-18 14:03:28 +08:00
    @ndxxx 这样的话,访问 nas 的时候,流量是都需要经过外网服务器吗,还是打洞直连?(如果都需要中转的话,感觉不如内网穿透来的直接)
    matzoh
        31
    matzoh  
    OP
       2022-10-18 14:05:09 +08:00
    @wyd011011daniel 尝试过配置自动化指令,但到底还是不太舒服,比如 tg 这种通讯软件,想用的舒服就得 24 小时在线才能有安全感,自动化毕竟也是切换 VPN
    Innovatino
        32
    Innovatino  
       2022-10-18 14:10:02 +08:00
    有意思,看看还有啥解决方案没有
    Lentin
        33
    Lentin  
       2022-10-18 14:18:43 +08:00
    回家直接用 ssh+密钥验证+surge 写一条规则 ,安全性加便携性同时拥有
    ryansvn
        34
    ryansvn  
       2022-10-18 14:24:33 +08:00
    我是 NAS 使用 frp 开放一个端口,这个端口在 NAS 上运行一个 ss 服务。
    然后手机使用圈 X 的场景分流,手机不是家里的 WiFi 时,当访问家里的局域网 ip 时,走这个 ss 的代理,就可以无缝访问了。

    缺点是,慢,很慢
    但是可用,安全
    cpstar
        35
    cpstar  
       2022-10-18 14:31:01 +08:00
    OP 25#
    对于此,我觉得,访问家里的东西不是实时需要的,反而科学上网的需求(时间占比)更大。然后对于我的案例,用的 QNAP ,很多应用可以使用客户端并通过公网访问,并不需要相互切换(我通过 L2TP VPN 回家),除非个别涉及安全问题不适宜开放公网的。至于 V6 和 V4 的问题,V6 不存在 L2TP ,那肯定就是 V6 直连了,做好防火墙配置。
    然后,你的案例,没有公网 V4 是最大的问题,而 tailsacle 是第二个问题,如果能够做文章用 clash 规则替代 tailscale 的功能就可以了——总之就是手机的科学上网软件既能科学上网还能回家。最后没有 V6 的问题,想办法避开没有 V6 的网络吧,比如搞大手机流量,除了家里的 WIFI 别的哪的都不用。
    yoa1q7y
        36
    yoa1q7y  
       2022-10-18 14:37:57 +08:00
    我是用 passwall 的服务器端功能开了一个家里的 xray 服务,在 shadowrocket 上让家里的局域网 IP 网段走这个 xray 服务,这样只需要打开 shadowrocket 一个 App ,就可以同时上外网和访问家里资源
    matzoh
        37
    matzoh  
    OP
       2022-10-18 14:43:45 +08:00
    @yoa1q7y xray 是什么原理,流量需要中转到公网服务器吗? shadowrocket 访问家里的资源能跑满上传不
    Liang
        38
    Liang  
       2022-10-18 14:47:29 +08:00
    目前是 wg+v2 ,surge 解决
    matzoh
        39
    matzoh  
    OP
       2022-10-18 14:48:55 +08:00
    @Liang wireguard nat to nat 打洞怎么样,有推荐的客户端(服务端)吗
    ndxxx
        40
    ndxxx  
       2022-10-18 14:56:50 +08:00
    @matzoh 这方案访问 NAS 的时候,流量的确需要经过外网服务器。这里 tailscale 就已经起到了一个你说的内网穿透的作用(和 34 楼说的也是基本上同一种类型的解决方案)

    看了下其他回复。既然提到 surge 现在已经支持 wireguard ,那么就不如把 tailscale 换成 wireguard ,手机端的 stash 换成 surge 吧,省心。
    Antonidas
        41
    Antonidas  
       2022-10-18 15:00:38 +08:00
    和你一模一样,最最头疼的是有时候 Tailsacle 需要重新认证,而我使用的是 Google 登录...
    bluehtt
        42
    bluehtt  
       2022-10-18 15:08:01 +08:00
    感觉怎么搞都会很麻烦。想了解一下是哪里的宽带运营商?移动吗?
    Liang
        43
    Liang  
       2022-10-18 15:08:27 +08:00
    @matzoh wg 回家、回公司很稳啊,配合 surge 可以出国
    Loberty
        44
    Loberty  
       2022-10-18 15:11:54 +08:00
    mark 一下,这个问题同样遇到过
    maypu
        45
    maypu  
       2022-10-18 15:24:38 +08:00
    遇到了同样的问题,看起来好像都是 surge + wg 的方案,要是 Qx 支持 Tailsacle 就好了
    matzoh
        46
    matzoh  
    OP
       2022-10-18 15:40:04 +08:00
    总结一下目前的方案:

    方案一:两个 VPN 来回切换(可搭配自动化指令)
    方案二:内网穿透(所有流量走中转服务器)
    方案三:所有流量代理到某个出口节点,出口节点负责分流
    方案四:surge + wireguard (目前来看是完美能解决的,等我有空了测一下打洞成功率什么的)
    方案五:choc (支持 tailscale 的 app ,作者疑似跑路停更)

    解决方案都是基于 NAS 设备无公网 ip ( NAT to NAT )
    yoa1q7y
        47
    yoa1q7y  
       2022-10-18 15:43:29 +08:00
    @matzoh 我有公网 IP ,等于直接在家里路由器上起一个公网 xray 服务
    上传可以跑满,在外面看家里 NAS 上的视频很流畅
    PerFectTime
        48
    PerFectTime  
       2022-10-18 15:58:17 +08:00
    surge+wg 在用,体验还可以,注意写好规则只在外网访问局域网走 surge 的 wg
    shentt715
        49
    shentt715  
       2022-10-18 16:38:31 +08:00
    passwall 服务器端开个 ss ,防火墙做好端口映射,就能回家了。
    matzoh
        50
    matzoh  
    OP
       2022-10-18 16:44:04 +08:00
    @shentt715 你是有公网 ip 吧
    ydq765
        51
    ydq765  
       2022-10-18 16:47:07 +08:00
    @shentt715 这个方案服务端没有公网 ip 也可以吗?或者公司 v4 可以访问家宽 nat 环境下的服务端或者 v6 下的服务端?
    shentt715
        52
    shentt715  
       2022-10-18 17:03:38 +08:00 via iPhone
    @matzoh 电信,有公网 ip 。电信的公网打个电话就有了
    shentt715
        53
    shentt715  
       2022-10-18 17:04:05 +08:00 via iPhone
    @ydq765 没有公网 ip 你做个穿透应该也可以的。
    dfjosdfi3454
        54
    dfjosdfi3454  
       2022-10-18 17:06:26 +08:00 via Android
    在家里开个 ss 服务端,在服务端做分流
    HitmanT
        55
    HitmanT  
       2022-10-18 17:11:31 +08:00
    有公网 ipv6 就可以 wireguard+surge
    matzoh
        56
    matzoh  
    OP
       2022-10-18 17:12:59 +08:00
    @HitmanT 大环境对 ipv6 还是不太友好
    penll
        57
    penll  
       2022-10-18 18:04:43 +08:00
    不知道,家里软路由代理问题。导致无法拨公司的 vpn ,是不是也是同样问题?
    Believer
        58
    Believer  
       2022-10-18 19:13:09 +08:00
    我用的 tailscale 全局回家的方案
    mbooyn
        59
    mbooyn  
       2022-10-18 19:15:21 +08:00
    @cubarco 哈哈,我现在也是这样用的
    lovepocky
        60
    lovepocky  
       2022-10-18 19:30:16 +08:00 via iPhone
    Mark
    要是 ios 能做到跟 mac 一样,tailscale 和 clash 共存就好了
    目前只能 clash 和 ipv6ddns 勉强覆盖一些使用
    bigshawn
        61
    bigshawn  
       2022-10-18 19:36:02 +08:00 via iPhone
    本来用 zerotier 连回家也是差不多的烦恼,自从 surge 支持 wireguard 之后就用 wireguard 了,非常舒服。
    Kaiyuan
        62
    Kaiyuan  
       2022-10-18 20:29:15 +08:00
    我自己的方案是家里 NAS 做中转站,然后手机小火箭解决。方便很多的。
    Ga2en
        63
    Ga2en  
       2022-10-18 21:29:00 +08:00
    打洞是什么意思?
    这边没什么审核的哦
    X3en
        64
    X3en  
       2022-10-18 21:42:44 +08:00
    家里 openwrt 科学分流 有公网 v4 不在家直接 ipsec vpn 回家。 内网 富强都没问题
    viberconnection
        65
    viberconnection  
       2022-10-18 22:40:32 +08:00
    如果只用 Tailscale 的話,推薦這麼做:
    代理伺服器安裝它,設定爲出口節點
    在家找一臺設備來安裝,設定子網路由,範圍爲家用的內部 IP 位址段落
    當使用者端去連線,可以將代理伺服器設定爲出口節點,同時並不妨礙對內部網路的訪問
    viberconnection
        66
    viberconnection  
       2022-10-18 22:42:48 +08:00
    就是將設備加入統一私有 Tailscale 網路後再這麼做就可以了。

    有它還不用擔心家庭頻寬 NAT 問題,只要在線遊戲沒問題那這種網路對 Tailscale 就無問題。
    shelken
        67
    shelken  
       2022-10-18 23:58:22 +08:00 via iPhone
    @maypu 同,不知道有没有 quanx 加 tailscale 的方案出来,或者 quanx 加 zerotier 。现在翻墙和内网穿透两个需求都觉得不可缺少了
    clintme
        68
    clintme  
       2022-10-19 08:20:38 +08:00 via iPhone
    和我的需求一样。在家里软路由上部 ssr 服务端和 openclash,手机上用 quanx 配置自建的 ssr 服务器服务器,在 quanx 上把家里的局域网地址比如 192.168.1.0/32 设置成代理访问就可以了。
    cshlxm
        69
    cshlxm  
       2022-10-19 08:28:57 +08:00
    @matzoh 没有啊,就是域名,白嫖 cf 的 cdn ,会给你一个公网 cdn 的 ip ,可以直连常用端口
    XiaoBaiYa
        70
    XiaoBaiYa  
       2022-10-19 09:10:43 +08:00
    路由器 passwall ,弄绕过国内 IP 模式,配合黑白名单一起用。然后开公网 VPN 服务器。在外面的设备只需要连接这个 VPN 即解决所有问题。
    xiaokanhongchen
        71
    xiaokanhongchen  
       2022-10-19 09:20:10 +08:00 via Android
    mark 一下,android 下同样有此需求
    virualv
        72
    virualv  
       2022-10-19 11:48:02 +08:00 via iPhone
    tg 上支持 socks5 代理啊,nas 上运行个 clash ,xray ,trojan ,然后在 tg 上设置一下不就行了吗
    matzoh
        73
    matzoh  
    OP
       2022-10-19 14:04:24 +08:00
    @virualv 好好审题....
    matzoh
        74
    matzoh  
    OP
       2022-10-19 17:35:39 +08:00
    @XiaoBaiYa 有公网怎么都好说
    shelken
        75
    shelken  
       2022-10-19 20:53:54 +08:00 via iPhone
    @clintme 你这个也需要公网才能连上 ssr 服务端吧
    clintme
        76
    clintme  
       2022-10-19 21:12:13 +08:00
    @shelken 哦哦 没有 ipv4 ,可以试试 ipv6
    shelken
        77
    shelken  
       2022-10-19 22:54:18 +08:00
    关于公网,我还是得说下,一些人直接给公网 iP 方案对大多数没有公网 ip 的人来说没什么帮助. 首先说下 v4 ,v4 运营商几乎不给了,希望渺茫。再说 v6 ,现在根本不普及,如果是租房住的情况,大概率房东的设备也不支持给分配 v6 的条件。或者公司网络,大概率也不支持。所以目前现状还是依赖打洞。我跟楼主的情况几乎一样,所以后面给方案的各位,希望能从无公网 ip 的情况下讨论。
    xiaokanhongchen
        78
    xiaokanhongchen  
       2022-11-10 17:12:55 +08:00
    我的 android 方案,在 vps 上安装 tailscale ,然后在客户端将 100.64.0.0/10 加入到规则中强制走代理,如果 vps 优秀的话,绕多远都不是问题。
    sickoo
        79
    sickoo  
       362 天前
    mark 一下,有没有最新解决方案
    matzoh
        80
    matzoh  
    OP
       360 天前
    @sickoo #79 共存的方法目前还是没有合适的,wireguard 打洞能力实在不太行,现在是套减速云实现双栈,还有一个办法是如果是 nat1 的话可以用 natter 给打一个 ipv4 的端口。
    Mzbc
        81
    Mzbc  
       320 天前
    @matzoh 好像 surge 现在可以实现,surge 5 有一个 ponte 的功能,可以实现 mesh 组网,结合它本身代理的功能,可以实现楼主的想法吧,除了有点贵。。。
    dexlx
        82
    dexlx  
       301 天前
    我有一个好办法, 我现在正在用的, 直接 tg 里设置 taliscale 里的一台机器 Clash 为 socks 代理。

    还可以买一个 VPS ,装上 tg 的 MTPROTO ,taliscale 后台把权限控制好。不给任何权限。 tg 用 MTPROTO 代理
    CeilingDior
        83
    CeilingDior  
       195 天前
    现在的方案,mac 装 surge ,外网通过 ponte 连回家庭,内网设备都可以访问。问题解决。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1590 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 16:54 · PVG 00:54 · LAX 09:54 · JFK 12:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.