背景

12月份和3月份的疫情封宿舍导致只能在宿舍学(mo)习(yu),校园网的免费额度严重不够用,听闻办公区(包括且不限于教室、实验室、图书馆)校园网是免费的,所以有了这篇如果在宿舍区实现校园网免流指南和一些进阶技巧。

原理

SNNU校园网的收费原理如下:

  • 如果你的设备是处在宿舍区(黄色部分),那在这个区域产生的外网流量(经由中央网关发送至互联网产生的流量)会经过计费网关进行计费,在校园宽带自助服务系统的黑色部分就是计费流量
    image-20220510235206802
  • 如果你的设备在办公区(绿色部分),那在那在这个区域产生的外网流量(经由中央网关发送至互联网产生的流量)不会产生任何费用,在校园宽带自助服务系统中的流量详情都是绿色的image-20220510235546091

  • 如果如果你的设备在宿舍区(黄色部分),那在那在这个区域连接办公区(绿色部分)设备产生的内网流量(经由中央网关发送至办公区的流量)不会产生任何费用,在校园宽带自助服务系统中的流量详情中校内流量就属于这种
    image-20220510235809299

  • *如果你的设备在任意区域,那通过校园网ipv6访问外网产生的流量是免费的,在校园宽带自助服务系统中的流量详情中教育网流量就属于这种
    image-20220510235956347

方法

  • 我们就可以根据原理1、2、3在办公区可以连外网的域内搭一个vpn服务器,让宿舍区的电脑走校内流量(原理3)链接vpn服务器(上图的路线1),在通过vpn服务器将数据包转发到外网(原理2)实现免流(路线2),下面详细介绍这种方法
  • *也可以在外网搭一个ipv6的服务器,通过将所有数据包走ipv6转发给公网服务器(原理4)实现免流,这个方法按下不表

搭建过程

VPN服务器搭建

linux(部署到路由器上)

linux的话github上面有很多一键安装脚本,安装就略过了,以华硕老毛子固件配置为例:

  1. 办公区网络搭建vpn服务器,我的路由器(斐讯k2)刷的华硕老毛子自带vpn服务器功能可以直接用,如果是在路由下级建的vpn服务器要在路由器做好端口转发(或者直接dmz主机也行)

    image-20220511000846748

  2. 客户端账号中配置用户名和密码,然后点+确定
    image-20220511001047914

windows(如果实验室没有路由器网线直接链接到电脑上的话可以使用这种方案)

使用SoftEther VPN 搭建l2tp服务器

SoftEther VPN是日本筑波大学的一个研究项目,它包括服务器端、客户端、服务器端管理工具等数个软件,支持 SSL-VPN (SoftEther VPN) 协议、 L2TP/IPsec 协议、 OpenVPN 协议和 Microsoft SSTP 协议,Windows、Linux、Android和IOS等操作系统都可以连接到SoftEther VPN服务器。

  1. 访问 https://www.softether-download.com/cn.aspx 下载服务端,server里面继承了管理工具所以就不用在额外下载manager工具了
    image-20220530214102365

    当然服务端也可以下载linux版本的,这里只介绍windows版本安装

  2. 下载完后安装,目录选择自己装软件的目录即可,语言选择中文,安装种类选择SoftEther VPN Server
    7-2-6.jpg

  3. 安装完成后管理工具就在桌面上了,运行SE-VPN Server Manager (Tools),选择新设置,在新面板中填写设置名(自定义即可)主机名(直接勾选下面的链接到本地主机),点击确定保存配置信息;
    image-20220530215127171

  4. 点击连接,连接到vpn server,首次登陆会让设置一个管理员密码
    image-20220530215229299

  5. 执行简易设置向导,选择远程访问VPN Server后点下一步
    image-20220530215538281

  6. ddns设置页面不用管,直接点下一步
    image-20220530215713306

  7. 此时会提示“此VPN Server已具有支持兼容IPSec/L2TP/EtherIP/L2TPv3协议的VPN Client或VPN路由器的新功能……您要设置IPSec吗?”,选择”是“。勾选以下两个选项,填写“IPsec预共享密钥,确定
    image-20220530215916874

  8. 如果不需要内网穿透那就直接禁用VPN Azure
    image-20220530220032506

  9. 添加认证用户
    点击这个hub-管理虚拟hub-管理用户-新增-在这里填写用户名和密码,认证方式选择密钥认证

    这里的密码和上面的预共享密钥不是一个密码

    image-20220530220317856

  10. 开启NAT转换和DHCP服务
    点击这个hub-管理虚拟hub-虚拟AT和虚拟 DHCF服务器-启用SecureHAT

    image-20220530220549599

  11. 开启tcp1701.500,4500端口和udp1701.500,4500端口:
    打开控制面板-系统和安全-windows Defender防火墙-点击左侧的高级设置-点击左侧的入站规则-在点击右侧的新建规则,添加以下两个协议,注意每个端口用英文逗号隔开:

    • 端口-选择tcp协议,特定本地端口处填1701,500,4500。名称填tcp1701,500,4500,其他默认。
      image-20220530221341773
    • 端口-选择udp协议,特定本地端口处填1701,500,4500。名称填udp1701,500,4500,其他默认。
      image-20220530221424007

至此服务器端设置完成。

