ssrp机场订阅出现“获取内容为空”的解决方法

ssrplus机场订阅更新失败或中国大陆ip段更新失败的解决方法

Openwrt路由器使用ssrplus或passwall科学上网时,机场的订阅地址经常出现无法订阅的情况,提示“更新失败”、“获取内容为空”等等提示,有时又可以订阅有时又不行。直接在浏览器上访问订阅地址是可以访问的。

排除掉机场订阅地址不能访问的情况外,间隙性不能访问主要和DNS相关。大部分机场订阅地址都挂了CDN Cloudflare,这导致机场订阅地址含有ipv4和ipv6两个地址,且目前国内对Cloudflare阻断严重,机场订阅地址会间隙性不能访问。

ssrplus中 服务器节点订阅与管理 开启了 通过代理更新 ,如果机场订阅地址解析到了ipv6且OPENWRT的DNS服务中没有完全屏蔽ipv6解析(如各种dns前置解析软件可以对国内网站解析到ipv6),那么翻墙软件将用路由器本机的ipv6地址进行连接,而SSRP等并不支持ipv6,导致访问不了网站,订阅机场出现的结果将为“获取内容为空”。可在路由器中用ping 订阅地址 来看是否能连接上。如果连不上可以用ping -4 订阅地址来看是否连接的上。ping -4 能ping通,说明订阅地址没问题,我们只需修改代码即可让ssrplus订阅成功。如果关闭通过代理更新 路由器将直接通过ipv6和机场订阅地址连接,有可能会连上。

解决方法很简单,只要在ssrp中下载订阅内容的代码wget 后加个-4即可解决,也就是只用ipv4访问。可根据下面路径手工修改或在ssh中输入下列命令:

#只用ipv4地址订阅及更新
sed -i "s/wget -q/wget -4 -q/" /usr/share/shadowsocksr/subscribe.lua
sed -i "s/wget --no-check-certificate/wget -4 --no-check-certificate/" /usr/share/shadowsocksr/update.lua

同理,路由器里其他需要更新配置的的应用如passwall等,只要找到更新的代码文件也如此操作即可。

另外ssrplus默认设置凌晨2点更新国内IP数据库、GFW列表、订阅。由于大量终端2点同时更新,有可能导致更新服务器过载,特别是ispip.clang.cn这个国内ip数据库网站,导致下载不下来,ssrp更新日志就会提示更新错误。解决方法就是更换其他时间更新。

如更换为非整点下载,每天N点28分下载,可以用下列代码:

sed -i 's/0 \$(uci_get_by_type/28 \$(uci_get_by_type/' /etc/init.d/shadowsocksr

 

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/net/1498.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注