向外访问网络行为次序固定的场景下 预设网络资源 预设替代命令
前言
对于这种向外访问网络行为次序固定的场景下
我们可以预设网络资源 预设替代命令
预设网络资源
刚好利用上一篇我们操作过的环境.
* 如果你是从头来的话, 基本上就是把上一篇教程操作一遍.
预设替代命令
打开上一篇的操作日志.
参考上一篇操作过程中我们输入的替代命令, 设置到 __fake_net_common.sh 中
如, 序号 1
序号 3
序号 5
我们遇到了一个随机字符的问题, 不能写死预设命令. 我们可以用指定第几个参数的方法.
问问GPT
分析下面这样的命令curl -L -q --retry 5 --retry-delay 10 --retry-max-time 60 -x '' -sSfLo /tmp/tmp.eNF5Sld6Wm -H Accept:\ application/vnd.github.v3+json https://api.github.com/repos/XTLS/Xray-core/releases/latest"$cmd" 是 curl"$@" 是curl后面所有的参数我需要用指定第几个参数的方法 提取其中的 /tmp/tmp.eNF5Sld6Wm
GPT帮我数了数, 用 "${13}" 的方法引用.
__fake_net_common.sh 修改完后.
试试
source fake-curl-wget-v2.shbash install.sh
有问题, 会卡死.
检查了一下, 是因为在 case 1) 的里面写了 curl. 这里并没有使用系统原本的curl, 而是调用了假的curl.
我们借用之前的经验.
先去掉假的PATH, 执行curl之后, 再恢复假的PATH.
再试试
source fake-curl-wget-v2.shbash install.sh
还是有问题. 在 cp /root/xxx yyy 的部分, 报错非法参数.
那我们就把参数 echo 出来.
用这种方式调试完, 就正常了.
小优化
在 /tmp/fakebin/ 下面保存 real-curl 和 real-wget, 用来调用真正的系统 curl 和 wget
内容很简单, 就是
/usr/bin/curl "$@"
和
/usr/bin/wget "$@"
上传 Github
https://github.com/crazypeace/fake-curl-wget-sh
========
后记
如果你有100台有网络问题的VPS, 或者你有一些有网络问题的客户.
你把现在 /root/ 目录下的所有文件和子目录打包压缩包.
在每台VPS上解压, 执行:
unzip xxx.zipcd fake-curl-wget-sh-mainsource fake-curl-wget-v2.shcdbash install-r.sh
就行了.







评论
发表评论