校园网白嫖思路分享:局域网中转-不花钱、不认证、高速上网

本文将分享一些校园网的白嫖思路(WireGuard / SoftEther VPN Server基于 UDP 53 端口的 VPN 三层白嫖、Socks 5 白嫖+科学上网二合一的四层白嫖),也就是不花一分钱就和一般用户一样使用校园网。

2023/2/23: 更新各平台配置NAT命令和L2TP方法,并根据先前在评论区的答复介绍可以直接放弃的一些不可行的思路

前提条件

下面列出的思路均要求使用一个校园网的服务器作为中转,因此,需要能够在不需要付费、认证后就能上网的网络环境(一般为办公区或实验室网络)下放一个电脑(树莓派也行);或者有任意学校服务器的使用权。

整体思路就是找个在学校里面地方搭个服务器中转流量

各种思路

基于 UDP 53 端口的 VPN 三层白嫖

原理:UDP 53 是 DNS 协议所用端口,由于门户(Portal)认证为了实现 HTTP 劫持跳转到登录页面,必须使得浏览器能够正常地进行 DNS 解析,因此在不认证、不付费的情况下也会放行 UDP 53 端口的流量。

特点不需要校园网认证,不需要购买校园网,不需要校园网账号。此外由于 VPN 自带加密,因此可以克服开放 Wi-Fi 网络通信完全不加密的缺陷。

下面所列出的两个思路均是三层(IP)级的 VPN 方法,可以转发所有三层报文,因此支持 ICMP 协议(可以用ping)。

注意:使用 UDP 53 端口需要所在网络没有DNS劫持的问题,如果你所在的网络存在DNS劫持(例如,OpenWRT的DHCP/DNS下的”DNS重定向”功能就是DNS劫持),则该方法会失败。

实现思路1:WireGuard

我特别推荐此方案。WireGuard 是几乎无状态的VPN协议,切换网络零感知,不需要重新连接VPN,对于经常睡眠-唤醒的电脑特别有用。睡眠唤醒后可以立刻上网。此外 WireGuard 在 Linux 和 Windows 操作系统上均是纯内核态的实现,性能极其高。

方法:搭建一个 wireguard 服务端,然后端口监听在 53 上

搭建 Linux 服务端的教程很多,一键包也很多。但若要搭建 Windows 服务端,请一定要阅读我之前的这篇文章

缺点:搭建确实有些复杂,另外配置文件对于不懂计算机网络的人来说实在是晦涩难懂

实现思路2:SoftEther VPN Server

这是我在实现 WireGuard 方案前所使用的一个方案,此方案比 实现思路1:WireGuard 要差一些,主要体现在有状态、连接耗时长,从睡眠中唤醒后要等大约 30 秒才能可以上网。

优点:比 WireGuard 部署简单。如果不一定必须使用 53 端口的话,客户端不需要安装任何软件即可开始使用(SoftEther VPN Server 同时实现了 L2TP/OpenVPN/SSTP 协议)。

方法:搭建一个 SoftEther VPN Server 服务端,然后如下图所示:

注意一个坑:不要使用 SecureNAT!SoftEther VPN 的 SecureNAT 基于桥接实现,并不是直接使用本机网络做 NAT,这会导致服务端 802.1X 认证对客户端无效,也就是说客户端连上 VPN 后还得再登录一个校园网账号!这个问题我建议的解决方法有二:

  1. 关闭 SecureNAT
  2. 对于 Linux,使用 TAP 模式,建立一个 TAP 网卡并对这个网卡设置 NAT(命令见下文)
  3. 对于 Windows,桥接到虚拟机用来 NAT 上网的网卡,例如 VMWare workstation 用户可以设置桥接到 VMware Network Adapter VMnet8 网卡,Hyper-V 用户见下文

对于Linux,设置Tap网卡的NAT命令如下:假设 eno1np0 为你的物理上网网卡,tap_sevpn 为SoftEther VPN Server虚拟网卡

iptables -I FORWARD -i eno1np0 -j ACCEPT
iptables -I FORWARD -o eno1np0 -j ACCEPT
iptables -I FORWARD -i tap_sevpn -j ACCEPT
iptables -I FORWARD -o tap_sevpn -j ACCEPT
ifconfig tap_sevpn 192.168.235.2/24 # 为SoftEther VPN Server虚拟网卡 配置IP段
iptables -t nat -A POSTROUTING -o eno2np1 -j MASQUERADE

