qin2dim / v2rss Goto Github PK
View Code? Open in Web Editor NEW:rocket: 采集|免费|优质|的-订?阅<;
License: GNU General Public License v3.0
:rocket: 采集|免费|优质|的-订?阅<;
License: GNU General Public License v3.0
用于项目演示的 Windows PaneL 后端服务迁移,预计2021/09/27 00:00 前以新的发行客户端重新上线,其间所有终端服务权限锁死,不可使用。
描述您遇到的问题
对 bug 的清晰而简洁的描述。
如何重现问题
把你遇到的问题的发生步骤替换掉下面的内容:
期待修复的效果
清晰而简洁地描述您期望的修复效果。
相关截图
若有必要,可以用相关截图来增加信息浓度。
环境版本说明
附加内容
添加您认为有必要补充的内容。
又挂了?
为什么更新不了最新版本
问题描述
使用Selenium处理滑动验证。当Selenium完整渲染页面、填入必要信息并加载拼图图像后,浏览器有几率假死。具体表现为,不触发任何类型Exception异常,使用TimeoutException
无法捕捉异常,行为阻塞线程,浏览器不会自动关闭。
上述问题导致协程内的异常捕获方案无法正常执行(如超时关闭,刷新网页,窗口选定等等)。
上述问题可导致线程阻塞,使用诸如schedule
等轻量化定时库会出现任务停滞等严重问题。意味着这一个浏览器动作卡着了,很可能导致后续所有预订的线程内定时任务都无法正常进行。
尝试方案
在关键步骤前后加入元素断言,在协程内判断驱动是否假死。并在当前函数的局部空间内实现通信日志的返回(return
或yield
机制),立即释放资源或尝试接入异常捕获措施。
问题描述
使用Selenium渲染Chrome,某些意外操作引发的Exception异常导致Chrome进程游离。
尝试方案(已实现)
在多接口调用表层加入类似loguru catch
方案,捕获异常栈追踪日志,使得Driver
最终执行quit()
而正常释放。此方法在某些场景下可用with
代替。
# 实例代码
@logger.catch()
def interface(url:str,options:ChromeOptions) -> None:
api = Chrome(options=options)
api.get(url)
try:
action_1(api)
action_2(api)
...
except WebDriverException as e:
loger.exception(e)
except Exception as e:
loger.error(e)
finally:
api.quit()
发起一次向活跃订阅池的过时订阅清洗
任务。
订阅入池时会被“人为”标注过期时间(expiration time),此时间点严格对齐订阅源提供的免费使用时长。
执行overdue
时存在预清洗
操作,既若设定预清洗时长(pre-cleaning time),则清洗目标的过期时间
与任务发起时间点(当前时间
)的距离小于或等于X时就会被清除,而非是过期时间小于或等于当前时间。预清洗参数让订阅分发更加科学,杜绝用户端”刚拿到手“就过期的极端情况。
Scaffold overdue pre-cleaning time
预清洗时长默认为6小时,既当任务发起时,可用时长不足6小时的链接将被剔除。
订阅类型
及对应类型的存活数量
。在main.py
所在目录下运行以下编译指令
python main.py overdue
或根据具体情况运行,既确保运行的python版本 py >= 3.6
python3 main.py overdue
V2Ray雲彩姬
Clash一键订阅脚本 | Clash for Windows
ClashConfig
~.yaml
配置文件;URL Scheme
自启Clash for Windows
并拉取配置文件;Terminal
中直接运行脚本,需要先手动开启Clash
;py3
运行;Clash for Windows
,测试版本为v 0.15.8
(参考);Clash for Windows
的基本操作并具备一定的故障排查能力;issue
下留言(提供可靠的运行日志能够有效的解决您的问题);开启与main.py
同根的Terminal
,随后键入:
python main.py ash
uTools
为例)搭配类似
uTools
等具备QuickComment
模组插件的工具使用(更加2077的解决方案)
QuickComment
并进入捷径编辑器此处的命令行视为直接使用cmd
后输入的指令
,以作者所使用的环境为例,没有设置全局环境变量,运行方案1
中的指令无法直接执行脚本(请确保执行环境为开发项目所使用的环境,否则可能会缺少某些第三方库)
参考指令如下:
Clash
进程,以免不必要的并行bug;Anaconda
运行环境,activate [env name]
;Python
编译脚本,Python [main.py绝对路径] ash
;tg群的邀请链接失效了
今天使用最新的6.0部署,但是在使用router命令的时候,无法启动
根据具体需求更新技术文档#38
更多信息请移步至分支项目 SSPanel-Mining
采集、清洗、分类、存储暴露在公网上的sspanel-uim
站点
超实用的科学上网攻略:最强翻墙指南
V2rayc_spider 缓冲数据库被击穿,链接池被瞬间清空,导致大量请求服务被拒绝而引发的一系列表征问题如下:
(1)客户端提示版本更新等有关问题;
(2)点击 获取订阅链接 后无法显示下一层界面;
GeventScheduler 运行节拍陷入紊乱,且短期内无法通过预设备案完成“自愈”,进而导致 订阅清洗服务,采集服务,订阅分发服务等一系列定时任务无法完成信息同步而引发的一系列表征问题如下:
(1)客户端提示版本更新等有关问题;
(2)节点显示在有效期内,而实际已过期/失效/不可用;
v2rayc_spider 或 kernel-server 服务关闭,导致 panel 发起的请求指向空IP或无效域名而引发的一系列表征问题如下:
(1)客户端提示版本更新等有关问题;
(2)软件打开后弹出提示 Windows: failed to execute script main
,此时也有可能是本机网络状况不佳;
以上问题表示系统相应的服务正处于故障级运行状态,请(有能力的同学)通过电报群及时联系作者修复;
kernel-server v5.5.2 (Public) 及更高版本系统可实现“服务自愈”,根除了先前进程游离引发的恶性bug。目前依然能引发如上类似问题的仅有人为因素(如:“服务器数据迁移”“服务器重启”“核心服务人为关停”)或因版本更新引入新组件后带来的不确定性连锁反应;
开源Panel仅做演示用途,请不要提出作者“无法实现”的功能需求;
v2ray节点18日、19日、20日(今天)都不能用了
软件获取不到呢
windows10:failed to execute script main
近期尝试上线ice-breaker
的 协同订阅
子模块 ,主要特征为大幅度拉抬 demo 订阅的可用流量以及节点速度,可用时长也许不变。
ps: 代码暂不开源(流畅运行完整(峰值)服务需要至少 8C16G 的硬件配置或包含多个 prod 的基础设施。待测试稳定后会逐步开放降频代码)。
采集结果会分发到 panel 中,访客可通过本项目 release demo 查看。
有关云彩姬(panel)的介绍详见 技术文档 ,了解软体获取方法以及功能介绍。
有关云彩姬(public-service)的介绍详见 项目仓库,了解服务部署方法。
📌《V2RSS云彩姬最佳实践》 原文链接 。
📌《v2rayN订阅更新最佳实践》 推荐阅读,了解常见的节点测速方案之间的区别、推荐的节点优选步骤以及关于”代理速度“常见的边缘问题。
如上文issue
中提到的bug
归根结底均由采集服务的指令缓存堆积
引发。
作者先前也编写了一些小脚本尝试解决问题(减少临床病发率,但治标不治本)。本着“当程序以自己意想不到的方式正常运行時就不要再轻易地改动代码”的原则,这个远古遗留问题一直没有得到很好的处理。
现在总结日志发现之前脚本能“治病”主要是作者利用服务器的闲置资源,将本项目分散在性能卓越的各个集群节点上,几个G的内存变动完全察觉不到,而脚本起到的作用仅仅是允许任务运行足够长的时间(也就是毫无作用 🐱 )。然而当架构调整后,本项目采集器部署在一台1xCPU 2GRAM
的学生机上,结果就是发挥非常不稳定!🐶只要有一个实例运行阻塞,之后所有的定时器任务都会发出skip next run
的使用警告,因为这个引起定时器阻塞的实例大概率是不会自然消解的。
指令缓存堆积
的根本原因是:Selenium控制的chromedriver
运行实体总会以作者意想不到的方式游离。
程序体中不存在死循环,反而每一步都设置了超时销毁,然而实际情况是异常实例的窗口打开后既不退出也不作业,就停在那。当然作者认为也可能是由greenlet并发任务+scheduler定时器+selenium结合所引发的有趣化学反应,既chromedriver
作为一个运行实体,有一定概率在运行的系统中被各种并行指令乱杀。
当然老老实实for loop
运行实例会很大程度上避免这种情况。但是21世纪了……
所以我们的优化目标是:更高,更快,更强!采集器不仅要快,还要稳。
发现问题后解决问题的思路就比较明确了。大体是:引用经典”关单任务“的思路,从更高层的服务杀掉底层游离的进程。这个检查服务的粒度应该足够细致,能够渗透/监控chromedriver在环境中的的每一个行为细节(当然现阶段需求主要是发现实体游离
)。
体现在代码里仅仅是将任务调度原子化并分散到定时器的各个方法中,仅需改动不到50行代码既能实现这个解决方案(当然测试后会逐渐写厚)。
感谢体验panel
遇到问题积极反馈的小伙men,也欢迎具备一定debug
能力的小伙伴来跑一跑代码,帮助完善“生态”。
能否提供一个mac客户端或者web端方便使用。
本仓库保持落后于开发工程半年的进度更新。下次更新我会一次性将缺失的进度补全,并更新使用文档。
为现有模拟登陆的常规阻碍提供解决方案
阻碍策略
,并一次性开源音频降噪增齿
,英文语音识别转录
,图像降噪
,中文语义理解
,图像识别
以及Selenium模拟拖拽、点击、匿名伪装等一系列增效工具箱插件;armour
是一系列针对目前常见的 sspanel 验证方案的对抗组件。包含如下模块:
icebreaker
是一系列能够从「延拓可用流量」「延长剩余时间」「优化通信效率」等多个维度提升订阅质量的插件集合。
icebreaker-synergy
协同生产模式,延拓可用流量icebreaker-prism
棱镜辐射模式,延长剩余时间(闭源)inline-relayer
是一个能够自主萃取代理节点对象并自由重组配置文件,最后输出 Clash URL-Scheme
的内联中继系统。客户端可实现自主嗅探并自动打开 Clash
拉取订阅对象。
gardener-ash
园丁系统(闭源)src/Logicer/cluster/slavers/actions.py
中存放了当前版本程序的募集机场队列,该模块的__entropy__
列表为当前执行的任务队列,其存放的元素为“任务别名”,指向唯一标识的特征抽象描述
。actions.py
中。欢迎大家在此处留言可用机场的注册网址。指标如下:
基于STAFF编写(可参考上述文件中记录的机场网址,如https://机场域名/staff
可正常访问);
提供免费节点;
提供至少1日的试用时长以及合理的(1:1 2G或以上)试用流量;
未使用DDoS防御(如常见的Cloudflare引流)与堡垒机;
为减少滥用风险,V2RSS云彩姬上游产出将转为闭源状态(也即 action 不再更新),采集器代码保持落后于开发版半年的进度稳定推送。也请早已熟悉 V2RayCloudSpider 业务逻辑的各路高玩不要将自己手动搜集/编排的 action 分享给其他人,保持自用的需求量运行程序。
您好!
看了您的项目,很有帮助。有个问题想咨询啊您:
如果想在本地windows二次开发本项目的话,需要配置哪些地方呢?如何配置呢?也需要像https://shimo.im/docs/5bqnroJYDbU4rGqy/read
这里所写的,把所有服务安装一遍吗?
可以也写个配置教程吗?
修复订阅池无限溢出问题
重写项目技术文档 #58
先前的技术文档年久失修,已无参考价值。
涵盖项目的下载安装介绍,examples 运行示例介绍,脚手架指令介绍,链接采集与获取常用方法介绍,应用部署最佳实践等。
开发脚手架指令 install
基于主流操作系统(Windows/MacOS/Ubuntu18.04+)的指令集编写第三方驱动自动下载适配脚本。
制作基于 pywebio
编写的 aff
协同注册子模块(Optional)
该模块继承云彩姬自带的 synergy
协同模式以及 armor
人机对抗模组,能够以极高的并发率批量生成邀请用户实体并完成实例注册。与其他开源的脚本项目不同,本模块内联 armor
应用模组,能够穿透几乎所有的基于模式产出的人机对抗验证。
该模块提供一个简洁的 web
面板,仅有一个 Input 元素以及一个 Button 元素。填入带有 aff
的分享链接则启动协同注册任务;填入服务注册链接则根据模式自动生成实例摘要信息并启动采集器任务获取订阅。
基于 Playwright
修改部分代码提高系统性能(Optional)
节点显示还有3-5天的有效时间,可是测试后实际已经过期,请大神解决时间判断的问题。有的节点显示还有半个月,可是全是过期的,不知时间为什么判断不准?
开源版本代码做了数据脱敏,重心放在了后端功能的优化上。(意思是各种花里胡哨的链接分发接口并没有开源)
在viewer/myapp/app.py
中找到admin-get-subs
这个接口函数,修改路由规则。项目部署后访问http://ip:port/router
既可获取池内相应类型(v2ray/ssr/...)的订阅
json
,提取subscribe
的值既可获取订阅(utf8)确保您的源码已更新至v_5.1.8-beta
或更高版本
在Terminal
中输入panel
指令呼出前端面板进而执行与订阅获取有关的操作。
(更新中…)
2~4 工作模式的转换会强制共享本机算力,分担群体“上链”的资源消耗。(因发行工程量较大暂时无法开源)
proxypool 模式
,允许 Panel 客户端拉取开源订阅,一键打开 Clash 并下载配置;优选IP模块
。Panel 将具备「IP优选」以及「CDN 复用」的能力(仅 Windows 可用)。此时终端代理将享有极为夸张的代理加速效果;园丁系统
。Panel 将具备基于本机环境采集、优选开源订阅节点的能力。此时 Panel 本体将切换工作模式,终端程序可获取优质可靠的代理节点;破冰船永久订阅系统
。Panel 将具备从服务堆拉取永久订阅的能力。此时 Panel 本体将切换工作模式,具备一定程度的流量反射能力,根据不同的使用场景实现“坏点自动切换”“忙时分流”“加速访问”“代理维护”等智能驻台功能。armour
是一系列针对目前常见的sspanel验证方案的对抗组件。包含如下模块:
为什么要分个单独的前端exe,而不直接搞个订阅接口?
例如v2ray订阅地址直接填写接口地址.后端吧订阅链接内容传给用户
这不很方便么~
armour
是一系列针对目前常见的sspanel验证方案的对抗组件。包含如下模块:
Scaffold 指令是高层封装的「云彩姬」后端服务API。通由简短的python main.py [scaffold]
既可启动主要的服务功能。
[注意事项]
以 CentOS7 为例,假设已拉取项目文件,并已同步项目依赖 requirements,当前目录为 ./V2RaycSpider[version]
"""
V2RaycSpider1125
|————examples
|————src
|————main.py
|————requirements.txt
"""
运行 scaffold
编译指令。所有与通信有关的指令都支持协程异步调用。
python main.py [scaffold commands]
# or: python3 main.py [scaffold commands]
scaffold server
脚手架读入配置文件,并根据相关配置依次启动 「网关」「协程定时器」 等核心服务。
python main.py server
其他单步执行指令详见 技术文档,标有 [Run in OS] 的指令仅在对应操作系统下正常运行。
2~4工作模式的转换会强制共享本机算力,分担群体“上链”的资源消耗。(因发行工程量较大暂时无法开源)
proxypool
,允许panel客户端拉取开源订阅,一键打开Clash并下载配置;优选IP模块
。panel将具备IP优选
以及CDN套用
的能力(仅Windows可用)。此时终端代理将享有极为夸张的代理加速效果;园丁系统
。panel将具备基于本机环境采集、优选开源订阅节点的能力。此时panel本体将切换工作模式。终端程序可获取“优质免费”的代理节点;破冰船永久订阅系统
。panel将具备从服务堆拉取永久订阅的能力。此时panel本体将切换工作模式,可实现一定程度的网络代理功能,根据不同的使用场景实现“坏点自动切换”“忙时分流”“加速访问”“代理维护”等智能驻台功能。订阅类型后面跟着一串GUID样子的字符串 这个是否替换成url更加直观 更加方便用户选择
我使用了一段时间 想优先选择之前使用的provider
失效订阅剔除
任务。解析订阅链接指向的节点服务器摘要信息
,通过简单的决策流程判断节点是否可用,进而决定链接的去留。满足以下条件的实例将被剔除。
审查链接(类型)
以及链接所指向的节点服务器摘要信息
,失效链接将被直接剔除。在main.py
所在目录下运行以下编译指令
python main.py decouple
或根据具体情况运行,既确保运行的python版本 py >= 3.6
python3 main.py decouple
最新版本始终提示升级,使用4.5.1 得到如下error
HTTPSConnectionPool(host='t.qinse.top', port=443): Max retries exceeded with url: /subscribe/version_manager.txt (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1123)')))
Traceback (most recent call last):
File "urllib3\connectionpool.py", line 670, in urlopen
File "urllib3\connectionpool.py", line 381, in _make_request
File "urllib3\connectionpool.py", line 978, in _validate_conn
File "urllib3\connection.py", line 362, in connect
File "urllib3\util\ssl_.py", line 384, in ssl_wrap_socket
File "ssl.py", line 500, in wrap_socket
File "ssl.py", line 1040, in _create
File "ssl.py", line 1309, in do_handshake
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1123)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "requests\adapters.py", line 439, in send
File "urllib3\connectionpool.py", line 726, in urlopen
File "urllib3\util\retry.py", line 439, in increment
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='t.qinse.top', port=443): Max retries exceeded with url: /subscribe/version_manager.txt (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1123)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "MiddleKey\version_IO.py", line 105, in run
File "MiddleKey\version_IO.py", line 181, in get_server_version
File "requests\api.py", line 76, in get
File "requests\api.py", line 61, in request
File "requests\sessions.py", line 530, in request
File "requests\sessions.py", line 643, in send
File "requests\adapters.py", line 514, in send
requests.exceptions.SSLError: HTTPSConnectionPool(host='t.qinse.top', port=443): Max retries exceeded with url: /subscribe/version_manager.txt (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: certificate has expired (_ssl.c:1123)')))
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.