背景
Oracle的机器配置不错,就是线路特别垃圾。我手上Oracle韩国的机器做代理节点使用体验感很差,最好的时候延迟都是200-300ms,晚高峰基本上测速就显示超时。究其原因,是用了普通线路,并没有特殊的优化,晚高峰丢包特别严重,无法正常使用。为了解决这个问题,在不换vps的前提之下,通过引入中转机场,借用机场的高速线路降低延迟,增加上网体验。
由于我这个中转机场直连香港延迟40-50ms左右,比其他地区都低,因此通过香港的节点进行中转,香港到韩国,就走国际线路。最终结果:测试的链式代理是100-130ms左右。感觉达成了 1+1 > 一 的效果。
一个具体的流程就是这样:
手机
↓ tun 接管所有流量
sing-box 分流
↓ 代理流量
机场香港节点(中转,优化线路)
↓ 隧道内
韩国VPS(落地,干净独立IP)
↓
目标网站
手机上使用的代理和节点管理的模块分别是box(sing-box内核)+Sub-Store。box是代理工具,主角;而Sub-Store在其中起到的作用主要就是修改节点信息,更新节点订阅,使我在今后换自建节点或机场的时候不需要去动sing-box的配置文件。
具体做法
Sub-Store 配置
订阅结构
订阅A:机场远程订阅链接
└── 加「脚本操作」→ 操作节点
订阅B:自建节点(本地导入)
Collection:合并 A + B
└── 生成一条链接填入 sing-box provider
订阅A处理
通过脚本处理订阅A的相应节点,留下延迟最低的两个香港节点。直接在订阅A中添加脚本,保存即可生效。
具体脚本如下:
const HK_COUNT = 2;
const HK_PATTERN = /港|hk|hongkong|hong.kong/i;
const EXCLUDE_PATTERN = /2x|3x|4x|5x|x2|x3|x4|x5|倍率/i;
async function operator(proxies = [], targetPlatform, context) {
const hkCandidates = proxies.filter(n =>
HK_PATTERN.test(n.name) && !EXCLUDE_PATTERN.test(n.name)
);
const result = hkCandidates.slice(0, HK_COUNT);
result.forEach((n, i) => {
n.name = `固定中转-HK-0${i + 1}`;
});
return result;
}
以后换机场:只改订阅A的链接,sing-box 配置永远不用动。
sing-box的链式代理结构
订阅链接
原版的sing-box内核是不支持订阅链接的格式的,我用的是reF1nd分支版本,支持导入订阅链接,特别方便(原版不支持这个实在是遗憾)。
{
"type": "remote",
"tag": "订阅名",
"url": "http://127.0.0.1:3000/download/collection/sub",
"exclude": "剩余流量|到期|重置|官网",
"user_agent": "sing-box",
"path": "./proxy_provider/provider1.json",
"download_detour": "🎯 本地直连"
}
不管订阅A和B怎么改,只要组合订阅的地址不变, 这个配置中的订阅链接就不需要动,一直是: “http://127.0.0.1:3000/download/collection/sub” ,方便吧?
链式代理
设置中转节点组
{
"type": "urltest",
"tag": "🛫 中转-自动选优",
"use_all_providers": true,
"include": "固定中转-",
......
}
具体实现
{
"type": "vless",
......
"flow": "xtls-rprx-vision",
"tls": {
"enabled": true,
"reality": { ... }
},
"detour": "🛫 中转-自动选优"
}
detour 是链式代理的核心字段,让连接先经过中转节点再到VPS。
其余配置略。
结论
经过一段时间的使用下来,这个效果明显好过直连VPS,晚高峰也可以流畅看视频。
什么?你问为什么不直接用机场??
OK,You got me。