对于 Linux:这样就可以通过NAT上网了,但是你还会发现Softether只是设置了NAT,但不会给用户分配 IP 地址,请继续这样配置:注意按红框操作,注意网关地址和SecureNAT网卡IP地址不同。注意只开DHCP不开虚拟NAT。最后配完再开启securenat

实现思路3:OpenVPN

思路3仍然使用 SoftEther VPN Server(因为官方的服务器软件实在是太难用了),不同的是,我们不是使用 SoftEther 的 VPN over DNS 功能,而是点击上图的 OpenVPN / MS-SSTP 设置 ,把 OpenVPN 端口修改为 53

OpenVPN性能不怎么好,纯用户态实现。

实现思路4:裸 L2TP

裸L2TP性能也很好,毕竟也是内核级实现。思路3仍然使用 SoftEther VPN Server(因为官方的服务器软件实在是太难用了),需要注意,校园网可能不允许 GRE 或 IPSec,导致常规L2TP/IPSec无法使用,因此我推荐使用不加密的裸 L2TP。裸 L2TP 客户端在 Windows 上配置方法如下:

通常来说关掉证书验证、不输入预共享密钥(PSK)、禁用加密的 L2TP/IPSec就是裸L2TP。Android 和 IOS 不支持裸 L2TP。OpenWRT 的 L2TP 默认就是裸 L2TP,不需要特别的操作。

非 UDP 53 端口 VPN 三层白嫖

前提条件:即使没有购买校园网,学校也给你分配了校园网账号,只是登录这个校园网账号并不能上网,但是仍可以连通局域网网段(10.0.0.0/8172.20.0.0/12, 192.168.0.0/16)内的服务器。(已知卓智-锐捷方案正是如此)

这个方案就是上面所列出的三个方案换个端口。

非 UDP 53 端口四层白嫖

前提条件:即使没有购买校园网,学校也给你分配了校园网账号,只是登录这个校园网账号并不能上网,但是仍可以连通局域网网段(10.0.0.0/8172.20.0.0/12, 192.168.0.0/16)内的服务器。(已知卓智-锐捷方案正是如此)

优点:白嫖-梯子 二合一,白嫖后就自动科学上网。不像上面的方案,如果服务器本身没有设置 TUN/TAP 级别的全局代理,对于 Android 这种只能同时运行一个 VPN 的操作系统,白嫖就不能科学上网,科学上网就不能白嫖。

缺点:是四层代理,因此不支持 ICMP 协议(不能用ping,ping返回的都是代理软件生成的虚假结果)

裸 Socks5 方法

这种方法简单粗暴,打开你服务器上的代理软件,直接选上 “允许来自局域网的连接” 就行。以 Clash for windows 为例:

然后客户端使用任意支持裸 socks5 代理的软件上网即可(例如 V2rayN)

缺点:与服务器的通信完全明文不加密。

ShadowSocks / V2ray 方法

与搭建一个科学上网服务器的方法完全一样,不再赘述。需要注意的是 V2ray 不支持真正意义上的 UDP。

UDP 53 端口四层白嫖方法

与非 UDP 53 端口四层白嫖具有同样的优点,但是使用 UDP 协议来封装,因此能跑在 53 端口上。

通常使用 KCP 协议来将 TCP 流量封装为 UDP 流量。根据你要封装的协议,有以下实现方法,请点击链接查看:

  • 对于 Socks5,使用 KCPTun 程序 封装 Socks5 协议,实现用 UDP 53 端口来跑 Socks5。KCPTun 程序实际上可以封装任何 TCP 应用,但是对于手机端使用体验不好。(Android)
  • 对于 V2ray,使用 mKCP 传输方法。 大部分 v2ray 客户端都支持 mKCP 方法。
  • 对于 ShadowSocks,使用 KCPtun 插件。 大部分 ShadowSocks 客户端都支持 mKCP 方法(Android)。

不建议的方法

PPTP:PPTP 依赖 GRE 隧道,然而 GRE 协议很可能被封了。以我所在的学校校园网为例,只允许 TCP/UDP/ICMP,其他协议一律无法使用。

IKEv2:依赖 IPSec。可能被封了。

SSTP:虽然SEVPN自带,但是基于 HTTPS+TCP,网速极其堪忧。

GRE/IPIP/VXLAN/MPLS:需要两端都是静态 IP,在校园网白嫖的实际生产环境不可行。


正在加载评论。你可能需要科学上网才能正常加载评论区