小熊の小站

Try my best.

利用IPv6进行校园网免流量以及国际互联网访问

Littlebear0729's Avatar 2021-08-29 折腾记

  1. 1. 校园网环境以及工作原理
  2. 2. 跳板服务器的搭建
  3. 3. 注意事项

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的地址就可以了。

  1. 购买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的资源!

  2. 登入VPS

    在VPS实例创建完成后,就可以通过SSH登入进服务器了。在后台的控制界面可以看到服务器的IP地址以及root帐号的密码。我们可以通过putty或者xshell等软件远程登入服务器。这个过程就不详细展开了,网上都有详细的教程,具体可以关键字「SSH登入服务器」进行搜索。

  3. 安装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运行情况,如果一切正常,就可以开始客户端的配置了。

  4. 安装V2Ray客户端

    由于客户端系统环境众多,就不一一说明如何配置了。要点就是在服务器地址中填写服务器的IPv6地址(可以在Vultr后台的Settings里面找到),填写好正确的端口号和UUID即可连接。自此,我们就搭建并配置好了一台跳板服务器且可以成功连接。此时我们的网络访问请求可以通过IPv6连接跳板服务器进行转发,这样我们校园网就不计流量,而且还可以达到翻墙的效果了。

注意事项

在登入校园网的时候,最好通过 http://lgn6.bjut.edu.cn 进行登入。同时选中IPv4和IPv6登入而不是仅选中IPv6登入,这样可以避免不走代理的流量无法访问非IPv6资源(例如微信等)。

手机上面的VPN和电脑上VPN的原理略有不同,不一定是所有的软件和流量都会被IPv6转发至跳板服务器,要特别注意一下。

如果对这个点有疑问,可以自己了解一下代理服务器实现的VPN和TUN/TAP实现的虚拟网卡实现的VPN的区别。

本文作者 : Littlebear0729
本文使用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 协议
本文链接 : https://blog.bearxiong.xyz/2021/08/%E5%88%A9%E7%94%A8IPv6%E8%BF%9B%E8%A1%8C%E6%A0%A1%E5%9B%AD%E7%BD%91%E5%85%8D%E6%B5%81%E9%87%8F%E4%BB%A5%E5%8F%8A%E5%9B%BD%E9%99%85%E4%BA%92%E8%81%94%E7%BD%91%E8%AE%BF%E9%97%AE/

本文最后更新于 天前,文中所描述的信息可能已发生改变