XX-net/XX-Net

有个想法,想精简一下xx-net,只保留gae模块,和自动扫描。

yeahwu opened this issue · 73 comments

具体是这样的,俺fork一下xx,大家到上面做减法,比如:
1:去掉web ui
2:去掉php,x-tuunel
3:去掉pac
4:去掉ID上传模块
5:精简ip段
6:各项参数优化
等等
反正就是搞出来给geek用的,效率之上,累赘去掉
吖,大家以为如何?反正俺就是瞎想的
@Cat7373 @simonasd @linhua55 @xxnet @xyuanmu ……

0.0
我觉得WebUI还是蛮好用的- -
GAE上传可以单独一个分支放,而不是默认下载- -

xxnet commented

​你之需要gae_proxy/local 目录就可以了,然后稍微修改下ini文件,就可以关掉pac。
精简ip段这个就自己修改对应文件。
这个模块一直保持可以独立运行。

如果其他目录删除,那需要把python27/1.0/lib/noarch 目录下的几个库文件拷贝过去就好了。

其实俺感觉熟悉gae的人,完全不用看webui的,虽然web很人性化
id上传嘛,gae老手自然想得到别的办法,
减掉这些,主要是体现和xx的差异,把效率突出出来。

在我的电脑上XX占用的CPU可以忽略不计,内存20MB- -
感觉已经很低了- -

xxnet commented

​XX-Net 启动耗时,是在加载OpenSSL库上,新版的OpenSSL库采用python ctypes去动态解析C的符号,非常耗时。

而退出时间,是在等待扫描、连接线程超时结束,此处可以优化,不过暂时没有研究出特别有效和完善的策略。

懂鸟,谢x大详解

李世石快哭了,又输给AlphaGo鸟。强烈要求开源,哈哈

如果其他目录删除,那需要把python27/1.0/lib/noarch 目录下的几个库文件拷贝过去就好了。

@xxnet 如果是在 linux 自带python 环境下,也需要 noarch 目录下的几个库文件拷贝过去么?还是只要 gae_proxy/local 目录就可以了?

xxnet commented

在 2016年3月10日 下午4:46,天朝猪 notifications@github.com写道:

如果其他目录删除,那需要把python27/1.0/lib/noarch 目录下的几个库文件拷贝过去就好了。

@xxnet https://github.com/xxnet 如果是在 linux 自带python 环境下,也需要 noarch
目录下的几个库文件拷贝过去么?还是只要 gae_proxy/local 目录就可以了?

需要把noarch里的几个文件拷贝过去,那里有几个库文件是自己写的,因为多个模块用到了,比如xlog,simple_http_server,不过越来越觉得没有自己重写的必要了,标准库提供了足够的灵活性。

我也觉得能用官方库的话,更好。
那我试试精简一下看看效果怎么样。

@xxnet 在 linux 系统下面,我把 gae_proxy/local 下面的所有文件复制到了一个新文件夹 xx,然后又复制了 python27/1.0/lib/noarch 下面的 xlog.py,simple_http_server.py,simple_http_client.py,utils.py,socks.py 到 xx 文件夹,在 xx 文件下面用 python proxy.py 可以正常运行,http 没问题,https 不能访问,我看了下没有生成 CA.cet 是不是少复制了什么库文件?但是又可以正常运行,而且 data 自定义配置的功能丢失了,运行的时候没有自动生成 data,把原来备份的 data 复制到 xx 下面也没有效果,怎么保留 data/gae_proxy 下面 good_ip.txt,manual.ini,scan_ip.log 这3个文件的自定义配置和扫描日志功能?

@jzp820927 刚刚试着精简了下,data默认在 上级/上级/ 生成,如果想改到本目录可以修改下面四个文件,删掉 os.pardir, os.pardir, 即可:
null
还有一个文件,刚才查漏了:
null

初步实现的Windows版本:proxy.zip
测试平台:win7/winXP
python版本:2.7.8(提取自GoAgent)
data目录在根目录生成。

@xyuanmu 兄,你咋这么能干呢!赶紧测试先。

