WNDR4300配合Shadowsocks及ChinaDNS科学上网

in Shares with 8 comments

前言

之前一直在用WR703N作为路由器,但是由于性能瓶颈,很多功能在WR703N上无法实现,寝室一群基友凑钱买了个WNDR4300.于是有了这篇文章.

这篇文章介绍的方法基于aa65535的shadowsocks-spec for openwrt,介绍了如何在OpenWRT下配置自动翻墙,新版本支持在Luci下图形化配置,大大简化了配置过程。配置完成后,路由器本身获得自动翻墙能力,所有连入该路由的设备都可无障碍访问被墙的站点。是运行于路由器的透明代理。 方案根据IP判断是否代理,国内IP不代理,国外IP走代理。代理通过shadowsocks所带ss-redir做TCP转发实现,分国内外IP通过国内IP段列表文件chnroute来区别,并通过iptables规则分别处理(这些功能已经全部集成到shadowsocks-spec里了无需额外配置)。由于是基于IP的判定,故需要解决DNS污染的问题,故搭配使用ChinaDNS来解决。 由于只要国外IP均走代理,而不是被墙才走代理,那么本方案的优缺点也就很明显了。 优点:基本不会有漏网之鱼,保证所有被墙站点能访问;能够一定程度改善国内访问一些国外网站缓慢的问题,如果你的服务器速度很好,那么甚至可以起到加速国外站点访问的作用。 缺点:如果服务器速度一般,访问一些网站甚至会减速;对一些限制IP的站点和软件应用可能会造成麻烦。总之,请酌情选择。 本方案主要涉及到的开源项目 https://github.com/aa65535/openwrt-shadowsocks https://github.com/aa65535/openwrt-chinadns https://github.com/aa65535/openwrt-dist-luci https://github.com/aa65535/openwrt-redsocks2 https://github.com/madeye/shadowsocks-libev https://github.com/clowwindy/ChinaDNS

准备工作

文章中所需要的所有包都已经打包上传,包括本人使用的4300的OP固件.
链接:http://pan.baidu.com/s/1bnsBLqZ 密码:bp1o
如果您还不会刷Openwrt,请务必谷歌一下或百毒一下,熟悉刷Openwrt以及4300救砖操作后再来看本文章.

安装Shadowsocks以及ChinaDNS

首先opkg update更新一下软件包列表.
我们使用的是 shadowsocks-libev-spec_2.1.4-1_ar71xx.ipk 需要安装必要的依赖包.
opkg install ipset libopenssl resolveip
安装后请重启路由器.
将刚刚下载的全部软件包上传至/tmp目录,一路疯狂安装.
opkg install shadowsocks-libev-spec_2.1.4-1_ar71xx.ipk
opkg install ChinaDNS_1.3.1-1_ar71xx.ipk
opkg install luci-app-shadowsocks-spec_1.3.1-1_all.ipk
opkg install luci-app-chinadns_1.3.1-1_all.ipk

Shadowsocks以及ChinaDNS默认开机启动,平时不要对人家乱动手动脚.

Shadowsocks ChinaDNS DHCP/DNS的配置

我们登陆Luci管理界面,指向服务,已经能够看到Shadowsocks和ChinaDNS安静地躺在那等着我们调戏了.
Shadowsocks
我这里使用的是配置文件config.json,格式如下:

{
        "server": "X.X.X.X",
        "server_port": "443",
        "password": "password",
        "local_port": "1080",
        "method": "rc4-md5"
}

习惯问题,也可以选择直接在Luci填写,不多赘述.
ChinaDNS
ChinaDNS也没有特别需要注意的,上游服务器一般填写自己服务商提供的DNS,但是后一个必须要是纯净的DNS服务器.
在这里我使用的是自己在VPS上用Pdnsd搭建的服务器,教程见pdnsd搭建DNS服务器简易教程(需X墙)
设置好ChinaDNS后在Luci管理界面切换至"网络"-"DHCP/DNS"按下图配置:

补充及参考

如果出现无法访问自己VPS的情况,请把VPS的IP加入shadowsocks的ignore.list内.
dnsmasq参考了A大的教程,在这里放出,供大家参考:
需先安装完整版的dnsmasq,在打包中找既可.

本文参考了飞羽博客的文章,在此表示对作者以及各开源项目人员的感谢.
毕竟只用了一个下午来写这篇文章,如有纰漏,请大家指出.我会尽快修改.

Responses
  1. 搞到我都想买一个路由器了

    Reply
    1. @imlonghao

      去吧去吧,4300才300就买到了。

      Reply
  2. 大家一般翻墙后干嘛?我就偶尔用下Google,偶尔刷下Instagram,基本就不干什么了

    Reply
    1. @Betty

      很多科技资讯以及最新的技术都需要FQ看呢,而且做Android开发不FQ几乎没法做了,对于大多数程序员来说FQ是很必备的东西。还有就是Google真的比国内的搜索引擎好太多了。

      Reply
  3. SM

    你好 请问shadowsocks死都无法运行是什么原因造成

    Reply
  4. 感谢,之前一直不能登录VPS,加入列表好了。

    Reply
  5. 折腾

    Reply
    1. @MinonHeart

      不折腾会死星人

      Reply