SOCKS 协议转化为 HTTP, HTTPS 协议

SOCKS 代理协议是和 HTTP, HTTP, FTP 代理协议不同的代理协议,尽管你有了 SOCKS 代理服务器,你可以在 chrome 设置 SOCKS 代理服务器就可以上网,但是, 如果你在命令行, 或者其他 app 里面想使用代理, 却不能做到. 有没有一种方法可以让 SOCKS 协议转换成 HTTP, HTTPS 协议呢?

SOCKS

Socket Secure (SOCKS) 是一个互联网代理协议, 它定义了客户端和服务器的连接如何通过代理服务器(SOCKS代理服务器)。它位于 OSI 模型的第5层, 即会话层 (Session Layer)。

主要的协议版本有: SOCKS4, SOCKS4a, SOCKS5.

实现 SOCKS 协议的服务器和客户端软件, 看这里:https://en.wikipedia.org/wiki/SOCKS#SOCKS_proxy_server_implementations

Polipo

Polipo是一个轻量的, 跨平台的缓存和转发 web 代理服务器.
更多关于它的介绍,请看这里:
http://www.pps.univ-paris-diderot.fr/~jch/software/polipo/
https://en.wikipedia.org/wiki/Polipo

SOCKS 转 HTTP, HTTPS

Polipo 可以和 SOCKS 协议 talk, 那么可以把已有的 SOCKS 协议通过 Polipo 转化为 HTTP, HTTPS 协议.
假如我们已有支持 SOCKS 的代理服务器 proxy.tianxiaohui.com:1080, 那么可以设置 Polipo 启动为: 
$ service polipo stop #先关闭
$ polipo socksParentProxy=proxy.tianxiaohui.com:1080

那么就可以通过访问 polipo 服务器的 8123 来使用 http, https 代理协议啦.

install
$ ipkg install polipo
config & start
$ polipo socksParentProxy=192.168.1.1:1080 proxyAddress=192.168.1.1
$ iptables -I INPUT -p tcp -m tcp --dport 8123 -j ACCEPT

标签: none

添加新评论