Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Closed
yeahwu opened this issue Mar 10, 2016 · 73 comments
Closed

Comments

@yeahwu
Copy link
Contributor

yeahwu commented Mar 10, 2016

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

@Cat7373
Copy link
Contributor

Cat7373 commented Mar 10, 2016

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

@xxnet
Copy link
Contributor

xxnet commented Mar 10, 2016

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

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 10, 2016

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

@Cat7373
Copy link
Contributor

Cat7373 commented Mar 10, 2016

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

@xxnet
Copy link
Contributor

xxnet commented Mar 10, 2016

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

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 10, 2016

懂鸟,谢x大详解

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 10, 2016

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

@jzp820927
Copy link

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

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

@xxnet
Copy link
Contributor

xxnet commented Mar 10, 2016

在 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,不过越来越觉得没有自己重写的必要了,标准库提供了足够的灵活性。

@jzp820927
Copy link

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 10, 2016

2016-03-10t09-34-28 146z

@jzp820927
Copy link

@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个文件的自定义配置和扫描日志功能?

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 11, 2016

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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 11, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 11, 2016

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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 11, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 11, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 11, 2016

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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 11, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 11, 2016

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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 11, 2016

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

[google_ip]
max_scan_ip_thread_num = 50

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 11, 2016

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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 11, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 11, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 11, 2016

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

@jzp820927
Copy link

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

@xxnet
Copy link
Contributor

xxnet commented Mar 11, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 11, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 11, 2016

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

@xxnet
Copy link
Contributor

xxnet commented Mar 11, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 12, 2016

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

@jzp820927
Copy link

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

@Cat7373
Copy link
Contributor

Cat7373 commented Mar 12, 2016

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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 13, 2016

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

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

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

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

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

@Cat7373
Copy link
Contributor

Cat7373 commented Mar 13, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

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

@Cat7373
Copy link
Contributor

Cat7373 commented Mar 13, 2016

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

@Cat7373
Copy link
Contributor

Cat7373 commented Mar 13, 2016

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 13, 2016

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

@jzp820927
Copy link

@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 精简版,非常好用!

@Cat7373
Copy link
Contributor

Cat7373 commented Mar 13, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 13, 2016

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

@yeahwu 我看一下改改

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 13, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 13, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

@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

@xyuanmu
Copy link
Contributor

xyuanmu commented Mar 13, 2016

@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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

又一根据地
https://github.com/xyuanmu/XX-Mini

@jzp820927
Copy link

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

@yeahwu
Copy link
Contributor Author

yeahwu commented Mar 13, 2016

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

@jzp820927
Copy link

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

@1dot75cm
Copy link

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

@jzp820927
Copy link

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

8 participants