向外访问网络行为次序随机的场景下 预设网络资源 预设替代命令
前言
现在我们来处理 次序随机的场景
典型例子就是 233脚本.
我们先在无预设命令的条件下, 执行一遍安装过程.
cd fake-curl-wget-sh-main source fake-curl-wget-v2.sh cd bash install-233.sh
然后分析日志.
需求
编辑 __fake_net_common.sh , 添加预设命令.
因为网络访问的次序是随机的, 所以我们只能从网络资源的特征入手.
我们要对
wget --no-check-certificate -t 3 -q -c https://github.com/233boy/xray/releases/latest/download/code.zip -O /tmp/tmp.dO84swIzMs/tmpsh
设置预设命令
cp /root/code.zip /tmp/tmp.dO84swIzMs/tmpsh
结合上一篇的 第几个参数 的经验 再问问GPT 怎么在shell脚本中实现匹配关键字.
得到
if printf '%s\n' "$@" | grep -qE '^http.*code\.zip$'; then # 有参数是 http开头 code.zip结尾 cp /root/code.zip "$8" has_preset=1 fi
同样的思路, 处理 xray-linux-64.zip, 处理 jq-linux-amd64
再来处理 wget --no-check-certificate -4 -qO- https://one.one.one.one/cdn-cgi/trace
我们要先判断 包含 one.one.one.one 这个特征, 现进行替换.
得到
if printf '%s\n' "$@" | grep -qF 'one.one.one.one'; then
# 有参数是 包含one.one.one.one
# 将 one.one.one.one 替换为 www.qualcomm.cn
new_args=()
for arg in "$@"; do
new_args+=("${arg//one.one.one.one/www.qualcomm.cn}")
done
# 如果命令是 curl 或 wget,在前面添加 real-
if [[ "$cmd" == "curl" || "$cmd" == "wget" ]]; then
eval "real-${cmd}" "${new_args[@]}"
else
eval "$cmd" "${new_args[@]}"
fi
has_preset=1
fi测试一下.
cd fake-curl-wget-sh-main source fake-curl-wget-v2.sh cd bash install-233.sh
搞定!
上传 Github
========
后记
如果你有100台有网络问题的VPS, 或者你有一些有网络问题的客户.
你把现在 /root/ 目录下的所有文件和子目录打包压缩包.

在每台VPS上解压, 执行:
unzip xxx.zip cd fake-curl-wget-sh-main source fake-curl-wget-v2.sh cd bash install-233.sh
就行了.
========

