校园网共享配置指北 - 认证与反检测方案

本文全面讲解校园网共享配置方案,包括网络认证方式和防检测技巧,并提供了实用的工具推荐和详细的配置步骤。

想要共享校园网, 首先就是要有一个路由器, 然后把这个路由器能连上互联网, 最后能一直使用.

从而引出两个问题:

  • 连上互联网: 这个问题就是校园网认证
  • 一直使用: 这个问题就是校园网防检测

校园网认证

暂时我知道有两种方式, 我觉得这个使用抓包也可以, 就完全模仿呗. 但暂时还没实验过

1. 趁他不注意

如果有线连接, 在电脑上认证成功后的一瞬间, 把网线从电脑上拔下来, 插路由器WAN口上, 路由器就可以共享了.

这种方式好像停电就失效了, 就得再趁他不注意一次. 下面的方式可以解决这个问题.

前提: 1.路由器WAN口mac地址和电脑上的网口mac地址一样 2. 路由器设置上dhcp客户端模式

2. 客户端认证

如果是锐捷可以用mentohust或者minieap, 这两个可以说是一个, 我推荐minieap, 因为mentohust作者也推荐, 缺点就是得自己会编译, 优点是自己可以交叉编译成很多架构的版本.

校园网防检测

检测方式

一共有几种检测的方式

  1. TTL(Time-To-Live) ipv4数据报文里面的TTL字段(学校常用)
  • 原本作用: 防止数据报文在网络中无限循环, 每经过一个路由器, TTL就会减1, 当TTL为0时, 数据报文就会被丢弃. 比如traceroute命令就是通过这个字段来实现的
  • 如何检测: 检查发出来的ttl是不是64, 如果是64, 说明这是一个客户端, 如果是63, 说明这个已经经过了一个路由器了, 因为减一了
  1. IP-ID Identification字段(基本没用)
  • 原本作用:标识它们属于同一个原始数据报, 因为当一个数据报太大, 就会被分片, 这个字段会在一个数据报的所有分片中保持不变
  • 如何检测:每个客户端会在每次发送数据的时候自增, 就导致如果一个设备的Identification字段有大有小, 那么就会判断出来是不同的设备
  1. 时间戳(基本没用)
  • 原本作用: 用来记录数据报文的发送时间
  • 如何检测: 检查时间戳是不是一样, 如果不一样, 就说明是不同的设备
  1. UA User-Agent(学校常用)
  • 原本作用: 通过UA来判断这个设备是移动端还是pc端, 以不同的样式显示
  • 如何检测: 一个设备的UA是不会变的, 如果UA变了, 那么就说明这个设备是不同的
  1. DPI Deep Packet Inspection(可能会用)
  • 原本作用: 用来检测数据包的内容, 以便进行流量控制, 安全检测等
  • 如何检测: 应该是GFW一样的技术, 抓特征, 比如不同qq号应该就有不同的特征, 通过这个特征来判断是不是同一个设备, 一般一个人不会登陆6个qq号吧

我抓过包分析过, 时间戳和IP-ID, 我发现这两个字段, 在一个设备上, 不一定就是单调递增的, 我感觉应该不会用这两个来分析多设备的行为. 所以这应该只存在于paper上, 实际没什么用.

如何做

可以选择openWrt在线编译来编译一个你想要的版本, 加上这些插件

1
luci-app-aliyundrive-webdav luci-app-autotimeset luci-app-store luci-theme-alpha luci-app-ttyd iptables-mod-filter iptables-mod-ipopt iptables-mod-u32 iptables-nft kmod-ipt-ipopt ipset kmod-ipt-nat

把系统根据下面b站-女大佬的视频编译完, 安装到路由器或者小主机上.

然后你只要做两件事就可以了

  • 修改ttl, 让ttl变成64
    • iptables -t mangle -A POSTROUTING -j TTL --ttl-set 64
    • 详情见
  • 修改UA, 让UA没有特征
    • 使用uaProxy, 里面有脚本, 运行一下脚本就可以了.

如果你是单网口主机的话, 这里有一个坑, 你肯定要加usb网卡, 但这个驱动好像不太完善, 启动的时候要把网卡拿下来, 然后开启后再插上.而且如果你使用我的版本, 你还要在interface上加一个wan口, dhcp客户端类型.

参考阅读

b站-女大佬教程

UA3F项目 —- UA3F作者博文

kp-ipid项目

ShellCrash项目

uaProxy项目

我抓包看到的东西

注意看下面两张图的Identification字段, 按理来讲应该是单调递增的, 但是这里不是, 所以我觉得这个字段不会被用来检测多设备的行为.

  • 一个是41667
  • 一个是4823

这两个请求几乎就是挨着的, 但是这个字段差了10倍, 然后接下来的请求, 就又正常了.

注意看下面两张图的时间戳TimeStamps: TSval字段, 按理来讲应该是一样的, 但是这里不是, 所以我觉得这个字段不会被用来检测多设备的行为.

  • 一个是3896826524
  • 一个是2499352844

注意看请求号, 是增大的, 但时间是变小的, 所以时间还能往回走? 所以这个字段不会被用来检测多设备的行为.

使用 Hugo 构建
主题 StackJimmy 设计