通过系统自带的vpn接入点配置server(不建议在除了windows server的其他windows版本上面使用这种方法,因为无法解决nat问题会导致客户端能访问vpn服务器却无法访问互联网)

  1. 桌面按win+R键打开运行,输入”ncpa.cpl”回车打开改适配器设置界面,点击文件-新建传入连接(如果没有文件选项卡的话请按Alt+F)

    image-20220512182152910

  2. 添加用户,自定义用户名和密码(这里的用户名和密码就是客户端链接的时候需要输入的用户名和密码),点击下一步
    image-20220512182551894

  3. 勾选通过internet选项,点击下一步
    image-20220512182646078

  4. 选择ipv4,然后选择属性,指定ip地址(如果没有全局梯子/nas的需求也可以直接使用DHCP分配),点击允许访问
    image-20220512182954851

    下面还需要放行1723端口和gre协议,如果电脑上级接了路由器那这一步需要在路由器里设置端口转发,如果是网线直接连的电脑那按下面的步骤设置

  5. 打开控制面板-系统和安全-windows Defender防火墙-点击左侧的高级设置-点击左侧的入站规则-在点击右侧的新建规则,添加以下两个协议:

    • 端口-选择tcp协议,特定本地端口处填1723-名称填pptp1723,其他默认。
      image-20220512183536178
    • 自定义-协议选择GRE-名称填gre,其他默认
      image-20220512183506585

到这一步vpn服务就配置完了,目前有个已知的问题如果电脑上开了杀毒软件会导致后面客户端连接失败,建议关掉用windows defender就好。

客户端配置

  1. 宿舍区电脑(windows)打开设置-网络和Internet-vpn-添加vpn链接,添加配置信息后保存

    • vpn提供商:windows内置
    • 链接名称:自己填就好,这是个备注名
    • 服务器名称或地址:vpn服务器所在域的ip地址,一般是10.xxx.xxx.xxx
    • vpn类型:根据服务器选择
      • 如果服务端是pptp那就选pptp服务器(上面教程使用windows 自带接入点配置的服务就是pptp)
        image-20220530221945124
      • 如果服务端是l2tp那就选l2tp服务器(共享密钥,上面教程使用SoftEther VPN配置的就是预共享密钥的l2tp)
        image-20220530222021123
    • *(可选):如果选择预共享密钥的l2tp,那还需要输入预共享密钥
    • 登录信息类型:用户名和密码
    • 用户名:在vpn服务器中设置的用户名
    • 密码:在vpn服务器中设置的密码
  2. 宿舍区电脑通过web网关认证登陆校园网

  3. 链接vpn

  4. 最终效果,网络和vpn应该都是已连接状态
    image-20220511001631003

如果可以浏览网页但是UWP应用(比如Microsoft store,天气app)无法联网的情况需要解除UWP回环代理限制

  1. 打开管理员模式powershell或者cmd,输入以下内容回车解除UWP应用代理限制:

    1
    FOR /F "tokens=11 delims=\" %p IN ('REG QUERY "HKCU\Software\Classes\Local Settings\Software\Microsoft\Windows\CurrentVersion\AppContainer\Mappings"') DO CheckNetIsolation.exe LoopbackExempt -a -p=%p

如果出现连接成功无法上网或者希望vpn域内流量走vpn服务器,正常访问Internet的流量直连,可以进行以下配置。但是这种配置会使正常访问Internet的流量被计费,按需选择慎用桌面按win+R键打开运行,输入”ncpa.cpl”回车打开改适配器设置界面,右键vpn链接-属性-网络-点击ipv4-属性-高级-关闭在远程网络上使用默认网关,点确定
image-20220512190801340

客户端到这里配置就结束了,连接成功后就可以走校内流量免流,如果不放心可以用一下然后登陆校园宽带自助服务系统http://202.117.144.205/zili/online_list.php 查看流量使用情况,正常的情况应该是收费流量很少校内流量很多
image-20220511001954532

进阶

nas映射,远程桌面

上一步配置成功后所有的流量应该就被转发至vpn服务器了,宿舍的电脑,办公区vpn服务器所在域内其他设备都处于一个局域网中,比如实验室nas的ip为192.168.123.1,实验室电脑的ip为192.168.123.3,宿舍电脑链接vpn后在其所在域的ip地址是192.168.123.2,那就可以把实验室的nas映射到宿舍的电脑上,或者通过实验室电脑内网远控宿舍电脑(高速低延迟稳定性极高)

nas映射配置

  1. 宿舍电脑打开文件管理器,在最上面输入\\+nas的ip,输入用户名和密码即可链接nas
    image-20220511085042144
  2. 然后选择任意一个文件夹,右键-映射网络驱动器即可将这个文件夹映射到本地

远程桌面

实验室电脑打开远程桌面ip输入宿舍电脑的局域网ip(192.168.123.2),用户名和密码是宿舍电脑。点击链接即可进行远程控制
image-20220511003138324

统一梯子服务

当然既然一个域内都有这么多设备了,那也可以在其中一台电脑上搭一个梯子服务,挂好局域网链接配置之后在其他电脑上配置梯子所在的局域网ip+端口即可让域内所有设备都获得科学上网的能力。以chrome插件switchyOmega为例:

image-20220511003509676