gost的http数据流能不能做成标准http数据流?

197 views
Skip to first unread message

wz

unread,
May 2, 2016, 12:38:10 AM5/2/16
to go-gost
在这样的应用场景
在远端vps上,nohup ./gost -L ss://aes-256-cfb:123456@:443 -F=http://:8087,再让其他代理程序监听8087端口。但是发觉8087端口上的http非严格意义上的标准http数据流。例如我用GoAgent来处理端口8087上的数据流时,访问http网站不能,但是访问https网站可以。我猜想gost生成的http数据流和标准的http数据流存在一定格式上的差异。
如果gost能生成完全标准的http数据流或者socks数据流,那么gost将能实现stunnel那样类似的功能

Rain Zen

unread,
Aug 28, 2016, 8:54:46 AM8/28/16
to go-gost
gost的http是标准的http请求,只不过所有的转发请求都是使用http标准的CONNECT方法,不管是http还是https,所以就要求-F设置的代理支持此CONNECT方法,有些代理可能只支持对443端口,也就是https的请求使用CONNECT方法,这就有可能导致只能访问https网站。

在 2016年5月2日星期一 UTC+8下午12:38:10,wz写道:

wz

unread,
Aug 28, 2016, 10:30:32 PM8/28/16
to go-gost
谢谢解惑,我的理解是,一般的http代理,对http流量是走http-get post的,对https流量才走connect方式。而你的gost,http和https流量都是通过走connect方式的,所以造成这一现象

在 2016年8月28日星期日 UTC+8下午8:54:46,Rain Zen写道:

Rain Zen

unread,
Aug 28, 2016, 10:54:09 PM8/28/16
to wz, go-gost
如果是单纯的http(s)代理是可以这么做的,但由于gost的转发链支持socks和ss,遇到中间有这类的代理就做不到了

wz <wz7...@gmail.com>于2016年8月29日周一 上午10:30写道:
--
您收到此邮件是因为您订阅了Google网上论坛上的“go-gost”群组。
要退订此群组并停止接收此群组的电子邮件,请发送电子邮件到go-gost+u...@googlegroups.com
要发帖到此群组,请发送电子邮件至go-...@googlegroups.com
要在网络上查看此讨论,请访问https://groups.google.com/d/msgid/go-gost/b9ff1d46-ab14-42d1-a9e6-4c8e62c01bbf%40googlegroups.com
要查看更多选项,请访问https://groups.google.com/d/optout

wz

unread,
Aug 28, 2016, 11:00:08 PM8/28/16
to go-gost

我还是没太明白
我是这样构建的
浏览器-- gost客户端--gost服务端(nohup ./gost -L ss://aes-256-cfb:123456@:443 -F=http://:8087)--http代理服务器(监听8087)
这里我只利用了gost的端口转发功能,也就是说我只把gost看作一个隧道,而不是代理服务器
我知道gost是支持多种协议的,像socks和ss,但是如果我-F=http://:8087设定好了,那么端口8087的协议就应该是确定好的吧
假设我找到一个http代理服务软件,它能够把http请求也通过http-connect来处理,是不是能解决访问http网站的问题?

Rain Zen

unread,
Aug 28, 2016, 11:14:08 PM8/28/16
to go-gost
问题在于当ss请求过来的时候,我并不知道是什么类型的请求,http? https?甚至ssh都有可能。所以与后端的代理服务器类型无关,为了简单处理统一使用CONNECT来向下转发。
所以代理链中的http代理一定是要支持对非443端口的CONNECT请求,我在README最后 ‘限制条件'一栏也有说明。

在 2016年8月29日星期一 UTC+8上午11:00:08,wz写道:

wz

unread,
Aug 29, 2016, 12:49:27 AM8/29/16
to go-gost

这里的443端口是指网站的(比如https://google:443)还是指代理服务器本地监听的443端口?我觉得应该是网站的吧
如果我要访问http://sina.com.cn(80端口),是不是说http代理服务器connect 80端口要特别设定,因为一般只允许connect 网站的443端口,我这样理解对吗

Rain Zen

unread,
Aug 29, 2016, 12:59:22 AM8/29/16
to go-gost
对的,是目标网站的。http代理服务器只要支持非443端口的CONNECT就可以了,也不要仅支持80,否则只能访问web,很多其他的服务就访问不到了,比如ssh(22), 有些网站的web端口也不一定是80,可能是8080,所以尽量不要做限制,除非你有特殊需求。

在 2016年8月29日星期一 UTC+8下午12:49:27,wz写道:

wz

unread,
Aug 29, 2016, 1:08:31 AM8/29/16
to go-gost

谢了,我理解了,除了你的gost原生支持,市面上大部分http代理也只支持绑定网站443端口的http-connect,这样的软件不太好找啊


在 2016年8月29日星期一 UTC+8下午12:59:22,Rain Zen写道:
Reply all
Reply to author
Forward
0 new messages