LOADING

加载过慢请开启缓存 浏览器默认开启

如何让SideStore在内网直接使用

前言

我还记得我blog第一篇文章讲的是如何自签名osu!Lazer

几年过去了 lazer有了很大的更新

自签的方式和运行也变化很大很大

我后面用了SideStore 它不需要像Altstore一样局域网有一个AltServer

但它有一个问题

就是每次使用都需要打开WireGuard 然后才可以自签名

其实是挺麻烦的 如果忘了开7天后就和Altstore一样挂了

虽然说可以自动在后台签名 和Altstore一样

但是我并不可能一直开WireGuard 我不上Google了吗

近几天我重新装回来我发现他不用wg了 而是用StosVPN去做这些

这玩意还被从AppStore下了

后面用了Stikdebug 但这三个缺点都和wg一样的

其实很蛋疼,如果你从SideStore下App的时候需要魔法

那我就得先用魔法下完了 等他开始签名的时候手动去连接

拉完了

而且由于iOS限制,开流量的时候是不可以用的

所以我就想,能不能集成到局域网中,这样只需要我在家他就自己签名,我也不用折腾了

开始折腾

我啪的一下找到了这个blog

在内网中免 StosVPN 使用 SideStore

太牛逼了 直接解决了我要的所有

原理

以下参照了上面的blog

之前用wg的时候可以看到

他就是给iOS分配了一个10.7.0.0的IP 然后转发10.7.0.0/24的所有数据

然后SideStore用10.7.0.1这个IP模拟装了iTunes的电脑去续签开发者证书

wg做的事仅仅就是把从10.7.0.0发往10.7.0.1的数据包交换来源和目标IP

也就是把数据包发给了自己的SideStore

那就很简单了

OpenWRT的配置

只需要去OpenWRT加两行规则

table inet sidestore {
  chain RAW_PREROUTING {
    type filter hook prerouting priority raw; policy accept;
    # 此处 192.168.0.xxx 改成你的 iOS 设备的 IP
    ip saddr 192.168.0.123 ip daddr 10.7.0.1 ip saddr set 10.7.0.1 ip daddr set 192.168.0.123 notrack;
    ip saddr 192.168.0.234 ip daddr 10.7.0.1 ip saddr set 10.7.0.1 ip daddr set 192.168.0.234 notrack;
    # 可以按需添加更多的规则
  }
}

当然这需要给iOS设备手动设置一个静态IP,对于我/16的网段显然不是什么难事(

我的话并不知道怎么在Web界面上调 我选择直接SSH进去

然后把上面的东西粘贴进这个文件里

vi /etc/sidestore.nft
nft -f /etc/sidestore.nft
nft list ruleset | grep 'table inet sidestore' -A 5

能看到设定的规则就是OK了

chrome_OXbOHzYgEE.png

然后的话开机的时候让nfttable自动加载就好了

我们写一个init脚本好了

vi /etc/init.d/sidestore_nft

把这个粘贴进去

#!/bin/sh /etc/rc.common

START=99  # 在大部分服务之后启动
STOP=15

start() {
    # 检查 nftables 文件是否存在
    [ -f /etc/sidestore.nft ] || return 0

    echo "Loading sidestore nftables rules..."
    # 使用 nft -f 命令从文件加载规则,-f 会自动清空并重新加载文件中的所有内容
    nft -f /etc/sidestore.nft
}

stop() {
    echo "Stopping sidestore nftables rules..."
    # 停止时,删除整个自定义表
    nft delete table inet sidestore
}

reload() {
    # reload 命令用于在防火墙重载时重新加载规则
    stop
    start
}

然后启用他

chmod +x /etc/init.d/sidestore_nft
/etc/init.d/sidestore_nft enable
/etc/init.d/sidestore_nft start

主路由的配置

接下来在主路由上增加一条静态路由规则

chrome_Wwm5kKQQNm.png

网关选择OpenWRT 保存

然后在iOS上重新测试一下Refresh 没问题就完事了

Debug

然后就翻车了 我发现ping不通

咋回事呢

哦哦哦卧槽傻逼了

在iKuai上静态路由nat后 转发到了OpenWRT 实际上OpenWRT上看到的地址应该是iKuai的地址

所以规则只需要写一行

ip saddr 10.0.0.1 ip daddr 10.7.0.1 ip saddr set 10.7.0.1 ip daddr set 10.0.0.1 notrack

然后就可以了