校园网的 N 种玩法

Life sucks, but you're still loving it.

废话

校园网这东西嘛,真是让人哭笑不得。带宽不够,繁忙时期慢得不行,清晨时分还算快。有 IPv6,却时不时断开。还有锐捷这东西,严重拖低了用户体验。

不过,来玩玩吧。

前提

玩之前,你需要懂这些知识。

  • 看这篇文章之前,请了解一下什么是 IP、端口、路由、代理,分清楚路由器和交换机的区别,否则继续看下去会比较辛苦。
  • 校园网有四个出口,联通、移动、鹏博士、教育网。珠海的IPv6 和 IPv4 教育网段出口是教育网,某些网段(优酷、青岛阿里云)走鹏博士,其余都是走联通。
  • 速度:教育网 > 鹏博士 > 联通。
  • 自从学生知道通过 IPv6 能上 YouTube,晚上 IPv6 的速度通常会比 IPv4 慢。
  • 学校的 DHCP 服务器分配的 IP 是根据网卡 mac 地址 hash。
  • 每栋宿舍的三层交换机到宿舍都是千兆,只不过大多宿舍交换机是百兆。
  • 每个设备接入校园网都会分配到一个 172.16.0.0 / 255.255.254.0 IP 段的 IP,下文统一称校园网 IP。
  • 没连锐捷之前,所有 IP 包都会在三层交换机被 drop 掉,所以只能连上同一栋的 IP。
  • 连接校内 IP 段不会被限速。
  • 不要在学校内网架 DHCP 服务器和 ARP 攻击,否则你会死的很惨。
  • 做任何事之前,请参考学校规章制度,免得被查水表。 还有,思维开阔点嘛~

锐捷

  • Windows 下锐捷权限很大,所有功能限制死了,如果你只会用 Windows,这部分可以不看了。 Unix 系的可以参考的思路是「将锐捷运行在路由器上」。

  • OS X:如果只是一台 MacBook 需要无线上网,只需要买一个 AP 接入校园网,然后连上该 AP,在锐捷客户端选对端口即可无线上网。多台设备可以用 Mac 当路由器,使用设置里面的「共享」功能,将该 Mac 当做路由器。

  • Linux:理论上可以,但没有实测。

  • OpenWRT:用 MentoHUST,附带超级好用的 IPTABLES 和 DNSmasq。 锐捷和这世界上大多认证服务一样,认证计费服务器只在登录时验证,所以,登录完成之后就只是心跳包的问题了。我的意思是,只要不断开,就算网费欠费了,还是可以上网的。

在很久很久以前,珠海校区是会断网的,然而,只会断开 IPv4,可以通过 IPv6 的代理继续上网。

VPN

  • SYSU 的 VPN 可以用来突破校园网网速限制,因为这东西是内网 IP 不限速。
  • 在校外连 SYSU VPN 之后,你就可以直连校园网 IP 了,这表示你可以拿着笔记本在校园远程桌面控制宿舍的电脑。
  • 由于 PPTP VPN 的先天残疾,大多中国移动网络会连不上。
  • 试过在办公室和实验室连上 Wi-Fi 但速度很慢吗?因为他们共用一个校园网 IP,所以你们所有人就得分那 2Mbps 的速度啦。记得我说过「连接校内 IP 段不会被限速」吗?所以你可以用自己校内的电脑搭一个代理,然后连上去,你就至少有 2Mbps 的速度了。

分流策略

出口太多,走哪里好?

由于 IPv6 线路的存在,只要有国外 CDN 域名,一概走 IPv6 代理,国内 CDN 的,优先走教育网,鹏博士次之,最后是联通出口。很多 CDN 严重依赖于客户端的 DNS,这也是学校不建议学生用别的 DNS 的原因。

iOS 与 OS X 下比较好的方法是通过 PAC 文件指定,这个涉及到 HTTP 代理和 SOCK5 代理,这里不展开了。

还有一部分分流可以通过 DNS 完成,这样是最彻底的。我的 SYSU DNS 的初衷就是适用于任何客户端的分流,大二下学期如果有时间,我基本会用来维护这个项目。

如果对这方面有兴趣,虽然本文无关,可以看看「动态路由」、「BGP」与「Anycast」。

搭建一个网站

你可能会说,搭网站这种零难度的事情也要说?

当然,这里说的不是普通的搭建网站。你有没有想过如何在校园网,在没有公网 IP 的前提下搭建全球可访问的网站?

这里需要用到 IPv6 和 CloudFlare 的 CDN。将你的 Web Server 开启 IPv6 的支持,并将 AAAA 记录添加到你的域名,开启 CloudFlare 的 CDN,这样你就获得了大约 20Mbps 的支持 IPv4 与 IPv6 和 HTTPS 的网站,就是这么简单。

端口转发

很多同学有很多设备,例如台式电脑、笔记本电脑、服务器、树莓派、手机等,但是现实是残酷的,你只有一个校内 IP。记得我上面提到 IPTABLES 吗?你不需要懂它原理还有语法,因为 Luci 界面下有一个很友好的设置方式。

常见的约定俗成的端口你可以通过 Google 查找。

谈谈我的目前的配置吧。

  • OpenWRT 路由器主要是用来运行 MentoHUST 拨号。并且搭建了 PPTP Server,方便在实验室访问宿舍网络。
  • 千兆交换机 + 5GHz 频段的 AP 提供内网千兆交换速率。
  • 虚拟机运行 Windows 提供 Windows 环境进行电路设计。路由器进行 3389 端口转发提供远程桌面,这样在实验室很差的电脑一样能有很好的体验。
  • OS X 台式机作为主力机进行日常使用、开发。
  • Maxcell 服务器,由于历史遗留原因使用 Windows Server,4TB 硬盘通过 IIS 提供内网的文件分发服务。使用 Shadowsocks + Privoxy 提供 HTTP 代理,经端口转发给 iPhone 使用。提供 DNS Server,运行 SYSU DNS 服务,由两台 OpenWRT 路由器的 DNSmasq 作缓存。
  • Mac mini 是内网的 NAS,文件服务使用了 AFC 和 SMB,设置了端口转发,方便在校园网获取文件。OS X Server 缓存 iCloud 和 App Store 的下载数据,提供 Time Machine 备份两台 Mac 的数据。Aria2 下载,支持 HTTP 代理,远程 RPC 控制。
  • iPhone 通过 PAC 将指定的流量通过 Maxcell 服务器的 HTTP 代理走出去,App Store 跑满 5MB/s 无压力。

我们常说折腾,其实一直乐在其中,不是吗?好啦各位,开学愉快!