xp 也测试通过
不知道是不是openssl版本的问题,python同样是2.7.8版本,xx-net CPU使用率要比GoAgent低好多。

哎呦,这个屌,这个屌爆鸟,俺就喜欢这样的,目前运行良好。

@xyuanmu pull到你的git上去吧!大家可以去把别的平台完善一下嘛。

@yeahwu 为了减小体积和文件数量,我把所有的py都放进压缩包里了,多平台我觉得还是分不同的版本比较妥,Linux平台自带Python体积可以做得更小。

@xyuanmu 赶脚只需要win和linux双平台就好了,没办法嘛,俺们面对的是geek,小众嘛,
放到俺群里去了哦,让大家也试试?

@yeahwu IP段是 XX-Net 的,没改,扫描线程是默认的50,可以自己添加 manual.ini

[google_ip]
max_scan_ip_thread_num = 50

哦,刚看了一下 good ip改为1000,线程改为30,渣机没办法,还有你的私货放出来吧,ip段,不要多,精就好。

@yeahwu 上传新版本了,链接还是刚才那个链接。更新python到2.7.11,数据储存到data目录而不是二级目录gae_proxy,IP段用的48W版本和checkiptools同步。

在试用,目前良好,ip段也看了,哈哈,这次没保留。

还有一个问题,扫描过程中,可以设置延时吗?看好多扫出来的ip延时厉害,延时超1000的基本也没法用鸟哇。

@xyuanmu 就盼你出个最简化的 Linux 版本,可以精简很多 py库文件,估计总体大小能最简到 几百KB。

xxnet commented

​精简py 库,可以用coverage 工具跑一遍,然后只包含那些覆盖到的文件,库文件就可以删除一大批。
进一步的精简,理论上可以把函数内容分析一遍,没有跑过的函数都删除,不过这还没有找到工具支持。

其实linux上xx-net表现就良好鸟,挺溜。

@xyuanmu 其实你这里面还有几个文件是可以删除的,
good ip.txt
goodipv6.txt
proxy.pac
addto-startup.js
这几个文件,俺看也没什么卵用。

xxnet commented

​3.x 改版,有一个想法,想把各个模块分成不同的github项目,在需要时才去下载对应的模块。
再另外提供一个完整版本,给需要的人。

@xxnet 必须支持,要不一锅粥,赶脚是糊的。wiki交给俺鸟,其它的你忙。

目前优化到刚刚720p,目标是1080p,@xyuanmu兄加油!

@xxnet 早就盼望模块化了,把核心和模块独立开来,这样对不用的系统,都挺有用的

原版Goagent可以看xvideos,xx-net就不行,那个参数有问题

@wangfeng87 俺真想截图给你看下,谁说xx不行的。
要看xvideos,并发数稍微调高点,效果更好。

哎,李师师又要输鸟,阿尔法狗看来可以上十段鸟。首先,李师师这个发型就输鸟

good ip.txt
goodipv6.txt
这两个是可以去掉,proxy.pac不行,第一份生成的时候需要,可以精简里面的内容;addto-startup.js用来添加开机启动项的,从GoAgent提取过来的。

@xyuanmu 有个想法,去掉pac,去掉cmd窗口,然后goagent.exe做到像lantren菜单栏一样,只要一个退出键。或者直接点击图标退出。
为毛俺的想法总是这么天马行空?呵呵

现在运行基本上没问题,就是 py 文件一大堆,不晓得怎么像你这样,放到一个 zip 文件中。

@yeahwu 呵呵,这个俺可搞不定。

今天精简的成果,win下将库文件压缩到2.03M,估计不能再减了,再减就要动很多代码了:
win: proxy.zip
linux: proxy-linux.zip

@jzp820927 也就只有win下可以将py放到压缩包里,linux还是要散的,不过文件少很多。

我觉得可以做一个定制界面,所有功能模块化,你需要什么功能进行打钩,然后点击下载。@yeahwu

@xyuanmu 刚试了下,速度稳定720p,这边把并发数调低点反而速度好了点,默认的8是不是太高

