BJUT一个月30G的流量屈指可数,稍微一个不注意就用光了。而购买流量的价格又十分昂贵,想着通过IPv6可以免除校园网流量计费,就折腾了一下,现分享一下折腾记。
校园网环境以及工作原理
我所在的BJUT提供有线以及无线两种互联网接入方式。有线的RJ45接口一般在宿舍桌子下方,无线AP在走廊里面,数个宿舍共享一个AP(通州是一个宿舍一个AP)。其中,在大多数情况下,无线网络的速度上下行基本上都只有40Mbps,有线网络IPv4上下行基本上也是只有40Mbps。这点上下行带宽对于一个geek来说可能有点不太够用,但是IPv6有线的带宽下行可以达到400Mbps,上行也有100Mbps。无线网络基本上没有IPv6的接入,有线网络在大多数情况下还是有IPv6的接入的,所以想要免流量最好是只通过有线网上网。
得以实现IPv6的免流量的逻辑就是校园网并不对IPv6的请求计入流量,而只对IPv4计入流量,所以我们的思路就是找一台IPv4/IPv6双栈服务器做跳板,在校园内通过IPv6访问跳板服务器,服务器再将请求通过IPv4转发给目标,实现在校内通过IPv6访问IPv4资源和免流量的目的。同时,如果跳板服务器在GFW墙外,那么同时可以达到翻墙的效果,何乐而不为呢?这一切的成本可以低至5USD/mo。
跳板服务器的搭建
搭建跳板服务器的过程与搭建一台普通的V2Ray服务器别无二致,只是跳板服务器同时需要IPv6和IPv4两种IP协议罢了。在校内访问跳板服务器的时候需要通过IPv6的地址就可以了。
购买VPS(以Vultr为例)
跳板服务器就是我们所说的VPS,在这个情况下我选择了境外的Vultr。它的VPS提供IPv6的地址,而且价格便宜,创建和删除VPS都很方便。
我购买了5USD/mo的VPS实例,其配置是单核CPU,1G内存,25G的SSD,以及一个月1T的数据流量,对我来说应该是绰绰有余了。
在购买的时候选择Enable IPv6,安装好自己会用的操作系统,如果不会用Linux那么推荐安装Ubuntu 20.04。
注意不要买2.5USD/mo的IPv6 only的实例,那样会让你无法访问IPv4的资源!
登入VPS
在VPS实例创建完成后,就可以通过SSH登入进服务器了。在后台的控制界面可以看到服务器的IP地址以及root帐号的密码。我们可以通过putty或者xshell等软件远程登入服务器。这个过程就不详细展开了,网上都有详细的教程,具体可以关键字「SSH登入服务器」进行搜索。
安装V2Ray服务器端
按照 https://github.com/v2fly/fhs-install-v2ray 的脚本,安装V2Fly服务器端。
在终端运行:
# bash <(curl -L https://raw.githubusercontent.com/v2fly/fhs-install-v2ray/master/install-release.sh)
应该就可以自动安装成功了,如果有错误,请先解决依赖问题。
下面开始配置V2Ray服务端。用喜欢的文字编辑器打开
/usr/local/etc/v2ray/config.json
V2Ray配置文件。下面提供一个配置文件的模板。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56{
"log": {
"access": "/var/log/v2ray/access.log",
"error": "/var/log/v2ray/error.log",
"loglevel": "warning"
},
"dns": {},
"stats": {},
"inbounds": [
{
"port": 443 //将这里改成一个自己喜欢的端口号,推荐443,
"protocol": "vmess",
"settings": {
"clients": [
{
"id": "" //在网站生成一个随机的UUID,
"alterId": 2
}
]
},
"tag": "in-0",
"streamSettings": {
"network": "tcp",
"security": "none",
"tcpSettings": {}
}
}
],
"outbounds": [
{
"tag": "direct",
"protocol": "freedom",
"settings": {}
},
{
"tag": "blocked",
"protocol": "blackhole",
"settings": {}
}
],
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"ip": [
"geoip:private"
],
"outboundTag": "blocked"
}
]
},
"policy": {},
"reverse": {},
"transport": {}
}这是一个非常基础的使用vmess协议的配置文件,如果你有更多的其他需求,可以自己更改配置文件。
在保存配置文件后,重新启动V2Ray服务端。检查一下端口占用状态和V2Ray运行情况,如果一切正常,就可以开始客户端的配置了。
安装V2Ray客户端
由于客户端系统环境众多,就不一一说明如何配置了。要点就是在服务器地址中填写服务器的IPv6地址(可以在Vultr后台的Settings里面找到),填写好正确的端口号和UUID即可连接。自此,我们就搭建并配置好了一台跳板服务器且可以成功连接。此时我们的网络访问请求可以通过IPv6连接跳板服务器进行转发,这样我们校园网就不计流量,而且还可以达到翻墙的效果了。
注意事项
在登入校园网的时候,最好通过 http://lgn6.bjut.edu.cn 进行登入。同时选中IPv4和IPv6登入而不是仅选中IPv6登入,这样可以避免不走代理的流量无法访问非IPv6资源(例如微信等)。
手机上面的VPN和电脑上VPN的原理略有不同,不一定是所有的软件和流量都会被IPv6转发至跳板服务器,要特别注意一下。
如果对这个点有疑问,可以自己了解一下代理服务器实现的VPN和TUN/TAP实现的虚拟网卡实现的VPN的区别。