撸了个把 SOCKS 代理转成 HTTP 协议代理的工具,但是遇到了个问题!

2016-04-28 17:32:28 +08:00
 m31271n

各位看官,别嫌弃代码渣。项目地址在这: https://github.com/m31271n/jet

说说遇到的问题, Jet 有个功能是根据请求的 hostname 来 Block 请求,对于这个请求,返回一个 Jet 的提示信息,比如:


                                         _|              _|
                                         _|    _|_|    _|_|_|_|
                                         _|  _|_|_|_|    _|
                                   _|    _|  _|          _|
                                     _|_|      _|_|_|      _|_|
                                    This site is blocked.

对于 HTTP 请求,可以直接使用 response.write() 来写 response ,代码在这里;然而对于 HTTPS 请求,代码在这里 ,回调函数里的参数是一个 socket 对象,不知道该怎么写入请求内容了

3499 次点击
所在节点    Node.js
9 条回复
imeoer
2016-04-28 20:20:41 +08:00
m31271n
2016-04-28 21:11:30 +08:00
@imeoer stackoverflow 里提到的貌似还是在转发远端服务器的响应,而不是真正地让代理服务直接响应请求。
qianshizhou
2016-04-28 22:12:11 +08:00
又造轮子,不是有 priprivoxy 嘛
m31271n
2016-04-28 23:44:47 +08:00
@qianshizhou 了解原理,并用掌握的原理再实现出来,是挺好玩的一个事儿。有没有人用又是另外一回事儿了。毕竟「一个了解事物原由的人,才是幸福的」嘛。嘻嘻~
ryd994
2016-04-29 07:13:51 +08:00
没法写啊,除非你中间人
HTTPS 是加密的嘛,你不知道私钥就没用
wizardoz
2016-04-29 10:10:48 +08:00
渣渣表示看不懂
m31271n
2016-04-29 10:58:51 +08:00
@ryd994 假如我是中间人,该怎么干?
ryd994
2016-04-29 11:51:11 +08:00
@m31271n 在用户电脑上加自己的 CA
参见 squid 的 SSL bump 模式
m31271n
2016-04-29 13:31:05 +08:00
@ryd994 感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/275132

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX