使用树莓派建立Http公共代理服务器

2016-08-24 22:35:05 +0800


目前最有效的翻墙方式是Shadowsocks,但是Shadowsocks是socks5代理且需要安装客户端,所以在部分设备上无法使用。而最为通用的代理方式是http代理,几乎所有的设备都可以使用http代理。本文介绍如何在树莓派上安装Shadowsocks客户端,并将其转换为http公共代理服务器。

一、安装Shadowsocks客户端

首先安装Shadowsocks客户端,Shadowsocks客户端有多种选择,可随意安装其中一种,本人偏爱libev版客户端。

在终端中执行以下命令

git clone https://github.com/shadowsocks/shadowsocks-libev.git
cd shadowsocks-libev
sudo apt-get install --no-install-recommends build-essential autoconf libtool libssl-dev gawk debhelper dh-systemd init-system-helpers pkg-config asciidoc xmlto
dpkg-buildpackage -b -us -uc -i
cd ..
sudo dpkg -i shadowsocks-libev*.deb

也可以使用breakwa11的ShadowsocksR

git clone https://github.com/breakwa11/shadowsocks-libev.git

二、配置Shadowsocks客户端

1.修改init.d服务脚本

使用root权限修改/etc/init.d/shadowsocks-libev文件,将其中的

DAEMON=/usr/bin/ss-server

修改为

DAEMON=/usr/bin/ss-local

/usr/bin/ss-server是服务端程序,/usr/bin/ss-local是客户端程序。

2.修改Shadowsocks配置文件

使用root权限修改/etc/shadowsocks-libev/config.json文件

{
  "server":"www.example.com"  #服务器IP
  "server_port":8388,     #服务器端口
  "local_address":"0.0.0.0",  #客户端监听IP范围
  "local_port":1080,      #客户端监听端口
  "password":"password",    #认证密码
  "timeout":60,
  "method":"aes-256-cfb"    #加密方式,常用的是aes-256-cfb
}

3.运行Shadowsocks客户端

一般安装完libev版Shadowsocks,默认都会把Shadowsocks设置为开机自动运行,只需要重启树莓派即可自动加载新的配置。也可以手动重启Shadowsocks服务。

sudo service shadowsocks-libev restart

至此,Shadowsocks客户端配置完成,可以使用其他设备测试是否正常。

三、配置http公共代理服务器

1.安装Privoxy

sudo apt-get install privoxy

2.配置Privoxy

修改/etc/privoxy/config文件

#修改监听端口,设置为全局监听,也可设置为仅监听局域网
#listen-address  localhost:8118
listen-address  0.0.0.0:8118

#设置所有网站通过socks5转发,不要漏了最后的.
forward-socks5 / 127.0.0.1:1080 .

3.重载配置文件

sudo service privoxy restart

四、配置自动切换代理

可以为Privoxy设置白名单和黑名单,实现仅被墙网站走Shadowsocks通道。

1.修改/etc/privoxy/config文件

#删除之前设置的所有网站通过socks5转发
#forward-socks5 / 127.0.0.1:1080 .

#在最后一行添加以下内容
actionsfile pac.action

2.新建/etc/privoxy/pac.action文件,输入以下内容


direct      = +forward-override{forward .}
shadowsocks         = +forward-override{forward-socks5 127.0.0.1:1080 .}
default     = direct
#==========默认代理==========
{default}
/
#==========直接连接==========
{direct} 
.edu.cn
202.117.255.
222.24.211.70
#==========shadowsocks代理==========
{shadowsocks}
com.google
domains.google
googleapis.com
googleapps.com
googleartproject.com
googleblog.com
googlebot.com
googlecode.com
googlecommerce.com
googledomains.com
googledrive.com
googleearth.com
googlegroups.com
googlehosted.com
googleideas.com
googlelabs.com
googlemail.com
googleplay.com
googleplus.com
googlesource.com
googleusercontent.com
googlevideo.com
googlezip.net
groups.google.cn
gstatic.com
.google.com
.googlesile.com
.git.io
.github.com

也可以直接使用我编辑好的文件,基本涵盖了常见的被墙网站。

pac.action


上一篇:树莓派设置USB存储设备自动挂载

下一篇:在Linux终端环境中使用Socks5代理