路由器刷OpenWRT安装shadowsocks使用透明代理+去DNS污染

上一篇文章路由介绍了如何在OpenWRT上开个双wan叠加带宽,这也是同学们刷OpenWRT最普遍的需求,那么,有没有什么办法能够让它顺便增加透明代理功能呢?

既然已经给路由器刷上了OpenWRT这个第三方的固件,那自然是有无线种可能了。

代理的种类

在如今我们常用的代理种类当中,最具有历史的恐怕就是VPN了,这也是广大外服游戏用户的首选——不得不说,它对UDP有着得天独厚的优势。

另外还有使用了Google应用引擎的,俗称GAE,比较有代表性的比如goagent、比如wallproxy

其他的还有就是ShadowSocks这一类的了,当然主要是这么三种,其实还有好多协议可以使用,但是考虑到ShadowSocks才是本文的主题,那么其他的代理方式我们暂且略过不讲。

准备

要在你的路由器上安装ShadowSocks,那么你需要了解你路由器的芯片类型,理论上既然能刷OpenWRT,那么应该就有对应的ShadowSocks软件包了,你要做的就是找对那个型号。

比如说路由的路由器是rg100a,使用的芯片是brcm63xx系列的。

软件包

  1. 路由使用的软件包是aa65535的解决方案,优点是直接包含了依赖不用另外安装;同时还支持图形化配置——当然了,部分内容还是需要使用CLI来搞定的。
  2. 还有我们需要的软件是dnsmasq,不过如果我没有猜错的话,你的路由器里应该是已经安装了这个软件来为子网提供DHCP和dns了!所以,你要做的就是对它进行高级定制来配合ShadowSocks即可!
  3. wget,这个你的路由器上肯定是有的,但是它并不支持https下载,所以,你还是需要额外安装一个GNU wget来完成两个规则列表的下载。

开干!

好了,首先你需要下载必备的软件包——也就是shadowsocks的软件包和luci图形控制app,它们的下载地址分别是这里(shadowsocks-libev-spec)和这里(luci-app-shadowsocks-spec)——考虑到你可能打不开这两个页面,那么我这里提供了shadowsocks和chinadns这两个软件和图形端的打包,当然是截止到文章写成这一天的最新版:)openwrt shadowsocks四件套本文中不会用到chinadns,相同功能由dnsmasq替代。

下载好两个文件之后,我们使用SCP命令将这两个文件推到路由器上去——如果你用的是Windows系统,那么你可能需要单独去下载一个名叫“WinSCP”的软件。

使用如上形式的命令,将两个文件都推到路由器的/tmp目录之后,我们使用ssh登录路由器。

登录路由器后,切换目录到/tmp,找到这两个文件,使用包管理工具分别安装它们。命令示例如下

这样两个包就安装好了,使用浏览器打开路由器的管理界面,如无意外,你应该已经能够在“服务”菜单下看到它了!

服务菜单下的shadowsocks

服务菜单下的shadowsocks

先别急着开启ShadowSocks,我们接着配置dns使其避开DNS污染,这样你才能畅快无阻的浏览互联网,不然的话,纵使你搭梯出墙,也只能碰到一片雾霾。

当然了,dnsmasq的配置就只能在CLI端配置了,因为图形端实在没有给出那么多选项╮(╯▽╰)╭

接下来确保你的路由器联网,然后更新包管理器的软件列表,然后下载GNU的wget,我们需要它来下载dns规则。

下载安装好wget后,使用如下命令来下载国内域名加速列表污染地址屏蔽列表,这两个列表一个是用来设定国内访问白名单,一个是用来屏蔽污染IP的黑名单,具体内容你也可以来这里瞧瞧。

 

好了,至此dnsmasq也配置好了,我们再回过头来看看ShadowSocks的配置。

——————————————

如下图所示,取消勾选“使用配置文件”这一项,这样你就可以在web页面来配置SS了,按照你自己远端服务器或者提供商提供的信息,填写你的SS配置吧!

取消勾选“使用配置文件”以在页面配置SS

取消勾选“使用配置文件”以在页面配置SS

值得注意的是:

你的SS的服务器地址如果使用的是域名而不是IP,那么你要注意域名的解析问题(由于设置了dns使用SS转发,所以可能会在SS连上之前无法解析这个域名,写入host,或者更换为IP最好!),最后一行的代理方式可以选择全局,如果使用智能代理,就不用管即可。

由于我们前边配置了dnsmasq的dns访问转发,所以接下来要配置

UDP转发:

选择将UDP查询包转发到哪里

选择将UDP查询包转发到哪里

勾选启用,然后根据前边dnsmasq的配置,我们设置本地端口为对应的7913以接收DNS查询包,然后填写转发地址,我们让这些查询包通过SS代理,然后访问到谷歌的公共DNS 8.8.8.8的53端口上。

这样一来,就实现了国内国外智能选用DNS(你可以查看accelerated-domains.china.conf以确认哪些域名会被发送到国内的114.114.114.114解析。)

