有个想法,想精简一下xx-net,只保留gae模块,和自动扫描。
yeahwu opened this issue · 73 comments
0.0
我觉得WebUI还是蛮好用的- -
GAE上传可以单独一个分支放,而不是默认下载- -
你之需要gae_proxy/local 目录就可以了,然后稍微修改下ini文件,就可以关掉pac。
精简ip段这个就自己修改对应文件。
这个模块一直保持可以独立运行。
如果其他目录删除,那需要把python27/1.0/lib/noarch 目录下的几个库文件拷贝过去就好了。
其实俺感觉熟悉gae的人,完全不用看webui的,虽然web很人性化
id上传嘛,gae老手自然想得到别的办法,
减掉这些,主要是体现和xx的差异,把效率突出出来。
在我的电脑上XX占用的CPU可以忽略不计,内存20MB- -
感觉已经很低了- -
XX-Net 启动耗时,是在加载OpenSSL库上,新版的OpenSSL库采用python ctypes去动态解析C的符号,非常耗时。
而退出时间,是在等待扫描、连接线程超时结束,此处可以优化,不过暂时没有研究出特别有效和完善的策略。
懂鸟,谢x大详解
李世石快哭了,又输给AlphaGo鸟。强烈要求开源,哈哈
如果其他目录删除,那需要把python27/1.0/lib/noarch 目录下的几个库文件拷贝过去就好了。
@xxnet 如果是在 linux 自带python 环境下,也需要 noarch 目录下的几个库文件拷贝过去么?还是只要 gae_proxy/local 目录就可以了?
在 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, 即可:
还有一个文件,刚才查漏了:
xp 也测试通过
不知道是不是openssl版本的问题,python同样是2.7.8版本,xx-net CPU使用率要比GoAgent低好多。
哎呦,这个屌,这个屌爆鸟,俺就喜欢这样的,目前运行良好。
@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的基本也没法用鸟哇。
精简py 库,可以用coverage 工具跑一遍,然后只包含那些覆盖到的文件,库文件就可以删除一大批。
进一步的精简,理论上可以把函数内容分析一遍,没有跑过的函数都删除,不过这还没有找到工具支持。
其实linux上xx-net表现就良好鸟,挺溜。
@xyuanmu 其实你这里面还有几个文件是可以删除的,
good ip.txt
goodipv6.txt
proxy.pac
addto-startup.js
这几个文件,俺看也没什么卵用。
3.x 改版,有一个想法,想把各个模块分成不同的github项目,在需要时才去下载对应的模块。
再另外提供一个完整版本,给需要的人。
原版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
可以啊,你没设置pac模式吧
没有,不过刚试了一下,data文件夹没有发现pac文件。然后我记得pac文件有几百kb呀!
@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- -
没神马吧- -
我也就是曾经给这个项目提交过一些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可以提高一些启动速度。
@jzp820927 那句代码只要加到 import sys 后面就行,然后运行 proxy.py 就不会生成pyc了。
@yeahwu 我看一下改改
@xyuanmu 嗯,两种方法,一种direct改为gae,另一种就是加Content-Length
把Linux版pull到你的git吧?就叫XX-Mini或者XX-Sex或者XX-Geek
@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
@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 的源,就完美了。