@xyuanmu windows下好像不能生成pac文件,新版的,是不是动刀子动得过鸟?

可以啊,你没设置pac模式吧

没有,不过刚试了一下,data文件夹没有发现pac文件。然后我记得pac文件有几百kb呀!

@xyuanmu 兄,你这压缩包是怎么搞得,俺想解包改里面的一个py文件,再压缩不管用,启动不鸟

@xyuanmu 问个问题,linux 下为什么每个 py 文件都会自动生成一个同名的 pyc 文件?我把所有 pyc 文件全删了,下次运行又会自动全部生成。goagent 不会生成这种文件,一直没搞懂,这文件是干嘛用的?

编译缓存,应该可以在python里调。。

@jzp820927 因为GoAgent的 proxy.py 里加了句 sys.dont_write_bytecode = True,而且压缩包里的py也不会生成pyc或者pyo。GoAgent 作者还将所需的库都放到了egg文件里,这个文件可以跨平台使用,前提是要有基本的python库。

@yeahwu 就普通的zip压缩,你改了哪个文件?昨天测试的时候发现,需要访问一次pac文件才会生成,而且是通过gfwlist更新,所以文件夹里面那个pac只要保证修改时间在前一天就会生成新pac。今天抽空改一下,启动自动生成pac。

@xyuanmu 两个老问题
1:火狐不能用google搜索
本来是想通过修改 proxy_handler.py 解决,解包后再压缩,启动失败。
后来找到一个简单方法,proxy.ini中hosts把 www.google.com=direct改为gae,就好鸟。
2:google老是跳出验证信息
这个你应该知道怎么改

建议把Linux版,pull到你的git上去,有些小问题大家可以一起过去解决嘛!

@Cat7373 @xyuanmu 看人机大战,看到李师师的表情包,哎呦妈呀,蛋疼
推荐腾讯解说:http://news.qq.com/zt2016/AlphaGo/0313pc.htm
youtube直播:https://www.youtube.com/watch?v=yCALyQRN3hw

最近一直在搞 Minecraft 的事0.0
以及每天例行更新咱的 PVZOnlineTool- -

@Cat7373 植物大战僵尸?以后留给咱俩孩子玩。
话说你的qq随便留,这样真的好吗?

没神马吧- -
我也就是曾经给这个项目提交过一些WebUI的改动- -
而且也是很久之前了- -

@yeahwu 老是跳出验证就改成Direct,可又说火狐用不了,那也只能二选一。顺便提一句那个Direct不是直连,是通过IP连接还是什么的,我不是很懂,总之没IP就连不通,包括PAC也会更新失败。

@xyuanmu @ Cat7373 原来是这样,谢谢。不知道 pyc 文件对性能或者是正常运行有没有影响。如果没有影响,或者没有作用的话,我想能不能调整一下不生成 pyc 文件(是不是按你说的 proxy.py 里加了句 sys.dont_write_bytecode = True 就可以了?),我自己精简的 xx(没有 lib 子目录,py 文件全部在 根目录)根目录一大堆 py 文件了,然后有全部生成一次 pyc 文件,好凌乱的赶脚。

egg 文件应该就是和我之前问的怎么做linux 下把所有库文件压缩成一个 zip 包一样的作用了,如果是这样的话,我想能不能把目前你精简的 linux 版的 lib 子目录里面的库文件,压缩成一个 egg 文件,这样看着就更清爽和干净了。

感谢 @xyuanmu,昨天用了你才做的 linux 精简版,非常不错,用 y2b 测试速度,比原版还要快一些,估计可能是心理作用吧,不过真的要快一些。希望如果有时间和能力的话,看 @xyuanmu 能不能像 goagent 一样,把你 linux 精简版的 lib 子目录的库文件做成一个 egg 的包,这样就更完美了。

还有支持 yeahwu 的建议,可以把你的 win 版 和 linux 版,在你 github 上建个 repo,以后可以持续更新,我想高级玩家会非常喜欢。反正不管你们喜不喜欢,反正我是非常喜欢。最后,非常感谢你的 linux 精简版,非常好用!