现在,整个的配置过程就结束了,开启ShadowSocks,然后在CLI界面输入/etc/init.d/dnsmasq restart重启dnsmasq服务。

至此,你就可以享受自由的互联网啦

最后,如果你不满足于现状~就来看看路由器刷OpenWRT使用ShadowSocks透明代理进阶配置吧!

本文由 落格博客 原创撰写:落格博客 » 路由器刷OpenWRT安装shadowsocks使用透明代理+去DNS污染

转载请保留出处和原文链接:https://www.logcg.com/archives/860.html

About the Author

R0uter

如非声明,本人所著文章均为原创手打,转载请注明本页面链接和我的名字。

Comments

    1. 楼主 你好 我用的是15.05.1的版本,安装了 ( shadowsocks-client )和(luci-app-shadowsocks-spec)界面不显示,请问怎么处理啊

  1. 楼主我想问一下,路由器上ipv6的SS怎么配置,跟这个一样吗?
    大学生,利用ipv6+ss+无线路由来实现全局免费上网,哎,也是够折腾了。

  2. root@OpenWrt:~# scp /Users/xuyi/Desktop/tmp/libpolarssl_1.3.8-1_ar71xx.ipk root@
    192.168.1.1:/tmp/

    /usr/bin/dbclient: Connection to root@192.168.1.1:22 exited:

    ssh-rsa host key mismatch for 192.168.1.1 !
    Fingerprint is md5 3d:b3:a4:bd:70:6c:db:9e:46:80:36:01:23:60:be:6f
    Expected md5 3c:00:94:83:8a:56:ea:db:a6:7a:ff:a4:23:ff:ab:b8
    If you know that the host key is correct you can
    remove the bad entry from ~/.ssh/known_hosts
    lost connection
    root@OpenWrt:~# scp /Users/xuyi/Desktop/tmp/luci-app-shadowsocks-spec_1.5.0-1_al
    l.ipk root@192.168.1.1:/tmp/

    /usr/bin/dbclient: Connection to root@192.168.1.1:22 exited:

    ssh-rsa host key mismatch for 192.168.1.1 !
    Fingerprint is md5 3d:b3:a4:bd:70:6c:db:9e:46:80:36:01:23:60:be:6f
    Expected md5 3c:00:94:83:8a:56:ea:db:a6:7a:ff:a4:23:ff:ab:b8
    If you know that the host key is correct you can
    remove the bad entry from ~/.ssh/known_hosts
    lost connection
    root@OpenWrt:~#
    这是什么情况?

  3. 博主你好,有个问题想请教一下。现在用ss翻墙上网不都远程dns吗?为什么还需要dnsmasq解决dns污染的问题?

    1. 根据你使用的方案不同,其实dns并不一定就都远程解析,大部分的方案其实还是本地先解析一遍的。
      对于纯翻墙的目的来说,反不反污染其实现在意义不大了,因为污染的ip并非国内有效ip,还是会导致判定为墙外ip的,这样并不影响你翻墙——但从安全的角度来讲,这个叫做 dns泄漏 ,如果遇到了 DNS 劫持,那么中间人攻击者虽然不能一定看到你正在访问的内容,但一定能获取你要访问的域名,进而推断你正在访问的内容。

    1. 推荐linksys的路由器然后刷开源系统,我自己的话目前用的都是那些便宜的垃圾路由器,就没什么好推荐的了,因为我工作地点经常变动,不适合部署路由器。

  4. 没被墙的网站成千上万!!!这样会把弄得accelerated-domains.china.conf超大!!而且不太科学!有些没被记录的有没被墙的都要走vpn的dns查询!!打开网页会变得好慢!!能反过来就好了!

  5. 按此文章弄好后可以自动翻墙,但路由器不定时断网,进路由器检查看发现是shadowsock挂了,再按文章的说明加入了定时检查shadowsocks的脚本,现在的问题是,几乎有一半时间是Problem decteted, restarting shadowsocks.请问问题出在哪?我的shadowsocks是我自己的VPS服务器,在手机上和电脑上使用都是非常稳定的。
    路由为网件WNR3500L V1 Broadcom BCM4718A@453MHz 64M Ram 8M Flash

    1. 去下载最新版的ss客户端试试,如果你下载的是我博客提供的四件套,那么它已经过时了。,,,,我不知道你是否收到过我回复的邮件,我的博客好像退档了,好奇怪。

  6. 小弟按照仁兄的办法,给路由做了透明代理,家里的设备倒是都自动搭了梯子,但是还有几个问题想请教仁兄
    1,小弟家中还有NAS这些设备,做了透明代理后,无法vpn到家里的局域网了
    2,路由会间歇性断网
    还望仁兄赐教,解决问题谢谢

    1. 首先,路由器断网可能是远端DNS解析造成的,如果我没猜错的话,应该是DNS解析失败。你可以尝试去掉这个或者在电脑上指定一个比如说114.114.114.114再试试看还会不会断网。至于VPN,我不知道你是用何种方法做的服务器,所以我没办法的。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注