XX-net / XX-Net

A proxy tool to bypass GFW.
33.04k stars 7.69k forks source link

proxychains-ng里配置xx-net代理出现socket error or timeout错误 #10937

Open sparo-jack opened 6 years ago

sparo-jack commented 6 years ago

proxychains-ng里配置xx-net代理出现socket error or timeout错误,有人知道怎么解决吗?

SeaHOH commented 6 years ago

是不是搞错协议了?1080 是 socks,其它是 http。

sparo-jack commented 6 years ago

export http_proxy=http://172.28.60.143:8087可以正常使用 但在proxychains-ng配置http 172.28.60.143 8087就不行了

SeaHOH commented 6 years ago

https://www.jianshu.com/p/9125637e7aec 我也没用过,看看你的用法对么。

sparo-jack commented 6 years ago

用法没有问题的,使用同事的代理是可以的

SeaHOH commented 6 years ago

gae_proxy 的日志呢,看看哪里不对。

sparo-jack commented 6 years ago

Jun 15 13:35:40.216 - [WARNING] CONNECT www.google.com port:80 not support

SeaHOH commented 6 years ago

gae_proxy 当前不支持 CONNECT 非 443 端口

sparo-jack commented 6 years ago

不是很理解,比如我在本地机器A上安装了xx-net,并监听0.0.0.0:8087,然后在A机器浏览器访问www.google.com是可以的,在局域网B机器通过设置A机器上xx-net为代理也是可以访问www.google.com。但在B机器上在proxychains里设置A机器的xx-net为代理,就不能在B机器利用proxychains访问www.google.com。 那以上前两个过程可以访问www.google.com都是连接的gae_proxy的443端口? 最后一个过程是什么导致了连接的不是gae_proxy的443端口呢?

SeaHOH commented 6 years ago

因为浏览器访问谷歌时网址是https://开头,此时使用代理就是CONNECT *:443。 所以你的网址要写全,不然默认会尝试使用http://

sparo-jack commented 6 years ago

刚刚试了下的确是这样,那是不是所有http请求都要变成https才能代理成功?

SeaHOH commented 6 years ago

不是,浏览器和其它程序不一样,不用特意改变。 其它程序要看它使用代理的方式,如果是直接 CONNECT 就不行。

SeaHOH commented 6 years ago

我看看能不能改一下,让它支持 80 端口。

sparo-jack commented 6 years ago

恩,这样最好了,非常感谢耐心的回答

SeaHOH commented 6 years ago

不好意思,今天才有空。 刚看了下,80 端口比较容易支持,但是其它端口要改许多地方,暂时没动手。 你先试试这个修改。

sparo-jack commented 6 years ago

好的,等上班了试下,给你反馈

sparo-jack commented 6 years ago

使用http访问不会报错了,但好像没有返回任何数据,不管了,就这样吧

SeaHOH commented 6 years ago

日志里面有报错吗? 把 CONNECT 80 端口的日志贴上来看看。

又修改了一点,不知道有没有影响。

sparo-jack commented 6 years ago

没看到报错。 日志如下:Jun 20 09:59:26.782 - [DEBUG] Host:www.google.com Direct redirect to https

SeaHOH commented 6 years ago

对,就是这个,会重定向会 https。能正确重定向吗?

sparo-jack commented 6 years ago

不知道有没有正确重定向,只是curl命令是返回了ok,却没有数据返回

SeaHOH commented 6 years ago

试试 curl -s -f -I -L www.google.com curl -s -f -I -L http://www.google.com 分别有什么结果。

SeaHOH commented 6 years ago

麻烦帮我试试,没有 proxychains-ng 无法测试。

sparo-jack commented 6 years ago

今天很忙,明天帮你试下

SeaHOH commented 6 years ago

因为文档全是英文,找起来太费劲,所以你能帮忙能测试就太好了。 大概理解了,估计最多再试两三次就能搞定。

sparo-jack commented 6 years ago

