coyove / goflyway

An encrypted HTTP server
MIT License
4.31k stars 654 forks source link

疑似ssl证书问题 #76

Closed falltree closed 6 years ago

falltree commented 6 years ago

系统版本 win10 pro,goflyway版本1.2.0a/1.1.0a,之前都使用正常,直到昨天重新全新安装了win10 pro。发现goflyway不正常,google,youtube无法访问,在chrome里提示ERR_CONNECTION_CLOSED,在firefox则是提示服务器响应时间过长,ca.pem已导入了中间证书后,仍然无法正常。 同时注意到,如果是无ssl证书的地址如www.wenxuecity.com,则可以通过goflyway代理正常访问。

coyove commented 6 years ago

请使用-lv dbg输出更详细的日志。 如果是证书错误,浏览器应该会提示网页不安全,而不是ERR_CONNECTION_CLOSED。 请确定浏览器与客户端之间的连接,客户端与服务端之间的连接正常 请试着访问http://example.org/,观察是否可以正常连接

falltree commented 6 years ago

使用的doub.io的goflyway tools客户端,加了参数-lv dbg,日志如下。另外现在chrome报错有时显示ERR_TIMED_OUT,有时有ERR_EMPTY

coyove commented 6 years ago

看了下日志,你使用的还是普通的http代理,所以并不涉及证书的问题。 同时日志显示客户端的请求已经发出,请在服务端也加上-lv dbg,观察这些发出的请求是否送达到了服务端。

falltree commented 6 years ago

可以确定肯定是电脑端的问题,服务端没有动过任何设置,电脑重装前也正常,重装了,大概半小时后重装完成,用同样的客户端goflyway tool,同样设置来运行,就无法访问youtube了,与此同时,装了1.2.0a的手机端仍然是正常。现在就是奇怪电脑端难道还有什么需要设置的地方?

服务端如下,用**遮掩了一些信息,使用80端口: root@debian:/usr/local/goflyway# ./goflyway -k=*** -l=":80" -proxy-pass="****" -lv dbg

coyove commented 6 years ago

那么请试一下使用命令行启动客户端,goflyway -up="..." -lv dbg,以排除goflyway tool的问题嫌疑

falltree commented 6 years ago

疑难杂症啊,上述服务端日志就是服务端和电脑端都用命令行直接运行的结果,今天再用命令行运行如下。浏览器也换了几个,都是同样情况,用其他代理brook就正常,换goflyway就不行。实在不行只能再重装win10看看了。

PC端: D:\GoFlyway\1.2.0a>goflyway.exe -k="" -up=":80" -l=":****" -web-port="8101" -lv dbg

coyove commented 6 years ago

请尝试运行以下命令:

./goflyway get -up="..." -v google.com

看能否成功

falltree commented 6 years ago

貌似成功。加入了-k后是这样的: D:\GoFlyway\1.2.0a>goflyway get -k= -up=":80" -v google.com

coyove commented 6 years ago

看来服务端客户端之间的连接没有问题。 那么请尝试将客户端监听在0.0.0.0上,然后使用其他设备或系统连接客户端并尝试联网,观察是否可以正常工作。

falltree commented 6 years ago

没太明白,监听0.0.0.0意思是电脑端命令行不设服务器ip,然后通过代理上网?这样的结果是无法联网: 电脑命令行执行后:

浏览器设了goflyway代理后显示 proxyconnect tcp: dial tcp 0.0.0.0:80: connectex: No connection could be made because the target machine actively refused it.

coyove commented 6 years ago

是客户端:./goflyway -up="..." -k="..." -l="0.0.0.0:8100" 这样同一网关——比如家里的wifi——里的其他设备——比如手机——通过设置代理为电脑的ip+8100,来访问网络

falltree commented 6 years ago

原来还可以这么玩。刚试了一下,结果有些微妙。 手机以电脑IP+8189端口作为代理,可以上国内新浪,搜狐等网站,也可以上google.com,能搜索,但是youtube,twitter都失败,www.google.com.hk,www.google.com.jp也都失败

D:\GoFlyway\1.2.0a>goflyway -up="" -k="" -l="0.0.0.0:8189"

coyove commented 6 years ago

google是通过http访问的吗?

falltree commented 6 years ago

手机直接浏览器访问的,没注意http还是https,很可能是http,我之前说的www.wenxuecity.com,在手机也可以访问,就是http的。而https的youtube,twitter都不行,和电脑浏览器有类似,这些通过http可以访问的,也不是很稳定,有时也访问不了。综合这些情况看,电脑端和服务端通信是正常的,似乎浏览器处理这些数据,尤其是https的数据出了问题。cent browser/chrome/firefox,edge也试了下,都一样的问题。有可能是系统本身哪里出了问题,打算重装来试试了。

falltree commented 6 years ago

不想一直折腾,已重装win10,重装后一切正常。侧面证明是之前系统可能是抽疯造成的,应该不是普遍情况。在这个特殊情况下,系统的问题可能会造成goflyway代理下https的网站访问不正常(似乎是网页内容已经传回,但浏览器无法正确处理,要么当成错误信息,要么当初empty),部分非https的偶尔能够访问。 非常感谢coyove的支持,希望goflyway项目越来越完善。