使用IPv6节省校内的网络流量开支

联网是一切的开始。学校的校园网建设还是比较完善的。从费用上来说每个月20G免费流量,就算用超价格也还是比较合理的;管理界面有查看流量报表、查看在线终端和登陆日志的功能,甚至能自动下线一些可能是蹭网的设备,考虑得很周到,用招行手机网银充值页很方便;宿舍每个床位都有网口,可以通过Web认证登陆,图书馆等公共场所还有免费的热点覆盖,速度也还不错。

所以为什么我要想方设法节省流量的开支呢?

  • 开支:在一周内我就把20G免费流量几乎用光,在9月的第一天用掉了1.5G流量,按照这个趋势下去,每个月开支。。。
  • 良好的习惯:从我爸身上学到的精算流量、和运营商斗智斗勇的良好习惯,必须想方设法节省流量开支。
  • 本科期间的陋习:本科期间使用了一些方法节省自己的流量开支,现在需要增加这个开支就心里痒痒的。
  • 更好的学习与生活环境:如果上网需要担心开支问题,势必会影响获取网络上各种优质资源的积极性。
  • 其他:顺带解决在宿舍无法使用路由器访问IPv6网络的困惑。

于是在同学和学长的提醒下,并大概分析了我的流量都花到了什么地方后,我终于意识到了IPv6免流量的优势,并想着如何最大程度发挥IPv6的优势。

通过路由器也能获取到IPv6地址

宿舍的一个网口需要同时接入手机、电脑等设备,就得使用一个无线路由器了。由于之前我一直偏好将路由器设置为router模式,所以在路由器的内部网路中,我的设备都没有IPv6地址。上PT下载时,还必须将网线直插到电脑上,非常麻烦。之前我一直认为这是路由器不支持IPv6的表现,但稍微考虑后发现如果路由器只是作为AP,充当一个无线交换机的角色后,电脑手机是可以直接从校园网自动获取到独立的IPv6地址的,虽然这样稍微有点不安全,因为我习惯用路由器做一个保护,防止其他用户可以直接访问到我电脑的端口。
使用的路由器是mini型的低端路由器,切换成为AP模式后就无登陆密码保护了,这时候需要手动调整电脑IP到路由器使用的子网段,再访问路由器管理界面设置密码。

1
$ sudo ifconfig wlan0 192.168.1.100 netmask 255.255.255.0

我的流量都去哪儿了?

虽然并没有详细的统计结果,但我主要耗费的流量在于

  • 看Youtube每日订阅的视频,耗费了大量的流量,并且由于在VPS上开了冗余发包(用于低质量网路环境加速),可能实际流量是视频流量的2-3倍。
  • 其他外网网站访问流量,刷推、查看RSS订阅、搜索和Google办公套件等。
  • 更新电脑和手机软件,耗费不多,但也是比较大的一部分开销。
  • 偶尔看国内视频,耗费不多。
  • PT下载电影,已经使用IPv6了。
  • 国内的网站访问流量。

由于使用私人梯子,并且看Youtube等外网流量都是走梯子的,所以如果我和VPS之间的流量转换为IPv6,就应该能节省一大笔流量了。并且从这个思路看,也可以找国内的IPv6代理中转来节省在国内的流量。

配置影梭监听IPv6地址

使用的搬瓦工VPS申请IPv6地址非常容易,在控制面板 > Admin functions > IPv6 Addresses 内添加地址即可,几分钟生效。
由于IPv6地址目前几乎是使用不完的,可以申请到一个子网的全部地址,不过目前使用其中一个就行了。

add_ipv6

然后启动两个影梭服务器实例,分别监听IPv4和IPv6地址:

1
2
3
4
5
6
"server":"0.0.0.0" # IPv4 地址
"server":"::" # IPv6 地址

# 启动服务器
/usr/bin/ss-server -c /etc/shadowsocks/config.json -a root -u -f /var/run/shadowsocks/shadowsocks.pid
/usr/bin/ss-server -c /etc/shadowsocks/config6.json -a root -u -f /var/run/shadowsocks/shadowsocks6.pid

最后在电脑上启动两个客户端,分别连接两个服务器,并监听两个本地端口,这样方便在本机没有IPv6地址的时候进行切换。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# local hosts
x.x.x.x yqf.me
y:y:y:y:y:y:y:y yqfv6.me

# v4
"server": "yqf.me",
"local_port": 11000,

# v6
"server": "yqfv6.me",
"local_port": 11001,

# 启动客户端
ss-local --fast-open -c /path/to/config.json &
ss-local --fast-open -c /path/to/config6.json &

至此所有外网的流量就走IPv6了。

电脑软件更新

  • 通过命令行指定使用IPv6。

    1
    sudo apt-get -o Acquire::ForceIPv6=true install pkg
  • 通过更换校园网内部的源来节省这一部分流量,看到校园内还有AOSP的镜像,表示万一有这方面需求可以节省很多流量了。

通过Chrome查看DNS缓存记录

可以通过chrome://net-internals/#dns查看一下有哪些网站已经支持了IPv6,youku没有支持。