IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    高校生使用教育网的一点姿势

    Wincer发表于 2019-04-27 09:53:04
    love 0
    cover

    最近一直忙于毕业的相关事项,所以也没有新文章产出——并非是找不到写作素材,实在是没写作时间。虽然这几天依旧很忙,但总算也抽出了一点时间完成了本文,希望能给广大高校生在办理宽带时带来一些帮助。

    前言

    目前大部分高校的校园宽带应该都对使用者作出了诸多限制,比如:一号一机,禁止使用路由器(破解后才可以共享);与校方合作垄断,导致价钱比家用宽带贵一大截等。在校生也只能被迫接受——毕竟,你总不能真的不用电脑上网吧?

    好在目前越来越多的高校里校园网已经开始支持 IPv6 了,而一般校园网只针对 IPv4 的流量计费,对 IPv6 产生的流量是不计费的,至于原因,我猜测有两方面原因:一是 IPv6 相关技术还不是特别完善,IPv4 计费系统可能需要修改;二是目前国内 99% 的网站都不支持 IPv6,而纯 IPv6 环境下是无法访问 IPv4 网站的,所以干脆就没做这一限制。

    连接上校园网后,不要认证,戳 这里 来测试是否支持 IPv6,当然也可以直接打开 Google,目前 Google 可以通过 IPv6 直连。

    但,谁让我是学计算机的呢,这并不能难倒我。既然无法通过 IPv6 直接连接 IPv4 的网站,那利用一个同时支持 IPv4 和 IPv6 的 VPS 做一层代理不就可以绕过这一限制了吗?原理见下拓扑图:

    原理

    这就意味着,只要你具备 IPv6 网络,便可以通过此方法绕过诸多限制,从而免费上网。

    获取 IPv6

    目前比较出名的 VPS 服务商除搬瓦工外,大部分都原生支持 IPv6 连接,包括:Vultr、Linode、DigitalOcean。而搬瓦工的 VPS 中 OpenVZ 架构自带 IPv6,KVM 架构则需要利用 Tunnel Broker 技术来提供 IPv6 隧道给只支持 IPv4 的用户(我的搬瓦工 CN2 主机便是通过 Tunnel Broker 来获取 IPv6 支持的,这也是搬瓦工的客服推荐的方案),它定义在 RFC 3053 。

    如果你的 VPS 原生支持 IPv6 连接的话,便可以跳过这一步。

    获取 Tunnel

    目前 Hurricane Electric 免费提供 Tunnel Broker 服务(我 TM 吹爆!),该公司运营了世界上以对等数目计算的最大 IPv6 网络,所以服务方面是不用担心的。戳 这里 注册。

    随后点击左侧的 Create Regular Tunnel,再在框内输入 VPS 的 IP 地址,再选择一个地区服务器来作为隧道的一端,这里建议根据服务器的地区来就近选择,我这里选择的是 Los Angeles。

    Tunnel 面板

    配置 IPv6

    创建成功后,在以下页面选择你的系统,如果是 Debian 系就选择 Debian/Ubuntu,其余就选择 Linux-net-tools。

    框中会出现几行命令,登陆 VPS,依次运行这几行命令就行了。

    IPv6 配置命令

    第四行被我抹去的地址便是公网 IPv6 的地址。

    如果对 Tunnel 的速度需要更换的话,可以删除该 Tunnel 后在 VPS 运行 modprobe -r sit 命令或者直接重启,再重新创建一个 Tunnel。

    测试

    不出意外,这时 VPS 已经可以使用 IPv6 连接了:

    测试 IPv6 连接

    需要注意的是,如果选择非北美地区的服务器,会绕道美国,所以这里的 PING 值会略高。

    配置代理

    代理可以选择 Shadowsocks,但本次要介绍的不是它,而是另一款代理软件:V2Ray。该代理软件比 Shadowsocks 多了许多种伪装流量的方法,且占用内存更低(毕竟是 Go 写的),这对于小内存的 VPS 来说,非常重要。只不过其配置文件比 Shadowsocks 要劝退小白一些。

    服务端安装

    输入以下一行代码进行安装,系统需支持 Systemd:

    bash <(curl -L -s https://install.direct/go.sh)

    有关更详细的安装教程见 官方文档 。

    服务端配置

    如果是通过以上命令安装的话,配置文件在 /etc/v2ray/config.json 目录,以下是我的配置文件,没有流量伪装等进阶配置:

    {
      "log": {
        "loglevel": "warning",
        "access": "/var/log/v2ray/access.log",
        "error": "/var/log/v2ray/error.log"
      },
      "inbounds": [{
        "port": 10086,
        "protocol": "vmess",
        "settings": {
          "clients": [
    	    { 
    	      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    	      "alterId": 4
    	    }
          ]
        }
      }],
      "outbounds": [{
        "protocol": "freedom",
        "settings": {}
      }]
    }

    inbounds:入站配置,是一个数组。

    注意协议这里填的是:VMess ,由 V2Ray 原创的一份加密传输协议。

    clients 是一个 Object 数组,每一个元素里的 id 必须满足 UUID 格式,且服务端客户端需保持一直,作用类似于 Shaowsocks 中的密码。

    outbounds:出站配置,也是一个数组。

    客户端安装

    Linux 客户端的安装与服务端一致。

    Windows 建议使用 V2RayN ,带有图形化界面,下载 V2RayN-Core.zip 解压,下载 V2RayN.zip 解压出的 .exe 文件放入刚刚的目录下。

    目录应该与以下类似:

    .
    ├── config.json
    ├── geoip.dat
    ├── geosite.dat
    ├── guiLogs
    │   ├── 20190421.txt
    │   ├── 20190422.txt
    │   └── 20190423.txt
    ├── guiNConfig.json
    ├── pac.txt
    ├── readme.md
    ├── user-wininet.json
    ├── v2ctl.exe
    ├── v2ctl.exe.sig
    ├── v2ray.exe
    ├── v2ray.exe.sig
    ├── v2rayN.exe
    ├── wv2ray.exe
    └── wv2ray.exe.sig

    客户端配置

    Linux

    格式与服务端一致,你需要修改的仅有 address 和 id 部分:address 填写服务端的 IPv6 地址;id 需与服务端一致。

    {
      "log": {
        "loglevel": "warning",
        "access": "/var/log/v2ray/access.log",
        "error": "/var/log/v2ray/error.log"
      },
      "inbounds": [{
        "port": 1081,
        "listen": "127.0.0.1",
        "protocol": "socks",
        "settings": {
          "netword": "udp"
        }
      }],
      "outbounds": [{
        "protocol": "vmess",
        "settings": {
          "vnext": [{
            "address": "xxxx:xxxx:xxxx::xxxx",
            "port": 10086,
            "users": [
              {
                "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
                "alterId": 4
              }
            ]
          }]
        }
      },{
        "protocol": "freedom",
        "tag": "direct",
        "settings": {}
      }]
    }

    这时,打开网络代理,填入:

    注意,这里一定要选择手动代理模式,不能使用 PAC/自动模式,因为我们的目的是要本地的所有流量都走代理。而 PAC 仅会当遇到被墙的 IP 时才会走代理。

    Windows

    双击 V2RayN.exe 后,点击右上角的添加 VMess 服务器:

    填入地址,端口,id 即可:

    Windows 配置

    再将右下角的系统代理模式改为全局模式,道理同 Linux 类似:

    这样,不出意外的话,就已经成功了,你的仅支持 IPv6 的电脑已经该可以通过代理来访问非 IPv6 的网站了。

    连接测试

    网速测试

    正好手头最近入了一个原生支持 IPv6 的 VPS,贴一下与搬瓦工的对比,以下均在同一时段做的测试:

    原生 IPv6

    搬瓦工 + Tunnel Broker

    原生支持 IPv6 的机器可以直接观看 2K 视频并且不会出现卡顿现象(可以看到已经缓冲了一分钟了),而使用 Tunnel Broker 的就没这么好了,不仅连接速度只有三分之一,而且无法较为流畅的观看 2K 视频,时不时会出现卡顿。考虑到 YouTube 的线路优化已经很强了,国内的视频或者直播应当只能观看 720p(码率最好不要超过 3000)甚至更低了,而前者直播时蓝光 8M 无压力。

    延迟与丢包测试

    首先是搬瓦工的,经过了 15 个节点,教育网的入口和出口丢包率很高:

    搬瓦工 + Tunnel Broker

    这是原生 IPv6 的,经过了 19 个节点,同样教育网的入口和出口丢包率较高(但还不是最高的):

    原声 IPv6

    可以看到其原生自带 IPv6 的主机其实也用的是 HE 的 IPv6 网络(前 13 个节点都一样),那么看来是返程的时候出问题了:

    原生的 IPv6 返程

    搬瓦工的返程

    果然,问题出在返程上面,原生的 IPv6 并没有走 HE 的线路,丢包率为 0。而相比于浏览网页,在看视频时返程的网络状况会直接影响观看体验,这一点也确实在之前的网速测试中体现了。

    所以,购买建议是:

    如果你还没有购买 VPS 的话,建议购买原生自带 IPv6 连接的 VPS,使用体验会好很多,不过由于电脑是全局的代理,所以要注意 VPS 流量的使用哦~

    最后附赠一个国内的 IPv6 电视网站: 清华大学 IPTV 。

    参考:

    1. 给搬瓦工 KVM 版 VPS 配置 IPv6 支持(基于 Linux CentOS 7)
    2. Project V 官方网站


沪ICP备19023445号-2号
友情链接