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

如何实现 iOS 小火箭可以同时访问家里局域网并且实现出国

  •  
  •   xpn282 · 2023-03-01 11:07:14 +08:00 · 9518 次点击
    这是一个创建于 393 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家里移动宽带,有公网 IPv6 ,并且已经做了 ddns 绑定域名。 不想用端口转发的方式回家,因为 ddns+端口转发和模拟家里局域网还是有区别的。

    现在想 iPhone 实现在外网访问家里的局域网( 192.168.x.x),并且同时可以出国。用过 zerotier ,但是开启 zerotier 了,家里局域网能访问,当就不能出国了。后来研究了 OpenWrt 开服务器+iOS 小火箭的方案,但是访问家里局域网不完美。

    方案如下: OpenWrt 的 Passwall 开 Socks 服务器,然后 iOS 小火箭通过域名+端口的方式添加 Socks 服务器做节点,然后在小火箭的配置文件把 192.168.0.0/16 设为代理 proxy 。到此为止小火箭可以通过 Socks 服务器节点出国了,同时也可以在浏览器访问家里的路由器界面,浏览器访问家里的 alist 也可以,但就是不能用手机上的 nPlayer 之类播放器( smb 、webdav )访问,所以看不了视频。

    这方案不够完美,不知道还有什么解决方案

    第 1 条附言  ·  2023-03-01 20:35:31 +08:00
    我找到了解决方案,重点在小火箭的配置文件。下面把总流程说一下:
    1 ,把自己的公网 ip 绑定动态域名。
    2 ,在 OpenWrt 的 Passwall 上服务器端开启 Socks 服务器。
    3 ,在小火箭添加 Socks5 节点,地址就填动态域名,其他信息就填 Socks 服务器的信息即可,备注名随便填一个方便让自己识别的就好了。
    4 ,重点就是小火箭配置文件。用默认的也可以,找其他更多分流规则的也可以。下面要修改一下配置文件,这是重点,在配置文件的“通用”里,分别在“跳过代理”和 tun 旁路路由”下把“192.168.0.0/16”删除。然后在配置文件的“规则”里添加一条规则,类型选 IP- CIDR ,策略选上面第 3 步添加的 Socks5 节点,不解析域名开启,地址填 192.168.0.0/16 。

    这样修改后,访问局域网时就会通过 socks5 节点连接到家里的 Passwall 服务器上了,就可以访问所有局域网设备。至于小火箭主页的节点可以随便选其他的,不影响局域网访问!

    最终实现的效果就是只用一个 vpn 工具(小火箭)同时解决了外网访问局域网段( 192.168.x.x )和国内外分流,使用体验像在家一样。
    第 2 条附言  ·  2023-03-07 10:14:41 +08:00

    补充:一般小火箭配置文件的规则都自带有“192.168.0.0/16”这个规则了,搜索找到这条规则,然后进行修改就可以,不需要重新添加这条规则了,不然会导致规则重复!如果配置文件的“规则”里没有这条规则才需要重新添加!

    64 条回复    2023-08-20 14:48:16 +08:00
    billytom
        1
    billytom  
       2023-03-01 11:09:52 +08:00 via Android
    家里开个 wireguard ,内网网段走 wg proxy ,外网走你的机场
    windirt
        2
    windirt  
       2023-03-01 11:12:30 +08:00
    说说的我的方案,用的是 surge 作者介绍的

    https://community.nssurge.com/d/5

    挺好用的,任何地点,我的手机和 Mac 都能访问家里的各个设备(各个设备都有自己的域名)
    xpn282
        3
    xpn282  
    OP
       2023-03-01 11:15:14 +08:00
    @billytom 刚上网搜了一下 wireguard 的教程,教程密密麻麻 太难了。。。🥲
    xpn282
        4
    xpn282  
    OP
       2023-03-01 11:33:52 +08:00
    平时手机上用小火箭,所以想直接在小火箭上 vpn 完成完美访问局域网和出国。。。
    NG6
        5
    NG6  
       2023-03-01 11:35:33 +08:00
    可以参考这篇文章,一个 xray 可以直接解决
    https://sleele.com/2020/07/23/高级教程-安全访问家庭网络 /
    totoro625
        6
    totoro625  
       2023-03-01 11:44:13 +08:00
    小火箭是不能分流的,所以只能先连回家,再通过家里的 openwrt 翻墙

    如果用支持分流的 Surge/Quantumult-X/Stash 等方法就可以通过 2# 的方法进行分流回家
    鉴于 OP 用的 Passwall 而不是 Openclash ,编写配置文件的方法可能较为复杂

    1 、先回家再出国
    主要解决回家方案,部分功能无法访问可能是 DNS/防火墙的问题
    最简单粗暴的方法,链接路由器下的局域网设备而不是路由器本身
    2 、分流
    配置复杂,而且需要购买新的软件,可以先从 clash 开始,先学会 clash 的配置
    3 、先出国再回家
    国外落地梯子机器上安装远程组网软件,如 tailscale/zerotier 等,和国内组网,通过 subnet 功能回家

    目前我主要用分流方案,和回家方案
    PerFectTime
        7
    PerFectTime  
       2023-03-01 11:49:24 +08:00
    我用的 surge ,他可以添加 wireguard 的策略,指定非家庭 WIFI 的情况下,所有 192.168 网段走 wireguard

    wireguard 其实不难配置,就一个公钥 /私钥配置一下就行
    xpn282
        8
    xpn282  
    OP
       2023-03-01 11:57:56 +08:00
    @NG6 我也在 OpenWrt 上搭过 v2r 服务器,还是一样的现象,手机的播放器 app 不能访问局域网。。就浏览器可以访问。。
    xpn282
        9
    xpn282  
    OP
       2023-03-01 12:19:54 +08:00
    @totoro625 其实小火箭是可以分流的,它也可以使用很多分流规则配置文件。在小火箭的配置文件上,可以把国外设为出国节点,同时也可以把国内设为直连,同时在配置文件里修改一下也可以让局域网地址 192.168.0.0/16 走 Socks 代理回家,问题是现在可以回家了,浏览器能访问局域网了,但是播放器不能。。。这就很奇怪,不解
    Tyuans
        10
    Tyuans  
       2023-03-01 12:59:34 +08:00
    我也是用 surge 作者的方法,小火箭不能参考设置类似的吗
    yaoyao1128
        11
    yaoyao1128  
       2023-03-01 13:07:03 +08:00 via iPhone
    webdav 和 smb 在 nplayer 上面是以 ip 显示的还是服务器名称显示的呢?
    在家里开一个小火箭支持的协议的服务器之后用小火箭分流……你现在的操作就是对的啊……
    mcluyu
        12
    mcluyu  
       2023-03-01 13:46:09 +08:00
    花点时间研究下,wireguard 绝对好用, 而且在 OP 上搭建很方便
    xpn282
        13
    xpn282  
    OP
       2023-03-01 13:55:04 +08:00 via iPhone
    @yaoyao1128
    我刚摸索了蛮久,我好像已经解决播放器无法回家的问题,在小火箭的配置文件里,点击通用,在“tun 包含路由”里添加“192.168.2.0/24”(我的局域网段是 192.168.2.x )。现在所有 app 都可以回家了,比如播放器、浏览器、hass !外网有如在家一样了

    最终的效果是在小火箭进行分流:局域网回家(通过 OpenWrt 上 Passwall 的服务器端)、被墙的国外走代理、国内走直连
    xpn282
        14
    xpn282  
    OP
       2023-03-01 14:32:56 +08:00 via iPhone
    上面好像说错了,刚才成功了一下。我在研究一下,好像是在配置文件里的通用,“跳过代理”和“tun 旁路由”里把“ 192.168.0.0/16”删除才行……在测试一下
    qq2511296
        15
    qq2511296  
       2023-03-01 15:13:07 +08:00
    你这是直接可以通过手机流量 在浏览器打开 192.168.x.x 访问家里的设备?
    xipuxiaoyehua
        16
    xipuxiaoyehua  
       2023-03-01 16:28:32 +08:00
    @totoro625 谁说的小火箭不能分流。。。
    SenLief
        17
    SenLief  
       2023-03-01 16:30:59 +08:00
    可以先回家啊,然后再从家里链接外网,回家段采用 wg 回去,这样你的手机就在内网了,访问家里的局域网设备很正常吧。
    xulianbang
        18
    xulianbang  
       2023-03-01 16:54:49 +08:00 via iPhone
    我是 DDNS-GO 直接走 ipv6 ,翻墙和访问内网都可以啊,在线看内网视频跑满上传,哪有那么麻烦
    xpn282
        19
    xpn282  
    OP
       2023-03-01 17:00:35 +08:00 via iPhone
    @xulianbang
    DDNS-GO 是动态域名工具而已吧

    我是想在外网直接访问 192.168.x.x
    redbeanzzZ
        20
    redbeanzzZ  
       2023-03-01 17:31:32 +08:00
    openwrt 装一个 softetherVPN ,手机上都不用装小火箭的,苹果自带的 VPN 协议就能直接连
    我现在是 windows 用自带的 VPN 连 LT2P 到局域网。
    安卓手机装 openvpn 连接局域网,保存两个配置文件,一个只代理局域网,另一个代理所有流量,就是你说的那两个功能了。但是我不知道代理所有流量来科学上网会不会被查到流量,所以我科学上网都是用手机 v2ray
    xpn282
        21
    xpn282  
    OP
       2023-03-01 20:38:34 +08:00 via iPhone
    我找到了解决方案,重点在小火箭的配置文件。下面把总流程说一下:
    1 ,把自己的公网 ip 绑定动态域名。
    2 ,在 OpenWrt 的 Passwall 上服务器端开启 Socks 服务器。
    3 ,在小火箭添加 Socks5 节点,地址就填动态域名,其他信息就填 Socks 服务器的信息即可,备注名随便填一个方便让自己识别的就好了。
    4 ,重点就是小火箭配置文件。用默认的也可以,找其他更多分流规则的也可以。下面要修改一下配置文件,这是重点,在配置文件的“通用”里,分别在“跳过代理”和 tun 旁路路由”下把“192.168.0.0/16”删除。然后在配置文件的“规则”里添加一条规则,类型选 IP- CIDR ,策略选上面第 3 步添加的 Socks5 节点,不解析域名开启,地址填 192.168.0.0/16 。

    这样修改后,访问局域网时就会通过 socks5 节点连接到家里的 Passwall 服务器上了,就可以访问所有局域网设备。至于小火箭主页的节点可以随便选其他的,不影响局域网访问!

    最终实现的效果就是只用一个 vpn 工具(小火箭)同时解决了外网访问局域网段( 192.168.x.x )和国内外分流,使用体验像在家一样。
    duduke
        22
    duduke  
       2023-03-02 10:10:43 +08:00 via iPhone
    不懂,有 ipv6 不是随便访问吗?有啥不能操作的,为啥还要安装 zero ,反正我现在家庭局域网随便访问,用的 ng 反代,不知道你要搞成啥样的
    mountainl
        23
    mountainl  
       2023-03-02 10:36:26 +08:00
    感谢分享,按照楼主方法成功了
    summersun2021
        24
    summersun2021  
       2023-03-02 11:16:20 +08:00
    有点不明白,我用的是端口转发,打开小火箭正常出国,有什么不同吗?
    xpn282
        25
    xpn282  
    OP
       2023-03-02 11:51:35 +08:00
    @duduke
    我不懂反代理是什么,作用是什么。。。
    我的需求就是外网直接能访问家里的 192.168.x.x 地址,像在家一样,打开 192.168.2.1 就能进入 OpenWrt ,不需要每个设备都搞 域名+端口
    xpn282
        26
    xpn282  
    OP
       2023-03-02 12:00:18 +08:00
    @summersun2021
    域名+端口转发 和 vpn 异地组网还是有区别的。。
    我的方式能在外面用流量直接对家里内网段 192.168.x.x 进行访问,hass ,infuse 等等 app 不需要另外添加域名+端口,就可以直接使用了,就像在家一样。甚至可以在外面投屏到家里电视机上。。
    summersun2021
        27
    summersun2021  
       2023-03-02 13:42:48 +08:00
    不过我严格按照你的方法来处理,可以出国但是内网访问不了,特别是第四部的步骤。(路由器 ip 是 192.168.6.1 )
    summersun2021
        28
    summersun2021  
       2023-03-02 14:06:15 +08:00
    第四点是严格进行,下面说下前三个步骤,还在路由开放了 1080 端口。看看有什么错误:

    1 ,把自己的公网 ip 绑定动态域名。(已经绑定,能用域名访问本地路由)
    2 ,在 OpenWrt 的 Passwall 上服务器端开启 Socks 服务器。(启用有双钩标志,就设置了个端口号 1080 ,SOCKS 节点设置和 tcp 一样,UDP 节点关闭)
    3 ,在小火箭添加 Socks5 节点,地址就填动态域名,其他信息就填 Socks 服务器的信息即可,备注名随便填一个方便让自己识别的就好了。(修改了三个地方,分别是域名+端口+备注名)
    xpn282
        29
    xpn282  
    OP
       2023-03-02 14:25:41 +08:00 via iPad
    @summersun2021 你在小火箭上能使用 socks5 节点来出国吗?或者换个端口试试看?

    第 4 步的“跳过代理”和“ tun 旁路路由”都有“192.168.0.0/16”的哦,都要删除哦
    summersun2021
        30
    summersun2021  
       2023-03-02 14:43:37 +08:00
    @xpn282 能出,2 个地方都删了。规则那也添加了 192.168.0.0/16
    xpn282
        31
    xpn282  
    OP
       2023-03-02 15:10:08 +08:00 via iPad
    @summersun2021 那我也不懂了。。。你试试小火箭全局代理看看,能不能访问局域网
    summersun2021
        32
    summersun2021  
       2023-03-02 15:20:02 +08:00
    嗯,也不行,算了,不捣鼓了。
    xpn282
        33
    xpn282  
    OP
       2023-03-02 15:34:32 +08:00 via iPad
    @summersun2021 有一些配置文件的”规则”里已经默认有 192.168.0.0/16
    的规则,或者类似规则,一般都是默认直连了,你看看有的话,就不要自己添加 192.168.0.0/16 这个规则了,在原有的基础上修改为 socks 节点。

    没成功一般都是局域网 ip 没被代理。。。不行的话,我也不知道了
    goodryb
        34
    goodryb  
       2023-03-02 16:28:14 +08:00
    话说 socks5 直接暴露在公网上安全吗
    之前也试过在 openwrt 上启用 server ,手机不管出国还是访问局域网都经过这 server 来转发,但总感觉这个速度会变慢,后来家里的服务都设置了端口转发,正常出国还是走小火箭。
    szdosar
        35
    szdosar  
       2023-03-02 16:54:42 +08:00
    乐于探索,乐意分享,谢谢你。
    xpn282
        36
    xpn282  
    OP
       2023-03-02 17:09:49 +08:00 via iPhone
    @goodryb 安不安全我也不知道,还有其他协议可以选择,比如 v2ray 什么的………

    我的这个方案,只有局域网流量经过家里的 Passwall 的 socks5 服务器而已哦……其他流量是不经过的哦……其他国内外分流也还是由小火箭的配置文件决定,由小火箭主页选的节点决定哦
    goodryb
        37
    goodryb  
       2023-03-02 17:45:46 +08:00
    @xpn282 #36 是的,分流的原理我是看明白了,只是我比较担心 socks5 的安全问题,搜索了下貌似只有账号和密码认证
    xpn282
        38
    xpn282  
    OP
       2023-03-02 18:02:53 +08:00 via iPad
    @goodryb 起码比动态域名+端口转发安全吧,,动态域名+端口转发可以直达设备的登入界面。。。。输入设备密码就可以访问了,比如路由界面,nas 界面。。这样是不是更不安全。。。

    socks 服务器的话,要先破了 socks 后,才能达到各个设备的登入界面
    ,不知道我这样理解对不对。。。
    systemcall
        39
    systemcall  
       2023-03-04 00:13:35 +08:00
    socks5 似乎是明文的
    也许可以直接拿 v2ray 搭一个吧,v2ray 本身是支持这些功能的,用规则+代理链就可以了
    xpn282
        40
    xpn282  
    OP
       2023-03-07 10:13:20 +08:00 via iPhone
    补充:一般配置文件的规则都带有“192.168.0.0/16”这个规则了,搜索找到这条规则,然后进行修改就可以,不需要重新添加这条规则了,不然会导致规则重复!如果配置文件里没有这条规则才需要重新添加!
    victorkk
        41
    victorkk  
       2023-03-22 14:10:26 +08:00
    @xpn282 #21 感谢提供方案,我在软路由上看启了 ss 的服务端,可以通过这个方案回家。同时想咨询下各位大佬,我软路由上同时搭建了 wireguard ,小火箭升级后支持了 wireguard ,我在小火箭上使用这个方案可以正常访问墙内及墙外,但是就是无法访问家里的设备,何解。
    xpn282
        42
    xpn282  
    OP
       2023-03-22 22:52:09 +08:00 via iPad
    @victorkk wireguard 我不了解,我看教程,感觉 wireguard 安装配置很复杂,就放弃了。
    现在用 Passwall 开服务器的方式,已经圆满完成我想要的结果了,不想折腾其他复杂方案了。。
    Astaroth0001
        43
    Astaroth0001  
       350 天前
    感谢作者,已经成功
    jjxtrotter
        44
    jjxtrotter  
       333 天前
    搭建了 passwall 和代理,外网测试通过,但是添加了规则,把规则里的内网段删除,没成功。不过我用的是 surge ,日志里面的确是通过代理连接了,但就是连不上内网设备
    xpn282
        45
    xpn282  
    OP
       333 天前
    @jjxtrotter 在 Passwall 上搭建服务器后,在家外面外网可以使用 Passwall 的服务器翻墙吗??
    能翻墙的话,那就是已经成功连回家了。至于能不能访问家里设备,那估计是规则问题了。。。surge 我没用过,也不是很清楚。
    jjxtrotter
        46
    jjxtrotter  
       332 天前 via iPhone
    @xpn282 测试可以翻,但是访问内网就不行
    eightsheep
        47
    eightsheep  
       297 天前
    我用的 openclash ,一直都是访问家里域名来翻墙的,但是经过设置也是无法访问内网。不知道还要改 openclash 的什么设置
    xpn282
        48
    xpn282  
    OP
       297 天前
    @eightsheep

    既然已经可以通过家里域名翻墙了,说明已经连到家里了……
    那只能是小火箭的内网规则不对吧……或者是 OpenWrt 服务器端禁止访问内网……
    meiliguo86
        49
    meiliguo86  
       293 天前 via iPhone
    zerotier 可以让局域网所有设备流量走指定客户端流量,
    我是路由器上装的 zerotier.然后 zerotier 指定路由表,
    我手机在外,连上 zerotier 后可以打开家里内网设备和直接翻墙, 其实就是用家里路由器翻墙,国内国外流量都是走的路由器, 翻墙速度还蛮快的,比小火箭快多了,
    xpn282
        50
    xpn282  
    OP
       293 天前
    @meiliguo86

    虽然不喜欢把所有流量都通过家里,但是还是很好奇,zerotier 那要怎么设置?比如怎么设置才能把油管的流量通过家里翻墙?我设置 zerotier 的路由表只能访问家里的内网设备,那油管怎么实现呢? 很好奇 请指点
    ybwh1123
        51
    ybwh1123  
       291 天前
    @meiliguo86 同问能说下怎么弄吗
    meiliguo86
        52
    meiliguo86  
       289 天前
    @ybwh1123
    @xpn282
    我是在主路由器上装的 zerotier 客户端,
    创建 zerotier 接口
    协议不配置协议
    设备 zerotier 设备
    创建 zerotier 防火墙

    防火墙区域
    lan;
    允许转发到目标区域 wan wan6 zerotier
    允许来至源区域转发 zerotier
    zerotier
    允许转发到目标区域 lan wan wan6
    允许来至源区域转发 lan
    两个 ip 动态伪装勾上
    防火墙规则
    协议 udp
    源区域 任意区域转发
    目标区域 设备输入 目标端口 9993
    zerotier 路由表添加 0.0.0.0/0 到你主路由器 zerotier 的分配的虚拟 ip

    这这样设置后,所有 zerotier 网络设备走的流量都是走家里路由器
    meiliguo86
        53
    meiliguo86  
       288 天前
    各个客户端要启动默认路由.
    ios 上
    allow default router override
    电脑上 和 安卓上也是类似
    ybwh1123
        54
    ybwh1123  
       287 天前
    @meiliguo86 我按你的弄下内网都连不进去了,我以为哪里错了,试了 3 遍都进不去
    meiliguo86
        55
    meiliguo86  
       286 天前
    @ybwh1123
    https://alist.meiliguo86.eu.org/zerotier/Z
    照着图片做,昨晚重启一下
    zhangxy2017
        56
    zhangxy2017  
       263 天前
    通过 op 的方法已经成功,但是这样配置后在家使用内网是不是也要经过 socks 代理?网速会不会有影响?
    xpn282
        57
    xpn282  
    OP
       263 天前
    @zhangxy2017 在家要把小火箭关掉啊……

    小火箭可以设置场景啊,比如回家自动关闭小火箭,其他场景自动启用小火箭,全程自动化
    PinLeak
        58
    PinLeak  
       247 天前
    @xpn282 老哥,我看你在其他回复下说有使用 v2ray 实现远程回家,能详细说说怎么做的吗?
    xpn282
        59
    xpn282  
    OP
       247 天前 via iPad
    @PinLeak
    你有公网 IP 吗?帖子说得很详细了呀。。。。
    OpenWrt 端使用 Passwall ,手机端使用小火箭
    PinLeak
        60
    PinLeak  
       246 天前
    @xpn282 主要就是想实现你的回家,出国,分流,我配置了,但是总是有问题,所以想要一个详细点的教程。。。
    xpn282
        61
    xpn282  
    OP
       246 天前 via iPad
    @PinLeak
    Telegram 联系我吧 https://t.me/xpn282
    JohnSwit
        62
    JohnSwit  
       223 天前
    @xpn282 #59 没有公网 IP 有办法实现这种方案吗?
    xpn282
        63
    xpn282  
    OP
       223 天前 via iPad
    @JohnSwit
    没有公网 IP 的话,实现比较麻烦了。。。
    只能 Zerotier 打洞之类的了。。。如果有 vps 的话,就把 vps 和家里用 Zerotier 打洞。。然后外网的话,用小火箭连接 vps 节点就能回家
    licong
        64
    licong  
       221 天前
    按照楼主的教程成功了
    策略选上面第 3 步添加的 Socks5 节点,这边似乎新版的小火箭看不到节点了,就选的代理也是可以的
    完美~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3905 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 10:31 · PVG 18:31 · LAX 03:31 · JFK 06:31
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.