pyc可以提高一些启动速度。

@xyuanmu 此处可解决火狐上不能用google的问题,
32d204c

@jzp820927 那句代码只要加到 import sys 后面就行,然后运行 proxy.py 就不会生成pyc了。

@yeahwu 我看一下改改

@Cat7373 阿尔法狗学会放水鸟……

@yeahwu 神了,加了Content-Length真的就能用了,等会儿更新文档。

@xyuanmu 嗯,两种方法,一种direct改为gae,另一种就是加Content-Length
把Linux版pull到你的git吧?就叫XX-Mini或者XX-Sex或者XX-Geek

@yeahwu 我发现加了以后谷歌云端硬盘打不开了,一直转,我找找看有木有两全的办法。

@xyuanmu 其实google跳出验证的问题,是没有根本解决方法的,只是概率问题。
下面这样改,偶尔会跳出验证。但是google和google云盘是正常的

[hosts]
scholar.google.com = direct
scholar.google.com.hk = direct
;code.google.com = direct
;clients5.google.com = direct
;clients6.google.com = direct
;upload.docs.google.com = direct
;mail.google.com = direct
.commondatastorage.googleapis.com = gae
chart.apis.google.com = gae
appengine.google.com = direct
;mail-attachment.googleusercontent.com = direct
;.googleusercontent.com = direct
;themes.googleusercontent.com = direct
talk.google.com = direct
talk.l.google.com = direct
talkx.l.google.com = direct
;.google.com = direct
www.google.com = gae
translate.google.com = gae
;.gmail.com = direct
;.ytimg.com = direct
;.doubleclick.net = direct
;.googleusercontent.com = gae
;.googleapis.com = gae
;.google-analytics.com = direct
;.googlecode.com = direct
;.google.com.hk = direct
;.googlegroups.com = direct
;.googlesource.com = direct
;.gstatic.com = direct
.appspot.com = direct
;.gvt1.com = direct
;.android.com = direct
;.youtube.com = direct
;.ggpht.com = direct
;.2mdn.net = direct
;.googlesyndication.com = direct
;.googlevideo.com = gvs #can't use directly, need gae forward.
;.googleadservices.com = direct
www.google.com.hk = direct
www.google.com.tw = direct
;.google.com.cn = direct
;.g.cn = direct

@yeahwu 我现在都是用这个 www.google.com.hk = direct,www.google.com.tw = direct,几个月都没有跳出验证,已经知道哪里的问题了,等一下修改好就放上来,只需要改一处即可。

我把linux的pull到git吧,Windows的pull要改就太麻烦了。

已经更新文件了,添加了 sys.dont_write_bytecode = True,修正了火狐谷歌的问题。
win: proxy.zip
linux: proxy-linux.zip

@xyuanmu 可以把下载链放到你的git上,这样就有根据地鸟。再加上git没有被墙。

@xyuanmu 我现在关心的是 linux 版,啥时候实现 egg 打包库文件。

@jzp820927 不明白lib里的文件生成egg文件,有啥实际意义,说跨平台,其实还需python库支持。其实linux版已经很极致了,几百kb的大小。

@yeahwu 主要是把几十个py文件压缩成一个文件,干净整洁一点,就和 win版的 zip 包一样的效果。打个形象的比喻,就好像 win 下面做 碎片整理一样,到是不影响使用,只不过打包一下,更完美一些。不打包也不影响使用。看 xyuanmu 吧,能做就做,不能做就算了吧。

Linux 不用打包 egg, 建议使用各个发行版的包管理器管理更好。 比如,Fedora下的 rpm 仅有 775 KiB,支持 systemd,支持非 root/sudo 启动。

好多 linux 都有自己的包管理器,要弄这个,工作量还是挺大的,估计他一个人够呛,除非有人帮忙一起弄。还是目前这种形式好,通用平台。

如果真要弄,就弄 rpm 和 deb 包就行了,这两种包就可以适配大多数发行版!
rpm 源已经有人弄好了,再有人在 launchpad 上弄个 deb 的源,就完美了。