使用Privoxy将socks5代理转为http代理


访问谷歌

大家都知道shadowsocks只提供了SOCKS5的代理,而没有提供http代理,而很多软件仅提供了http代理的支持,比如老高需要使用shell命令行扶墙,或者使用git同步android的源代码,再或者更新android SDK,该怎么办呢?

老高在此介绍一个软件Privoxy,它可以作为代理的代理,为我们解决上述问题!

Privoxy is a non-caching web proxy with advanced filtering capabilities for enhancing privacy, modifying web page data and HTTP headers, controlling access, and removing ads and other obnoxious Internet junk. Privoxy has a flexible configuration and can be customized to suit individual needs and tastes. It has application for both stand-alone systems and multi-user networks.

由介绍看来,privoxy的功能可远远不止http代理这么简单!

教程场景:

老高的路由器刷了openwrt,并安装了shadowsocks在1080端口提供SOCKS5代理服务,现在我们使用Privoxy将其转化为http代理。

I. 安装

先登录到路由器

ssh root@192.168.1.1
root@192.168.1.1's password:


BusyBox v1.22.1 (2015-06-06 07:53:28 CST) built-in shell (ash)
Enter 'help' for a list of built-in commands.


  _______________________________________________________________
 |    ____                 _                 ____               |
 |   |  _ \ __ _ _ __   __| | ___  _ __ __ _| __ )  _____  __   |
 |   | |_) / _` | '_ \ / _` |/ _ \| '__/ _` |  _ \ / _ \ \/ /   |
 |   |  __/ (_| | | | | (_| | (_) | | | (_| | |_) | (_) >  <    |
 |   |_|   \__,_|_| |_|\__,_|\___/|_|  \__,_|____/ \___/_/\_\   |
 |                                                              |
 |                  PandoraBox SDK Platform                     |
 |                  The Core of SmartRouter                     |
 |       Copyright 2013-2015 D-Team Technology Co.,Ltd.SZ       |
 |                http://www.pandorabox.org.cn                  |
 |______________________________________________________________|
  Base on OpenWrt BARRIER BREAKER (14.09, r1018)
[root@PandoraBox:/root]#

Privoxy在路由器上的安装很简单,一行代码即可搞定!

opkg install privoxy

如果提示找不到安装包,可以参考小米路由器mini折腾之配置opkg篇检查opkg的配置。

其他平台可以使用yum apt-get命令安装

如果解决不了,请移步官方的安装包下载地址

II. 配置

Privoxy的配置文件位于/etc/privoxy/config,下来我们用vim编辑它。

注意老高的注释!

vim /etc/privoxy/config


# 如此多的配置!看来privoxy的功能很强大
confdir /etc/privoxy
logdir /var/log
filterfile default.filter
logfile privoxy
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action   # Main actions file
#actionsfile user.action      # User customizations

# 监听端口为8118,如果需要其他设备访问,则需要将ip改为路由器的IP 192.168.1.1 或 0.0.0.0 或者直接 :8118
listen-address  192.168.1.1:8118
toggle  1
enable-remote-toggle  1
enable-remote-http-toggle  0
enable-edit-actions 1
enforce-blocks 0
buffer-limit 4096
forwarded-connect-retries  0
accept-intercepted-requests 0
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 300
socket-timeout 300
permit-access  192.168.1.0/24
debug   1    # show each GET/POST/CONNECT request
debug   4096 # Startup banner and warnings
debug   8192 # Errors - *we highly recommended enabling this*
#admin-address privoxy-admin@example.com
#proxy-info-url http://www.example.com/proxy-service.html

# 由于我们的ss运行于1080端口,我们加入下面的配置,不要忘了最后的点.
forward-socks5 / 127.0.0.1:1080 .

配置好代理设置我们就可以重启privoxy了

/etc/init.d/privoxy restart

如果没有报错,就说明启动成功!

III. 测试

curl --connect-timeout 2 -x 127.0.0.1:8118 http://google.com

只要返回值类似以下代码即表示成功!

<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>

IV. 使用

最简单的使用就是chrome下的SwitchyOmega扩展,我们按照下图配置

SwitchyOmega

然后在浏览器中启用http代理,如下图

privoxy工作正常

完美运行!

既然现在我们有了一个运行在8118端口的http扶墙代理,那么现在我们想让终端扶墙怎么办?

将下面的代码添加到~/.bashrc即可!

export http_proxy=http://192.168.1.1:8118
export https_proxy=http://192.168.1.1:8118

V. 解决SDK更新

配制好HTTP代理后,我们将ANDROID SDK MANAGER按照如下设置

ANDROID SDK MANAGER

VI. 更多

privoxy还有更多的用法等你发掘!

老高再提供一个关键字 proxychains,能够更加容易的实现命令行扶墙!

标签: http, shadowsocks, proxy, privoxy, socks5

本文由 老高 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。
可自由转载、引用,但需署名作者且注明文章出处。

相关文章

已有 32 条评论

  1. 请教 请教

    老高你好,我的mac通过影.梭ss越墙,为了能让其他应用软件也能越墙,我装了Privoxy,修改了config文件,可结果还是不行。老高你能发一份修改好的Privoxy config文件到我邮箱吗?万分感谢! gianni.other@gmail.com

  2. ymqy ymqy

    老高,这个能在mac终端运行吗

    1. yes

      1. ymqy ymqy

        表示对网页头部自动产生的句子很感兴趣,是自己写的还是哪里可以引用,希望能学习下

        1. 我写了一个插件,专门干这事儿的,句子有自己写的,还有收集的

  3. aid aid

    你好,怎么设置,对于像google,github,等等做到定点加速呀

    1. 很多种方法,你搜搜pac

      1. aid aid

        pac搜了 还是没理解咋回事儿。

  4. 刘江北 刘江北

    成功了,谢谢

  5. Tony auditore Tony auditore

    路由器直接使用http/https代理可以吗?学校需要用http代理访问外网……想直接在路由器上设置代理就不用在电脑上设置了

    1. 可以啊

      1. 2725396368@qq.com 2725396368@qq.com

        如果路由器使用的HTTP代理有用户名跟密码,怎么办

  6. proxychains太好用了!!感谢分享~浏览器switchomega+命令行proxychains满足我的绝大部分需求!

  7. 橘子熟了吗 橘子熟了吗

    老高,在搬瓦工的vps上直接用privoxy转换socks5为http,是不是客户端就能直接用了?

    1. 客户端直接上 tinyproxy

  8. 智能路由器

  9. 什么路由器都能使么?

  10. sam sam

    [root@PandoraBox_1A51:/root]#/etc/init.d/privoxy restart /usr/sbin/privoxy: can't load library 'libpcre.so.0' sbin/里没有privoxy

  11. 大煎饼 大煎饼

    我的ss,用switchyomega ,代理协议只能用http...邪门啊

    1. 大煎饼 大煎饼

      什么sock5,我的switchyomega协议用s5,任何网站都打不开.只能用http才能正常,8月上旬还正常,没改过任何ss客户端和服务端的设置就这样了,厉害不,

    2. sock5,你确定你选对了?

  12. Winter Winter

    我对proxychains了解过,现在也在用。挺好的一个软件。 你说的这个privoxy既然能装在路由器里面,应该也能装在 linux系统上吧,因为我的路由器不是智能的,并且不能刷openwrt, 我的系统是debian8.1 我去找找资料关于privoxy的。

    1. Winter Winter

      恩,设定了,不信你来我的小站看一看头像。

    2. 看到了,我记得以前多说是可以的。。。现在估计因为某些原因导致无法使用了吧

    3. Winter Winter

      哦,真的吗,我试试再说。不可以呀。这是作为游客评论,两个字段必填呢。

    4. 你的邮箱设定头像了吗?

    5. 只要有源代码,理论上可以运行在任何平台上

    6. Winter Winter

      恩,谢谢了。话说,你如果用了多说系统,就不能使用gravatar(单词可能拼错)的头像了吗,我觉得这个挺方便的呢。

    7. 可以,如果你只留下邮箱,是可以使用gravatar的

  13. 请教您一下,我先说一下我的搭建环境,国内一台VPS,国外一台VPS,国外VPS上装了shadowsocks服务器端,国内服务器上安装了shadowsocks客户端来连接国外VPS上的shadowsocks服务器端,然后在国内VPS上安装privoxy来把国内的shadowsocks转化为HTTP代理供自己的电脑使用,/etc/privoxy/config里面的listen-address设置为 0.0.0.0:8080,然后用国内服务器IP 113.6.252.163:10111来访问网站(国内VPS内端口号:8080 -> 对应外部IP及端口号:113.6.252.163:10111 ;),老是提示This is Privoxy 3.0.19 on unknown (192.168.1.111), port 8080, enabled。换了端口也是提示这个,是哪里设置出问题了吗?反正HTTP代理挂上打不开任何网页。可以帮我解决下吗?

    1. 能不能叙述简单一点

添加新评论