自从挖煤的校长来了之后,校园网就不再是免费使用了,变成了现在这个样子:每个月 20G 免费流量,超出需要付费。对于大部分人来说,寝室的 WiFi 好像突然就变得鸡肋了,连上了 WiFi 也不敢放肆了,真是让人憋屈。
在我搬回本部之前就已经在研究这个如何免流量上网的事情了,在宏福那里研究不是很顺利,毕竟宏福的 IPv6 不是很好折腾,好在电信还算有点良心,分配了 240E 开头的原生 IPv6 地址,各种关于 IPv6 的实验得以进行。7 月刚从宏福搬回本部,室友不到两天就用了 12G 的流量,一个月 20G 的免费流量完全不够用。免流,势在必行。我稍微研究总结了一下,目前主要有两种免流方式,下面我一个一个慢慢说。
免流原理
中国的校园网网络一般都是双栈网络,IPv4+IPv6,而一般的学校是对 IPv4 流量收费的,对 IPv6 流量免费,我们只要把所有系统软件产生的需要收费的 IPv4 流量转换为 IPv6 流量走出校园就可以做到免费上网了。对 IPv6 流量免费并不是不能对 IPv6 流量计费,而是现在校园网作为推广试验 IPv6 的环境,国家政策鼓励的结果。现在的移动 4G 已经启用了 IPv6,不可能放你免费用的。
但是,中国的大部分网站(其实世界上多数网站也这样)没有配置 IPv6 地址,只能通过 IPv4 流量访问,所以我们的 IPv6 流量从校园网出去之后还要转换回 IPv4 流量才能正常使用网络服务。一般来说我们需要一台这样服务器:同时有 IPv4+IPv6 环境,与我们的电脑使用 IPv6 通信,与各大网站使用 IPv4 通信,服务器在中间中转转换。
接下来我们关注的重点就是这个可以转换我们流量的服务器了。
环境前提
你必须得有访问 IPv6 网络的权限,如果你可以正常打开 北邮人 BT 并能正常 BT 下载做种等操作,说明你的网络是有 IPv6 环境的,具备免流量的条件。
一、DNS64
维基百科是这样解释 DNS64 的:
DNS64 describes a DNS server that when asked for a domain’s AAAA records, but only finds A records, synthesizes the AAAA records from the A records. The first part of the synthesized IPv6 address points to an IPv6/IPv4 translator and the second part embeds the IPv4 address from the A record. The translator in question is usually a NAT64 server. The standard-track specification of DNS64 is in RFC 6147.
There are two noticeable issues with this transition mechanism:
* It only works for cases where DNS is used to find the remote host address, if IPv4 literals are used the DNS64 server will never be involved.
* Because the DNS64 server needs to return records not specified by the domain owner, DNSSEC validation against the root will fail in cases where the DNS server doing the translation is not the domain owner’s server.Wikipedia – DNS64
通过配置 IPv6 DNS,对内容服务商的域名进行 IPv4 → IPv6 解析结果转换,实现 IPv6 与 IPv4 资源互通。简单的说就是,我们使用了一个“不正常”的 DNS 服务器,在我们访问某个网址域名时,返回一个“错误”的地址,这个地址是 IPv6 地址,我访问这个错误的地址却也能得到正确的结果,这就是这个服务器在中间转换的结果了。
比如正常情况下我访问凤凰网,连接的是 211.68.71.214
这个地址,在使用 DNS64 之后,我连接的地址就变为了 240c:f:1:6644:2:0:3ccf:f662
,但是同样能打开凤凰网。
下面以 Windows 10 为例说明设置方法,各 Linux 发行版、macOS 设置方法请自行搜索“系统名称 + 修改 DNS”,方法大同小异。
首先“打开网络和 Internet 设置”
然后选择“更改适配器选项”
如果你使用网线接入校园网,则选择“本地连接/以太网”,如果你使用 WiFi 接入校园网,则选择“无线网络连接”。在相应的连接上面右键,选择“属性”。
选中“Internet 协议版本 6 (TCP/IPv6)”,然后点击“属性”
选择“使用下面的 DNS 服务器地址”,并如图填入 240C::6644
之后逐次点击确定保存更改。
此时退出校园网登陆,试一试现在能否打开百度新浪等页面?
手机连接 WiFi 也可以更改 DNS 服务器,具体每部手机修改方法请搜索解决。
这种方法最简单,但同时也有缺点:不能播放视频,网页加载速度慢,不能使用 QQ。
二、使用代理服务器
这一种方法就没有了上一个方法的缺点了,可以正常播放视频,实测优酷土豆爱奇艺流畅播放,同时还可以观看 YouTube 视频。原理很简单:使用支持 IPv6 的主机作为代理服务器。架设代理的方法有很多,Shadowsocks、OpenVPN 等支持 IPv6 的软件是不错的选择,我们这里介绍使用 Shadowsocks。
维基百科上面对于 Shadowsocks 的解释:
Shadowsocks 可以指:一种基于 Socks5 代理方式的加密传输协议,也可以指实现这个协议的各种开发包。当前包使用 Python、C、C++、C#、Go 语言等编程语言开发,大部分主要实现(iOS 平台的除外)采用 Apache 许可证、GPL、MIT 许可证等多种自由软件许可协议开放源代码。Shadowsocks 分为服务器端和客户端,在使用之前,需要先将服务器端部署到服务器上面,然后通过客户端连接并创建本地代理。
Wikipedia – Shadowsocks
虽然 Shadowsocks 的目的是为了翻墙,但是 Shadowsocks 功能强大方便易用,也可以拿来作为我们的免流上网中转工具。
第一步,你需要有一个支持 IPv6 的 Shadowsocks 服务器节点,这一步很重要,没有可用的服务器怎么也玩不转。个人推荐 Bandwagon、Digital Ocean、Vultr 这些服务商,一般都比较便宜,如果你想使用 Vultr 的话,可以使用我的 邀请链接,这样的话你我都可以获得 $10 的优惠。注册之后,开一个最低配置的 VPS 就可以满足我们的需求了,一般选择美国的节点,系统推荐选择 Ubuntu 16.04,安装方法可以参考我的另一篇文章:Linux 安装配置 Shadowsocks-Libev
第二步,下载 Shadowsocks 客户端程序,打开软件,将 Shadowsocks 服务器信息对应填入其中。
第三步,服务器信息填写完毕后,下载安装 SSTap。
安装过程中会提示“您想安装这个设备软件吗?,”勾选始终信任来自…的软件,并点击安装。
打开 SSTap,点击添加新代理,选择“添加一个 SOCKS5 代理”,这里不能选择添加 SS 代理,因为 SSTap 不支持使用 IPv6 连接。然后按照下图设置。
添加完成回到主界面,点击“创建或者修改代理模式”
在弹出的“代理模式管理”窗口中,点击“添加”,按照下图填写。
规则列表如下
0.0.0.0/8
10.0.0.0/8
100.64.0.0/10
127.0.0.0/8
169.254.0.0/16
172.16.0.0/12
192.0.0.0/29
192.0.2.0/24
192.88.99.0/24
192.168.0.0/16
198.18.0.0/15
198.51.100.0/24
203.0.113.0/24
224.0.0.0/3
至此,全部设置已经完成,点击保存,返回主界面,点击连接,稍等片刻即可完成。
现在打开浏览器,任意打开网站看一看,是不是可以免登陆校园网就可以打开了?
手机上的设置相对简单,前提也是必须可以正常访问 IPv6 网络。Android 手机下载安装“影梭”,iPhone 下载安装“Shadowrocket”。
添加新配置,选择“手动配置”,将服务器的地址,远程端口,密码,加密方法填写正确,路由选项选择“绕过局域网地址”,其他选项无需修改。
填写完毕,点击保存,回到主界面,点一下纸飞机便可以免流上网了。
iOS 系统的设置方法类似,这里不再演示。
由于是使用代理服务器进行网络浏览,所以正常情况下会比直接访问速度稍慢,但还是可以接受的。
各种各样的免流方法并没有一个是完美无缺的,在免流情况下,玩游戏的延迟很可怕,几乎是不可能的事情,所以玩游戏还是用流量吧。20G 的专属游戏流量,对我来说,足矣。
末尾贴上各平台客户端下载地址:
- Windows: shadowsocks-windows SSTap
- macOS: ShadowsocksX-NG
- Android: shadowsocks-android
- iOS: Shadowrocket
但是这样延迟就很高了
大佬 “Linux 安装配置 Shadowsocks-Libev” 这篇文章失效了呀
建议参考这里吧,因为时常会有变化,所以看官方的比较靠谱 https://github.com/shadowsocks/shadowsocks-libev
iOS的shadowrocket连接ipv6的服务器超时了是什么情况?版本是2.1.11(510)
不了解小火箭的情况,但是你可以先排查一下IPv6网络环境是否正确,然后再看一下服务器端的设置有没有打开IPv6端口。如果IPv6环境正常,那就搜索“IPv6 Shadowsocks”查找一下如何设置SS的IPv6端口。
大佬 sstap是做什么的 ss不是已经实现 v6tov6 了吗
这个的作用主要是模拟出一张网卡,以便将所有的流量都转发到SS上去
大佬 我可以用国内服务器吗,现在景安也支持ipv6,给我分配了ipv6的地址,我怎么用景安实现免流呢
操作没有区别,只是没有翻墙效果。用国内vps上网更爽,甚至可以用来打游戏。