Total Pageviews

Wednesday 21 September 2016

基于Openwrt+Shadowsocks+ipv6实现校园网免流量无限时长上网

简述
笔者利用笔记本电脑实现ipv6免费上网已经有一段时间了,原理是通过ipv6访问ipv4资源,在学校网络不限流量、不限时长、20兆带宽(我们学校ipv6限速上下对等20兆,没办法!),电脑开热点全寝室共用,那真是爽翻天 !

但是每天回到寝室总是打开电脑开热点还真是蛋疼的事情。再说电脑也不能总是开着吧。这时我就想能不能找个路由器,一天二十四小时开机,电脑、手机、平板随时都可以连。这个想法大概出现在半年前,由于手里没有路由器,就一直没弄,但是网上是有各种成功的案例的。
前段时间手里终于进了台K1,由于之前已经查了相当多的教程,所以就顺风顺水,很快就成功了。下面我就主要讲一下openwrt客户端的配置问题。

意义

在大部分高校,ipv4一般是计流量或计时收费的,(笔者学校就是计时收费的,50元200小时网通十兆带宽)而且,由于校园的特殊性,相应的价格也比市面上宽带服务商要高。万幸的是,这些高校一般具有ipv6网络环境,并且由于国家的大力支持,普及范围广,而且不计算流量,聪明的人早就想能不能通过利用ipv6已达到免流量及无限时长上网?答案是可行的,鉴于目前公网的环境普遍是ipv4,我们可以找一台同时具有ipv4和ipv6地址的服务器,我们在校内通过ipv6访问服务器,然后服务器处理我们的访问请求以ipv4/ipv6双栈的方式代替我们访问互联网,再将数据通过ipv6反馈给我们,从而到达免流上网的目的。并且,考虑到大部分高校ipv6没有限制速度,理论上可以达到服务器出口的带宽,当然,具体取决于你们学校的ipv6出口带宽。

为什么用Shadowsocks?

配置简单,真的简单!以前看到过信息学院的学长写的一篇blog,原理是ipv6 to ipv4 从而ipv6 to ipv4网络,其实原理是一样的,只是他用了openvpn这个软件,但是感觉实现起来好难。像这样的开源支持ipv6协议的软件还是有很多的,这里就不再陈述。
回到原题为什么用Shadowsocks,配置简单。vps服务提供商搬瓦工现在为了迎合国人的需求现在已经预配了Shadowsocks,只需要点击以下安装就ok了。

适合对象

具有ipv6地址ipv4流量(计时)收费贵爱折腾的大学生。不推荐打国服游戏,延迟你懂的,但对延迟没要求的游戏还是可以玩的,美服、亚服、台服随你玩。

准备

openwrt固件路由器

路由器的刷机请自行Google,教程一大堆,刷机时笔者也遇到过很多问题,坚持!如果你的也是K1路由器,也要刷机,不妨看这个教程。刷机的重点是刷Shadowsocks插件,我的K1直接刷的来自恩山网友的固件,固件里已经附带了Shadowsocks。openwrt固件自取。openwrt控制面板:

Shadowsocks+ipv6节点信息

因为笔者手里有台美国的vps,并且配置了Shadowsocks,所以现在拿来就直接用,老实说搭建的Shadowsocks平常很少用,之前觉得租这个vps很是浪费。但是自从寝室里有了这台全天候开机的路由器,值了!在这里我要强调一下,Shadowsocks的节点我们需要ipv6地址的,不然还是没法走校内的ipv6通道。

前方高能预警

操作

首先openwrt固件路由器登陆192.168.1.1,初始登录默认密码是:admin。登进去之后最好先不要对任何东西改动,按照正常路由器的配置对路由器进行拨号上网。然后选择Shadowsocks插件,选择启动。(为什么这样做呢?笔者尝试了几下,不拨号上网的话,ShadowsocksDNS配置好了以后无法上网,最后总结,先拨号上网、再配置Shadowsocks和DNS信息)
步骤:点击 openwrt服务>Shadowsocks

Shadowsocks的配置



服务器ip  
密码:  
服务器端口:  
加密方式:  

对Shadowsocks配置好了以后,点击下面的透明代理,选择启动
对Shadowsocks配置好以后,我们的任务还没有结束,最重要的就是配置DNS信息。这里如果不配置DNS,IP地址选择ipv4的,Shadowsocks是国外的,那么通过这种方式使用Shadowsocks就是通过路由器来翻fq,在这里我就不多说了。

DNS的配置