[proxychains] Random chain ... ... www.google.com:80 ... OK HTTP/1.1 301 Location: https://www.google.com/ Content-Length: 0 [proxychains] Random chain ... ... www.google.com:443 ... OK

两个命令返回以上同样内容

SeaHOH commented 6 years ago

分别试试这个两个,如果第一个能用就不管第二个。

sparo-jack commented 6 years ago

说明下,我这边是在公司测试环境可能和一般用户不一样。 1.我这边只能使用IPV4,我一直使用的老版本,IPV4也可以扫描到接近100个IP。 因为要帮你测试所以使用你的新版本IPV4的IP数目就只有3-4个,所以显示"Jun 22 16:35:07.292 - [WARNING] not enough ip"。 在你让我测试的所有新版本,在浏览器里google都是访问不了的。但可以访问知乎这样网站,我们公司是屏蔽知乎的。

对于你上面的两个新版本测试如下: 版本1: 测试google结果和之前一样 测试知乎有如下输出: HTTP/1.1 200 Persist: Content-Length: 0 Content-Security-Policy: default-src blob:;img-src data: blob:;frame-src 'self' .zhihu.com getpocket.com note.youdao.com safari-extension://com.evernote.safari.clipper-Q79WDW8YH9 weixin: zhihujs: v.qq.com v.youku.com www.bilibili.com .vzuu.com captcha.guard.qcloud.com;script-src 'self' .zhihu.com .google-analytics.com zhstatic.zhihu.com res.wx.qq.com 'unsafe-eval' unpkg.zhimg.com unicom.zhimg.com captcha.gtimg.com captcha.guard.qcloud.com blob:;style-src 'self' .zhihu.com unicom.zhimg.com 'unsafe-inline' captcha.gtimg.com;connect-src wss: X-Backend-Server: heifetz.heifetz.59bdde34---10.70.4.57:31029[10.70.4.57:31029] Expires: Fri, 22 Jun 2018 08:26:55 GMT Server: ZWS Connection: Persist Cache-Control: max-age=0, no-cache, no-store Pragma: no-cache Set-Cookie: tgw_l7_route=e0a07617c1a38385364125951b19eef8; Expires=Fri, 22-Jun-2018 08:41:55 GMT; Path=/ Set-Cookie: _xsrf=f0b4125e-cd1f-4977-aa74-7331a0ef76f2; path=/; domain=.zhihu.com Set-Cookie: d_c0="AMDmuUm6yQ2PThx7p6mdBLT7ijmipcHTu9M=|1529656015"; path=/; expires=Mon, 21 Jun 2021 08:26:55 GMT; domain=zhihu.com Set-Cookie: q_c1=27e3ab6947a84074b6362e74f26a09f6|1529656015000|1529656015000; path=/; expires=Mon, 21 Jun 2021 08:26:55 GMT; domain=zhihu.com Date: Fri, 22 Jun 2018 08:26:55 GMT X-Frame-Options: DENY Content-Type: text/html; charset=utf-8

版本2: 测试google结果: [proxychains] Random chain ... 172.28.60.143:8087 ... www.google.com:80 ... OK 测试知乎和上面同样输出

说明下啊,我最终是要解决7000端口,你这边解决的问题和我不一样。 另外,由于在公司上班,所以没时间一直帮你测试啊,接下来还得你自己测试啦,见谅啊

SeaHOH commented 6 years ago

好的,我想其它办法测试。谢谢啦。

SeaHOH commented 6 years ago

顺便再问下,你这个 7000 端口是什么服务,如果是 http 服务或者 http 代理应该也有办法。 如果不是,你可以使用 X-Tunnel,这个绝对能用。

sparo-jack commented 6 years ago

代码底层是用thriftpy的TSocket对象去连接端口的,这个应该就不是http了吧?不是太清楚奥

SeaHOH commented 6 years ago

你这个确实不是 http,gae_proxy 只支持 http 协议。 还是用 X-Tunnel 吧,不过也只是支持 TCP 协议,需要你设定只使用 TCP 传输数据。