Openwrt配置Shadowsocks
之前家里用的是DB120-WG,双USB口,16M Flash,64M RAM。用起来爽爽的,刷OpenWrt,接移动硬盘,transmission和Aria2离线下载,设置Shadowsocks,自动配置翻墙。可惜有次吵架,被老婆一脚给踩坏了,唉。后来通过闲鱼重新购入一枚Netgear WNDR3400,这家伙体质没有DB120-WG来得好,Flash、RAM小,无线的驱动不理想,不过还好基本功能能满足,可以刷OpenWrt和dd-Wrt。
想法
以前上网用的是浏览器(Firefox, Chrome),加代理控制插件(SwitchyOmega,AutoProxy),然后是代理(Shadowsocks, SSH)。现在用路由器来管理,思路就是路由器直接判断网址是否需要走代理,这样就可以透明代理上网了。
List中的域名站点走代理,不在List中的域名不走代理,根据域名判断。同时List中的域名需要通过其它方法获得正确的域名解析。正好ss-tunnel
也提供了此功能。
服务器设置
服务器同样用的也是Shadowsocks-libev
,应该可以节约一些资源,毕竟VPS内存不大。如果需要用ss-tunnel
走VPS来做域名解析代理,ss-server
参数后需要增加-u
,enable udprelay mode。
然后就是一个黑科技Google BBR,大大地增加了代理速度。以前未使用BBR的时候,速度大概就200KB/s,开户BBR后速度可达到2MB/s,这还是我办的宽带是20M的情况下。开启BBR简单的办法就是将内核升级到4.9,或者自己Patch内核。具体参考了以下两篇文章:
路由器设置
安装必要软件
首先了解路器SoC架构,然后增加以下内容到/etc/opkg.conf
。注意将签名验证给注释掉。
1 | src/gz openwrt_dist http://openwrt-dist.sourceforge.net/packages/OpenWrt/base/{architecture} |
然后就是安装需要的软件了。
1 | opkg update |
配置
配置Shadowsocks信息
1 | { |
新建Shadowsocks init文件。
1 |
|
修改文件权限,并设置开机启动。
1 | /etc/init.d/shadowsocks enable |
配置dnsmasq和ipset
增加防火墙规则,同时在firewall.user
中增加,开机后便自动增加。
1 | ipset -N gfwlist iphash |
配置Dnsmasq
修改/etc/dnsmasq.conf
,并新增目录/etc/dnsmasq.d
。
1 | all-servers |
将dnsmasq_gfwlist_ipset.conf放到目录/etc/dnsmasq.d
中,规则主要是处理哪些域名需要进行特殊处理。根据格式可自行修改,也可做adblock.conf
,这样可进行广告处理,直接将DNS结果返回空。
1 | #使用不受污染干扰的DNS解析该域名 可以将此IP改为自己使用的DNS服务器 |
其中的127.0.0.1#5353
可另行处理,可用8.8.8.8#53
或其它未被污染的服务器替代。
主要参考了以下文章
PS:上次路器配置好后一直没有动过,现在OpenWrt的分支LEDE更活跃,基本转LEDE了。