目前最有效的翻墙方式是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
也可以直接使用我编辑好的文件,基本涵盖了常见的被墙网站。