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

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

  •  
  •   xpn282 · 272 天前 · 7437 次点击
    这是一个创建于 272 天前的主题,其中的信息可能已经有所发展或是发生改变。

    家里移动宽带,有公网 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 条附言  ·  272 天前
    我找到了解决方案,重点在小火箭的配置文件。下面把总流程说一下:
    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 条附言  ·  266 天前

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

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

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

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

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

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

    目前我主要用分流方案,和回家方案
    PerFectTime
        7
    PerFectTime  
       272 天前
    我用的 surge ,他可以添加 wireguard 的策略,指定非家庭 WIFI 的情况下,所有 192.168 网段走 wireguard

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

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

    我是想在外网直接访问 192.168.x.x
    redbeanzzZ
        20
    redbeanzzZ  
       272 天前
    openwrt 装一个 softetherVPN ,手机上都不用装小火箭的,苹果自带的 VPN 协议就能直接连
    我现在是 windows 用自带的 VPN 连 LT2P 到局域网。
    安卓手机装 openvpn 连接局域网,保存两个配置文件,一个只代理局域网,另一个代理所有流量,就是你说的那两个功能了。但是我不知道代理所有流量来科学上网会不会被查到流量,所以我科学上网都是用手机 v2ray
    xpn282
        21
    xpn282  
    OP
       272 天前 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  
       271 天前 via iPhone
    不懂,有 ipv6 不是随便访问吗?有啥不能操作的,为啥还要安装 zero ,反正我现在家庭局域网随便访问,用的 ng 反代,不知道你要搞成啥样的
    mountainl
        23
    mountainl  
       271 天前
    感谢分享,按照楼主方法成功了
    summersun2021
        24
    summersun2021  
       271 天前
    有点不明白,我用的是端口转发,打开小火箭正常出国,有什么不同吗?
    xpn282
        25
    xpn282  
    OP
       271 天前
    @duduke
    我不懂反代理是什么,作用是什么。。。
    我的需求就是外网直接能访问家里的 192.168.x.x 地址,像在家一样,打开 192.168.2.1 就能进入 OpenWrt ,不需要每个设备都搞 域名+端口
    xpn282
        26
    xpn282  
    OP
       271 天前
    @summersun2021
    域名+端口转发 和 vpn 异地组网还是有区别的。。
    我的方式能在外面用流量直接对家里内网段 192.168.x.x 进行访问,hass ,infuse 等等 app 不需要另外添加域名+端口,就可以直接使用了,就像在家一样。甚至可以在外面投屏到家里电视机上。。
    summersun2021
        27
    summersun2021  
       271 天前
    不过我严格按照你的方法来处理,可以出国但是内网访问不了,特别是第四部的步骤。(路由器 ip 是 192.168.6.1 )
    summersun2021
        28
    summersun2021  
       271 天前
    第四点是严格进行,下面说下前三个步骤,还在路由开放了 1080 端口。看看有什么错误:

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

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

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

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

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

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

    虽然不喜欢把所有流量都通过家里,但是还是很好奇,zerotier 那要怎么设置?比如怎么设置才能把油管的流量通过家里翻墙?我设置 zerotier 的路由表只能访问家里的内网设备,那油管怎么实现呢? 很好奇 请指点
    ybwh1123
        51
    ybwh1123  
       171 天前
    @meiliguo86 同问能说下怎么弄吗
    meiliguo86
        52
    meiliguo86  
       168 天前
    @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  
       168 天前
    各个客户端要启动默认路由.
    ios 上
    allow default router override
    电脑上 和 安卓上也是类似
    ybwh1123
        54
    ybwh1123  
       166 天前
    @meiliguo86 我按你的弄下内网都连不进去了,我以为哪里错了,试了 3 遍都进不去
    meiliguo86
        55
    meiliguo86  
       166 天前
    @ybwh1123
    https://alist.meiliguo86.eu.org/zerotier/Z
    照着图片做,昨晚重启一下
    zhangxy2017
        56
    zhangxy2017  
       143 天前
    通过 op 的方法已经成功,但是这样配置后在家使用内网是不是也要经过 socks 代理?网速会不会有影响?
    xpn282
        57
    xpn282  
    OP
       143 天前
    @zhangxy2017 在家要把小火箭关掉啊……

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