上一篇文章路由介绍了如何在OpenWRT上开个双wan叠加带宽,这也是同学们刷OpenWRT最普遍的需求,那么,有没有什么办法能够让它顺便增加透明代理功能呢?
既然已经给路由器刷上了OpenWRT这个第三方的固件,那自然是有无线种可能了。
代理的种类
在如今我们常用的代理种类当中,最具有历史的恐怕就是VPN了,这也是广大外服游戏用户的首选——不得不说,它对UDP有着得天独厚的优势。
另外还有使用了Google应用引擎的,俗称GAE,比较有代表性的比如goagent、比如wallproxy。
其他的还有就是ShadowSocks这一类的了,当然主要是这么三种,其实还有好多协议可以使用,但是考虑到ShadowSocks才是本文的主题,那么其他的代理方式我们暂且略过不讲。
准备
要在你的路由器上安装ShadowSocks,那么你需要了解你路由器的芯片类型,理论上既然能刷OpenWRT,那么应该就有对应的ShadowSocks软件包了,你要做的就是找对那个型号。
比如说路由的路由器是rg100a,使用的芯片是brcm63xx系列的。
软件包
- 路由使用的软件包是aa65535的解决方案,优点是直接包含了依赖不用另外安装;同时还支持图形化配置——当然了,部分内容还是需要使用CLI来搞定的。
- 还有我们需要的软件是dnsmasq,不过如果我没有猜错的话,你的路由器里应该是已经安装了这个软件来为子网提供DHCP和dns了!所以,你要做的就是对它进行高级定制来配合ShadowSocks即可!
- wget,这个你的路由器上肯定是有的,但是它并不支持https下载,所以,你还是需要额外安装一个GNU wget来完成两个规则列表的下载。
开干!
好了,首先你需要下载必备的软件包——也就是shadowsocks的软件包和luci图形控制app,它们的下载地址分别是这里(shadowsocks-libev-spec)和这里(luci-app-shadowsocks-spec)——考虑到你可能打不开这两个页面,那么我这里提供了shadowsocks和chinadns这两个软件和图形端的打包,当然是截止到文章写成这一天的最新版:)openwrt shadowsocks四件套(本文中不会用到chinadns,相同功能由dnsmasq替代。)
下载好两个文件之后,我们使用SCP命令将这两个文件推到路由器上去——如果你用的是Windows系统,那么你可能需要单独去下载一个名叫“WinSCP”的软件。
1 2 3 |
scp luci-app-shadowsocks-spec root@192.168.2.1:/tmp/ //scp 你文件路径 root@路由器IP:/tmp/ |
使用如上形式的命令,将两个文件都推到路由器的/tmp目录之后,我们使用ssh登录路由器。
登录路由器后,切换目录到/tmp,找到这两个文件,使用包管理工具分别安装它们。命令示例如下
1 |
opkg install xx.ipk |
这样两个包就安装好了,使用浏览器打开路由器的管理界面,如无意外,你应该已经能够在“服务”菜单下看到它了!
先别急着开启ShadowSocks,我们接着配置dns使其避开DNS污染,这样你才能畅快无阻的浏览互联网,不然的话,纵使你搭梯出墙,也只能碰到一片雾霾。
当然了,dnsmasq的配置就只能在CLI端配置了,因为图形端实在没有给出那么多选项╮(╯▽╰)╭
1 2 3 4 5 6 |
mkdir /etc/dnsmasq.d //新建一个dnsmasq.d的目录 //这里边存放dns规则 echo "conf-dir=/etc/dnsmasq.d" >> /etc/dnsmasq.conf //使dnsmasq.d目录内的规则生效 |
接下来确保你的路由器联网,然后更新包管理器的软件列表,然后下载GNU的wget,我们需要它来下载dns规则。
1 2 3 |
opkg update opkg install wget |
下载安装好wget后,使用如下命令来下载国内域名加速列表和污染地址屏蔽列表,这两个列表一个是用来设定国内访问白名单,一个是用来屏蔽污染IP的黑名单,具体内容你也可以来这里瞧瞧。
1 2 3 4 5 6 |
wget -4 --no-check-certificate -O /etc/dnsmasq.d/accelerated-domains.china.conf https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/accelerated-domains.china.conf wget -4 --no-check-certificate -O /etc/dnsmasq.d/bogus-nxdomain.china.conf https://raw.githubusercontent.com/felixonmars/dnsmasq-china-list/master/bogus-nxdomain.china.conf echo "server=/#/127.0.0.1#7913" > gfwlist.conf //最后一句是让其他不在列表中(即国外域名)都走代理解析。 |
好了,至此dnsmasq也配置好了,我们再回过头来看看ShadowSocks的配置。
——————————————
如下图所示,取消勾选“使用配置文件”这一项,这样你就可以在web页面来配置SS了,按照你自己远端服务器或者提供商提供的信息,填写你的SS配置吧!
值得注意的是:
你的SS的服务器地址如果使用的是域名而不是IP,那么你要注意域名的解析问题(由于设置了dns使用SS转发,所以可能会在SS连上之前无法解析这个域名,写入host,或者更换为IP最好!),最后一行的代理方式可以选择全局,如果使用智能代理,就不用管即可。
由于我们前边配置了dnsmasq的dns访问转发,所以接下来要配置
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
udp转发在cli下怎么搞哇
按照您的教程步骤一步一步做了 什么都成功了最后一步ss显示未运行 启用的勾勾了
楼主 你好 我用的是15.05.1的版本,安装了 ( shadowsocks-client )和(luci-app-shadowsocks-spec)界面不显示,请问怎么处理啊
同问。。。
楼主我想问一下,路由器上ipv6的SS怎么配置,跟这个一样吗?
大学生,利用ipv6+ss+无线路由来实现全局免费上网,哎,也是够折腾了。
ipv6不是还没有被墙么………………直接上啊,找个v6的dns就好啦,我还没用过v6网络呢 XD
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:~#
这是什么情况?
删除或者清空 ~/.ssh/known_hosts 即可,或者编辑这个文本文件把里边以 192.168.1.1 开头的这一行删除就行了。
哦,谢谢。刚才没注意在邮件上回了下不好意思。
博主你好,有个问题想请教一下。现在用ss翻墙上网不都远程dns吗?为什么还需要dnsmasq解决dns污染的问题?
根据你使用的方案不同,其实dns并不一定就都远程解析,大部分的方案其实还是本地先解析一遍的。
对于纯翻墙的目的来说,反不反污染其实现在意义不大了,因为污染的ip并非国内有效ip,还是会导致判定为墙外ip的,这样并不影响你翻墙——但从安全的角度来讲,这个叫做 dns泄漏 ,如果遇到了 DNS 劫持,那么中间人攻击者虽然不能一定看到你正在访问的内容,但一定能获取你要访问的域名,进而推断你正在访问的内容。
可否推荐一款路由器
推荐linksys的路由器然后刷开源系统,我自己的话目前用的都是那些便宜的垃圾路由器,就没什么好推荐的了,因为我工作地点经常变动,不适合部署路由器。
没被墙的网站成千上万!!!这样会把弄得accelerated-domains.china.conf超大!!而且不太科学!有些没被记录的有没被墙的都要走vpn的dns查询!!打开网页会变得好慢!!能反过来就好了!
这就看人需求了,这个列表也是应运而生的,如果你想要黑名单——你别说,还真有,去查查看 gfwlist 吧!
墙能翻 就是谷歌YouTube都上不了,这是什么原因
我也是,能翻墙Google和youtube上不了,但是查询国外网站IP显示是VPS的
你好,请问联想newifi mini,跟小米mini一样的CPU ,MT7620,应该下载哪个软件包呢
我看了一下链接,现在貌似是all?不分版本了?那你直接下载试试吧:)
按此文章弄好后可以自动翻墙,但路由器不定时断网,进路由器检查看发现是shadowsock挂了,再按文章的说明加入了定时检查shadowsocks的脚本,现在的问题是,几乎有一半时间是Problem decteted, restarting shadowsocks.请问问题出在哪?我的shadowsocks是我自己的VPS服务器,在手机上和电脑上使用都是非常稳定的。
路由为网件WNR3500L V1 Broadcom BCM4718A@453MHz 64M Ram 8M Flash
去下载最新版的ss客户端试试,如果你下载的是我博客提供的四件套,那么它已经过时了。,,,,我不知道你是否收到过我回复的邮件,我的博客好像退档了,好奇怪。
shadowsocks是在github上下载的,应该是最新版才对,搞不清楚问题出在哪,用logread命令查看也看不出个所以然,英文比较拙计
那好吧……我不知道是不是配置的问题,假定是软件的原因,那你试试我的四合一,也许旧版能行呢?
小弟按照仁兄的办法,给路由做了透明代理,家里的设备倒是都自动搭了梯子,但是还有几个问题想请教仁兄
1,小弟家中还有NAS这些设备,做了透明代理后,无法vpn到家里的局域网了
2,路由会间歇性断网
还望仁兄赐教,解决问题谢谢
首先,路由器断网可能是远端DNS解析造成的,如果我没猜错的话,应该是DNS解析失败。你可以尝试去掉这个或者在电脑上指定一个比如说114.114.114.114再试试看还会不会断网。至于VPN,我不知道你是用何种方法做的服务器,所以我没办法的。