本文目标是解决校内两设备之间无法互相通信的臭毛病!
在网上找了很久都没找到个有用的方案,经过长时间摸索,终于找到可行的方案,核心思想是自己重新设置路由规则
原理:
- 正常情况(有AP隔离)
- AP隔离阻止了同一AP下设备之间的直接通信
- 但所有设备都能和网关通信
设备A ←→ AP ←→ 设备B
❌
设备A ←→ 设备B
- 修改路由后:
- 删除直连路由,强制所有通信都经过网关
- 网关成为"中转站",帮助转发数据包
设备A → 网关 → 设备B
设备B → 网关 → 设备A
- 具体原理:
- 默认路由表让设备尝试在同一网段内直接通信
- AP隔离阻止了这种直接通信
- 修改路由后,即使是同网段通信也会发送到网关
- 网关没有AP隔离限制,可以转发到目标设备
就像:
- AP隔离就像"教室规定学生不能直接传纸条"
- 但学生都可以和老师(网关)通信
- 修改路由相当于"所有纸条都先交给老师转交"
- 这样就绕过了"学生之间不能直接传纸条"的限制
破解工作原理
设备A ─→ 检测网关 ─→ 修改路由 ─┐
├─→ 可以互相访问
设备B ─→ 检测网关 ─→ 修改路由 ─┘
设置方法windows 系统:
管理员权限的powershell中执行
查看当前路由表:route print
输出是这样的:
PS C:\WINDOWS\system32> route print
===========================================================================
接口列表
12...d8 ikun c1 63 aa 7c ......Realtek PCIe GbE Family Controller #2
25...00 ikun 56 c0 00 01 ......VMware Virtual Ethernet Adapter for VMnet1
26...00 ikun 56 c0 00 08 ......VMware Virtual Ethernet Adapter for VMnet8
1...........................Software Loopback Interface 1
49...00 ikun 5d 59 0a b5 ......Hyper-V Virtual Ethernet Adapter
===========================================================================
IPv4 路由表
===========================================================================
活动路由:
网络目标 网络掩码 网关 接口 跃点数
0.0.0.0 0.0.0.0 192.168.25.1 192.168.25.25 281
127.0.0.0 255.0.0.0 在链路上 127.0.0.1 331
127.0.0.1 255.255.255.255 在链路上 127.0.0.1 331
127.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
172.31.192.0 255.255.240.0 在链路上 172.31.192.1 5256
172.31.192.1 255.255.255.255 在链路上 172.31.192.1 5256
172.31.207.255 255.255.255.255 在链路上 172.31.192.1 5256
192.168.25.0 255.255.255.0 在链路上 192.168.25.25 281
192.168.25.25 255.255.255.255 在链路上 192.168.25.25 281
192.168.25.255 255.255.255.255 在链路上 192.168.25.25 281
192.168.133.0 255.255.255.0 在链路上 192.168.133.1 291
192.168.133.1 255.255.255.255 在链路上 192.168.133.1 291
192.168.133.255 255.255.255.255 在链路上 192.168.133.1 291
192.168.241.0 255.255.255.0 在链路上 192.168.241.1 291
192.168.241.1 255.255.255.255 在链路上 192.168.241.1 291
192.168.241.255 255.255.255.255 在链路上 192.168.241.1 291
224.0.0.0 240.0.0.0 在链路上 127.0.0.1 331
224.0.0.0 240.0.0.0 在链路上 192.168.133.1 291
224.0.0.0 240.0.0.0 在链路上 192.168.241.1 291
224.0.0.0 240.0.0.0 在链路上 192.168.25.25 281
224.0.0.0 240.0.0.0 在链路上 172.31.192.1 5256
255.255.255.255 255.255.255.255 在链路上 127.0.0.1 331
255.255.255.255 255.255.255.255 在链路上 192.168.133.1 291
255.255.255.255 255.255.255.255 在链路上 192.168.241.1 291
255.255.255.255 255.255.255.255 在链路上 192.168.25.25 281
255.255.255.255 255.255.255.255 在链路上 172.31.192.1 5256
===========================================================================
永久路由:
网络地址 网络掩码 网关地址 跃点数
0.0.0.0 0.0.0.0 192.168.25.1 默认
===========================================================================
IPv6 路由表
===========================================================================
活动路由:
接口跃点数网络目标 网关
1 331 ::1/128 在链路上
25 291 fe80::/64 在链路上
26 291 fe80::/64 在链路上
12 281 fe80::/64 在链路上
49 5256 fe80::/64 在链路上
26 291 fe80::ikun:b45b:ebd2:71a3/128
在链路上
12 281 fe80::ikun:8385:9657:efb7/128
在链路上
25 291 fe80::ikun:320f:c79b:9f6/128
在链路上
49 5256 fe80::ikun:b8e2:e51b:8b16/128
在链路上
1 331 ff00::/8 在链路上
25 291 ff00::/8 在链路上
26 291 ff00::/8 在链路上
12 281 ff00::/8 在链路上
49 5256 ff00::/8 在链路上
===========================================================================
永久路由:
无
找到你的网卡的网络适配器对应的网关ip,删除直连路由:route delete 10.21.64.0 mask 255.255.192.0
添加直接通过网关访问的路由:route add 10.21.64.0 mask 255.255.192.0 10.21.64.1
如果想要路由在重启后依然生效,添加永久路由:route -p add 10.21.64.0 mask 255.255.192.0 10.21.64.1
但是每次重启还是需要删除直连路由,因为直连路由优先级比直接访问网关的路由优先级更高
脚本代码
https://github.com/czc6666/AP-Isolation-Bypass
程序
没vip下载不了就去github下载,没有魔法访问不了github可以私聊我找我拿
注意:设备重启或者网络重连后要再执行一遍程序重置路由表
linux 系统中的方法
这里直接引用别人的方法
将powershell脚本编译成exe文件的方法
- 以管理员身份打开 PowerShell
- 运行: Install-Module ps2exe -Force
- 运行: Invoke-ps2exe “route_config.ps1” “name.exe”