WNDR4300-openwrt 之shadowsocks 配置

Thursday, October 30, 2014 字数 1529

翻X应该是每个天朝人必备技能。废话不多说,在路由器上部署shadowsocks可以方便的让连接到路由的所有设备统一翻X,尤其适用于iphone和ipad设备——它们不越狱的话几乎没有办法实现智能翻。

网上有很多相关教程,大多数是由shadowsocks + chinadns + iptable 或者之类的方案,但是我在跟着大神们的设置的时候不知是出了什么问题,总是连接不稳定,时常连正常的网也上不去。我想可能是路由的性有限,把翻X和智能分流的工作都放在路由上会让它过载之类的,但是我也是个菜鸟,没有去深究到底是哪一步出现问题。

总之我后来找到了一个方案:路由器上运行shadowsocks,然后自动分发pac文件让每个客户端自己运行智能分流。这样的话负载就分布到了每个设备上,路由只要运行shadowsocks就好,而且由于pac文件放在路由器上,所以更新起来各终端也会自动更新。下面我讲一下具体实现细节。


第一步

装shadowsocks。从这里下载ipk安装包(好像被墙了?无法下载的同学我在文末打包一份放到百度盘里大家自行下载)放到路由器的/tmp文件夹里,然后

cd /tmp
opkg update
opkg install  [shadowsocks文件名]

安装的同时如果有依赖包没有装的话会自动装上。这一步应该很简单,大家如果遇到问题百度一下应该都能轻松解决。装好了之后配置文件应该在/etc/shadowsocks.json,我习惯有ftp文件管理来修改它,打开之后内容如下:

{
    "server”:”这里填帐号ip”,
    "server_port”:”远程端口”,
    "local_port”:”本地端口,我一般填1080”,
    "password”:”密码”,
    "timeout":"600",
    "method": “加密方式 “
}

换成你自己的就ok 了,然后让它开机启动:

/etc/init.d/shadowsocks enable

手动运行:

ss-local -c /etc/shadowsocks.json

此时,第一步已经完成,这个时候你用chrome把代理调成192.168.1.1:1080就应该可以科学上网了。


第二步

把socks代理转成http代理。为什么要转?因为iphone好像不能使用socks代理(后来发现实是默认就支持的,这一步可以跳过),我们需要安装一个名为 privoxy 的包,很简单:

opkg install privoxy

完成!完成后我们要修改 /etc/privoxy/config ,假设监听端口为默认的 8118 。修改 listen-address 为 0.0.0.0:8118,其它默认,在文件结尾添加如下配置

forward-socks5 / 127.0.0.1:1080 .                            
forward 192.168.*.*/ .                                       
forward 10.*.*.*/ .                                          
forward 127.*.*.*/ .                                         
forward localhost/ .

启动 privoxy

/etc/init.d/privoxy start
/etc/init.d/privoxy enable

第二步完成!


第三步

由路由把PAC文件自动发给各下家。首先你得有个PAC文件(废话),把PAC文件里的proxy信息改成 socks5 192.168.1.1:1080或者PROXY 192.168.1.1:8118,前者是shadowsocks的scoks5代理端口,后者是privoxy的http代理方式端口。如果有不会改的同学我同样也把这个文件打包放到文章尾,自己下载后注意把var httpProxy 这一行改成你自己的信息。

然后把pac文件重命名为proxy.pac(其实随便你叫什么名都行,下面记得自己改成你的名字就好了),放到路由的/www文件夹下,我们利用 WPAD 协议自动分发 PAC。

修改 /etc/config/dhcp 在 config dnsmasq 选项下面增加配置

list dhcp_option '252,http://192.168.1.1/proxy.pac'

保存,重启 dnsmasq。

/etc/init.d/dnsmasq restart

然后,设置一下权限,让其他机器可以访问这个文件,

cd /www
chmod +x proxy.pac

至此,在路由器上所有的操作已完成。


第四步

各终端的配置(mac,iphone,ipad,pc)。 水果家的设备很简单,iOS只要在wifi设置的详细界面里把http代理选为『自动』地址为空就可以了。mac的话在『网络设置』-『高级』-『代理』里设置为自动发现代理。完成。 pc的话麻烦一点,在ie的 连接、局域网设置为自动检测代理。 安卓的话—-没有用守安卓机,自己去找找应该也有相关设置。


好吧,所有的步骤都完成了。你们要的文件都打包在此:dropbox