DNS设置有两种方案,一种是利用ChinaDNS,还有一种直接在DHCP/DNS设置页面(网络>DHCP/DNS)进行填写。
由于本次折腾的特殊性,路由器工作在纯ipv6环境下,也就是说路由器没有ipv4的网络,但常用的DNS服务器大多是以ipv4地址方式提供的,如果使用ipv4的DNS服务器就会导致无法解析。此处用了[2001:470:0:c0::2],但是很不幸,该DNS被污染了,无法解析如google,youtube一类网址,但是对国内的网站的解析很好:

2001:470:0:c0::


其他的DNS最好选择Google的,相对的来说,网站解析最全面,而且还可以fq,只是一部分了,选择Google的公共DNS有一个缺点,就是像移动端的微信或者qq了,朋友圈的信息或公众号加载不出来,这是很蛋疼的事情。个人还是推荐上面的那条DNS,速度快、国内网站全面,几乎全覆盖。
下面是一些从网上找来的公共DNS,可以试验一下,说不定有什么以外的收获呢。


ordns.he.net  2001:470:20::2     74.82.42.42

tserv1.fmt2.he.net  2001:470:0:45::2   72.52.104.74

tserv1.dal1.he.net  2001:470:0:78::2   216.218.224.42

tserv1.ams1.he.net  2001:470:0:7d::2   216.66.84.46

tserv1.mia1.he.net  2001:470:0:8c::2   209.51.161.58

tserv1.tor1.he.net  2001:470:0:c0::2   216.66.38.58

ns.ipv6.uni-leipzig.de  2001:638:902:1::10   139.18.25.34

Google Public DNS



google-public-dns-a.google.com  2001:4860:4860::8888   8.8.8.8

google-public-dns-b.google.com  2001:4860:4860::8844   8.8.4.4

from http://www.jianshu.com/p/4d44172f1a5b----------------

OpenWRT+shadowsocks实现校园网免流量上网

据说K1路由器能刷OpenWRT就折腾起来了,毕竟搞一台能直接翻墙的路由器是我多年的梦想啊~~哈哈
0x00 现状
目前使用shadowsocks已有两年多,买了一台美国VPS,支持ipv4和ipv6,校园网ipv6流量免费,速度千兆,电脑使用shadowsocks-windows+proxifier可以免流量上网+翻墙;手机主要使用shadowsocks android,可以翻墙,但是由于无线网通常都没有ipv6,所以不能免流量。
0x01 路由器刷系统
首先,得有个能刷openwrt的路由器,然后得把系统刷成openwrt或者pandorabox,具体过程在此不表,教程一搜一大把。安装shadowsocks的过程在此也不表,很多固件都自带了。
如果碰巧你也用的是K1,这里提供一个恩山的链接(点我点我),有网友做了不少版本适用于K1的固件,挺方便的。
0x02 shadowsocks设置
在设置页面“服务-Shadowsocks”中,填入远程服务器地址,此处使用ipv6,故填入服务器的ipv6地址,勾选上透明代理:
界面的操作对应的指令可以在“状态-进程”中看到,以上操作对应如下指令:
/usr/bin/ss-redir -b 0.0.0.0 -s [服务器ipv6地址] -p [服务器端口] -l [透明代理端口] -m aes-256-cfb -k [服务器密码] -t 60 -u
0x03 DNS服务器设置
DNS设置有两种方案,一种是利用ChinaDNS,还有一种直接在DHCP设置页面(“网络-DHCP/DNS”)进行填写。
由于本次折腾的特殊性,路由器工作在纯ipv6环境下,也就是说路由器没有ipv4的网络,但常用的DNS服务器大多是以ipv4地址方式提供的,如果使用ipv4的DNS服务器就会导致无法解析。此处用了OpenDNS提供的一个DNS服务器[2620:0:ccc::2],但是很不幸,该DNS被污染了,无法解析如google,youtube一类网址,先将就用着吧。
本次用的是直接设置DNS服务器为[2620:0:ccc::2],如下图:
(注,图中设了两个DNS服务器,第一个是一个台湾的DNS服务器,可以正确解析google,然而不是ipv6,所以放在这也只是个摆设)
做完这一步,可以正常访问没被墙的网站了,当然速度相对慢一点(延迟大)。
下一步考虑使用bind自行搭一个支持ipv6的DNS服务。
0x04 手机端辅助
手机连接路由器,可以正常上网了。然而还是不能访问google和youtube,怎么办呢?
手机打开shadowsocks android,ok啦,虽然感觉有点扯,而且不知道是不是要走双倍流量,然而,先能用着是最好了。