Open Purewhiter opened 1 year ago
+1 有没有手动更新的方法先顶一顶
用winscp登录后台,在/usr/share/bypass
下的 downbin
文件中看到:
#!/bin/sh
log(){
echo "$(date +'%Y-%m-%d %H:%M:%S') $*" >> /var/log/bypass.log
}
K=/tmp/bypass/bin
kill -9 $(ps -w | grep $K | grep -v grep | awk '{print$1}') 2>/dev/null
mkdir -p $K
c=0
while ! curl -m 18 -Lfso $K/xray.tar.gz http://static.supes.top/mipsel_24kc/xray.tar.gz;do
[ $c -eq 4 ] && {
log "xray core download failed."
exit 1
} || let c++
sleep 2
done
log "xray core download successful."
tar -zxf $K/xray.tar.gz -C $K && rm -rf $K/xray.tar.gz
chmod +x $K/xray
ln -s $K/xray /usr/bin/xray 2>/dev/null
[ $1 = 0 ] && /etc/init.d/bypass start &
手动下载链接http://static.supes.top/mipsel_24kc/xray.tar.gz
,压缩包大小为6M,而路径/tmp/bypass/bin
中有个900K的xray.tar.gz,下载中断了
手动执行downbin文件中的命令可以解决bypass无法运行的问题,但是重启后估计还是要完蛋! 只能寄望于大佬早日解决此问题了
在腾讯镜像服务器中找到一个xray core的安装包, ipk文件 可以试试下面的命令:
#!/bin/sh
cd /tmp
rm -rf /tmp/bypass/bin/xray.tar.gz
wget https://mirrors.cloud.tencent.com/openwrt/releases/packages-22.03/mipsel_24kc/packages/xray-core_1.7.0-1_mipsel_24kc.ipk
tar -zxvf xray-core_1.7.0-1_mipsel_24kc.ipk ./data.tar.gz && rm -rf xray-core_1.7.0-1_mipsel_24kc.ipk
tar -zxvf data.tar.gz ./usr/bin/xray && rm -rf ./data.tar.gz
mv -f /tmp/usr/bin/xray /tmp/bypass/bin
chmod +x /tmp/bypass/bin/xray
ln -s /tmp/bypass/bin/xray /usr/bin/xray 2>/dev/null
应该是终极自己可控的解决办法了
从yichya/openwrt-xray项目下载mipsel_24kc架构的预编译ipk文件 我选的1.64版本,1.65+体积增大明显就放弃了
用上面一条回复的方法解压,上传路由器赋权测试没有问题,在路由器用tar -zcvf myray.tar.gz xray
压缩得到xray的压缩包
然后放到国内的代码托管平台上
修改/usr/share/bypass/downbin
文件中的下载链接为自己的myray.tar.gz地址, 完工!
分享打包好的myray.tar.gz, 可以跳过前面的下载打包步骤, 直接上传自己熟悉的平台即可 蓝奏云myray 密码:fghb
参考以上方法得出此故障,估计是核心文件下载的地址的问题“http://static.supes.top/mipsel_24kc/xray.tar.gz”这个地址做了跳转, 可选择手动更新新注释掉代码,或者下载核心文件xray.tar.gz, 上传到服务器替换路由配置/usr/share/bypass下的 downbin文件里的地址即可。
参考以上的讨论 改写了下/usr/share/bypass/downbin
文件,
#!/bin/sh
log(){
echo "$(date +'%Y-%m-%d %H:%M:%S') $*" >> /var/log/bypass.log
}
K=/tmp/bypass/bin
kill -9 $(ps -w | grep $K | grep -v grep | awk '{print$1}') 2>/dev/null
mkdir -p $K
c=0
while ! curl -m 18 -Lfso $K/xray-core.ipk https://mirrors.cloud.tencent.com/openwrt/releases/packages-22.03/mipsel_24kc/packages/xray-core_1.7.0-1_mipsel_24kc.ipk;do
[ $c -eq 4 ] && {
log "xray core download failed."
exit 1
} || let c++
sleep 2
done
log "xray core download successful."
tar -zxf $K/xray-core.ipk ./data.tar.gz -C $K/ && rm -rf $K/xray-core.ipk
tar -zxf $K/data.tar.gz ./usr/bin/xray -C $K/ && rm -rf $K/data.tar.gz
mv $K/usr/bin/xray $K && rm -rf $K/usr/
chmod +x $K/xray
ln -s $K/xray /usr/bin/xray 2>/dev/null
log "xray core bin file successful."
[ $1 = 0 ] && /etc/init.d/bypass start &
xray-core_1.7.0-1_mipsel_24kc.ipk的文件内容是这样的
xray-core.ipk
│ control.tar.gz
│ debian-binary
└─data.tar.gz
├─etc
├─lib
└─usr
└─bin
xray <----------
可能网址被干扰了,挂另一个路由做前置后可以成功下载xray
参考以上的讨论 改写了下
/usr/share/bypass/downbin
文件,#!/bin/sh log(){ echo "$(date +'%Y-%m-%d %H:%M:%S') $*" >> /var/log/bypass.log } K=/tmp/bypass/bin kill -9 $(ps -w | grep $K | grep -v grep | awk '{print$1}') 2>/dev/null mkdir -p $K c=0 while ! curl -m 18 -Lfso $K/xray-core.ipk https://mirrors.cloud.tencent.com/openwrt/releases/packages-22.03/mipsel_24kc/packages/xray-core_1.7.0-1_mipsel_24kc.ipk;do [ $c -eq 4 ] && { log "xray core download failed." exit 1 } || let c++ sleep 2 done log "xray core download successful." tar -zxf $K/xray-core.ipk ./data.tar.gz -C $K/ && rm -rf $K/xray-core.ipk tar -zxf $K/data.tar.gz ./usr/bin/xray -C $K/ && rm -rf $K/data.tar.gz mv $K/usr/bin/xray $K && rm -rf $K/usr/ chmod +x $K/xray ln -s $K/xray /usr/bin/xray 2>/dev/null log "xray core bin file successful." [ $1 = 0 ] && /etc/init.d/bypass start &
xray-core_1.7.0-1_mipsel_24kc.ipk的文件内容是这样的
xray-core.ipk │ control.tar.gz │ debian-binary └─data.tar.gz ├─etc ├─lib └─usr └─bin xray <----------
感谢分享 不过腾讯这镜像有点狗 只保留最新版本了 目前这个版本已经404了 需要替换为最新版的地址
我发现修改/usr/share/bypass/downbin中下载时间可以解决,部分网络下载慢指定时间没下载下来导致出错 curl -m 18和curl -m 15,适当加长,我改成curl -m 36和curl -m 30就没问题了