基于IPv6的校园网破解教程

本教程仅供研究学习使用,请在部署后24h内撤销所有更改并恢复原状,本教程作者对依据本教程行动带来的后果概不负责。

从暑假就开始的规划终于在最近落地,以下是我作为一个网络小白从理论到实践,对本破解方案的全部理解。

本文以大陆南方某沿海省省会的某垃圾大学为案例撰写,如果你不是这所垃圾大学的,那么其中一些内容甚至整个方法可能不适合你。

成本

虽然打了个free-ride的tag,但是实际操作并不是免费的,全部成本如下(取决于个人选择,此处为我本人的选择):

  • 代理服务器 50CNY/M
  • 路由器 90CNY
  • 树莓派 500CNY
  • 可能被发现的风险(同时违反校规和国家法律(目前看来))

最终效果

  • 上下行速度达到本方案任意一环中的瓶颈,对于本人,这个瓶颈是墙上面板只有百兆。

  • 无需付费(指30CNY/M的校园网费用)。

  • 夜间不断网。

  • 可访问香港可访问的所有网络服务。(取决于你选用的代理服务器)

  • 无限台无线设备连接,上网无需经过认证或其他任何配置。

原理解释

宿舍内有线网络IPv6不限速,不鉴权。只需要找一台支持IPv6的代理,然后把让所有流量通过代理,就能实现对限速的解除。
(2023.10.28更新,实测中发现国际校区IPv6也鉴权,但是可以通过53端口绕过)

准备工作

购买路由器

此处引用hanwckf的建议:传送

如果你也是软路由大神,那完全可以不看建议,毕竟那个建议好久没有更新。本人在开头就表明本人的网络小白身份,所以我不懂,也不好评价。

购买树莓派(其他可作为网关的机器)

本人选用的型号和dnomd343选用的型号相同的[1],是树莓派4B,不过马上就要出5了(截至此文更新日期),不建议买。
(2023.10.28更新,已经出5了,不想活了)
(2024.3.5更新,海鲜市场买了x86小主机, 便宜耐造)

理论上来说,该网关需要满足以下要求:

  1. 有线网口速度至少比宿舍墙上面板快。(该面板速度在哪里看会在下文说明)
  2. 能运行linux,至少本人方案是完全基于linux的。
  3. 配置足够高,能正常运行xray。一般来说不会不符合。

如果你不想花每个月一部分钱来购买代理服务器,那么你大概率(为什么是大概率会在后文说明,大体上就是白嫖Cloudflare Zero Trust)需要一个处理器为amd64架构的网关,此处笔者因为已经购入树莓派,然后才发现这个问题,所以没有调查过有无合适的产品。

完全可以使用老电脑,或某些软路由。

购买代理服务器。

此处与后文有关,在后文说明。

为什么不用dnomd343的XProxy[1:1]

经过本人测试,IPv4的53端口存在限速,无论是否登陆账号。

后续与其交流过程中,本人了解到其使用的服务器是校内服务器,这可能是不限速的原因,但是拥有一台校内服务器的难度在本人看来比自己买代理难多了。

此外,由于本人技术太差,实际配置XProxy容器的过程没有成功,所以选用了有更简明教程的方案搭建网关。

前文指向的说明

查看墙上面板速度(大概率是部署好后的理论速度)

  1. 使用网线直接连接电脑与宿舍墙上面板。

  2. 在Windows自带搜索中找到“查看网络连接”并进入。

search_for_view_network_connections

  1. 双击唯一的一个有线网络。
  2. 查看速度。

search_for_view_network_connections

注意,此处本人速度虽然显示1.0 Gbps,但这实际上是路由器网口的速度,因为本人目前的状态是路由器连接电脑。

为什么要amd64架构的网关才能白嫖Zero Trust

据博主P3TREX解释[2],Cloudflare官方正在对第三方的WireGuard通用客户端进行围堵,部分用户已经出现无法使用第三方客户端连接的情况,这个情况对于香港地区的Endpoint尤为严重,而本人的测试证实了这个状况。考虑到可能存在的环境差异,你也可以自行测试,这里不再给出指引,请自行搜索相关教程。

官方的围堵导致如果我们要让流量走Zero Trust,则必须在网关上使用官方的WARP客户端。而截至本文更新时间,Cloudflare仍然没有发布适用于aarch64架构的官方WARP客户端,因此如果以上所说在你那时仍未改变,那么需要一台amd64架构的网关才能白嫖Cloudflare Zero Trust的代理。

确定要不要买代理服务器

你不需要买代理服务器,当:

  • 你用来当网关的机器是amd64架构

  • 你能用第三方WireGuard客户端连接Cloudflare Zero Trust

其中第二个条件,经过本人实际测试,几乎是不可能的。可参考博主P3TREX的解释。[2:1]

如果你实在想试试,可以参考:教程1 教程2

注意:必须在第三方WireGuard客户端连接Cloudflare Zero Trust才算第二个条件满足。

购买代理服务器

如果你确定要购买服务器,那么你购买的服务器要满足以下要求:

  • 够便宜。不要国内那些大厂商的服务器,带宽比金子还贵,直接国内搭建代理还容易出事。
  • 带宽至少高于你墙上面板的带宽。当然要是墙上面板千兆,你觉得五百兆也挺好,也是完全可以的。
  • IPv6和IPv4双栈公网。否则你要么不能达到解除限速的目标,要么只能访问支持纯IPv6的网站,而后者在国内几乎不可能满足日用。
    • 当然你或许也可以选择只有IPv4的服务器,然后用Tunnel Broker之类的服务获取IPv6,但是我觉得这对延迟不友好,所以没有采用,本教程也不会提供相关的指引。
    • 这条要求会缩小你的选择空间,很多著名服务商都会被排除在外。
  • 较低延迟。尤其是当你要玩一些延迟敏感的游戏。教育网环境下推荐HKIX线路的机器,本人服务器实测延迟70ms,对于我来说已经很不错了。
  • 流量足够(如果有流量限制)。因为你所有的流量都会转发到此服务器。

教程

步骤可以大体分为:

  1. 配置路由器
  2. 配置代理服务器
  3. 配置网关

配置路由器

编译固件

此处选用hanwckf固件的一个较新的fork:传送门

注意需要打开的选项:

1
2
CONFIG_FIRMWARE_INCLUDE_SCUTCLIENT=y
CONFIG_FIRMWARE_INCLUDE_NAPT66=y

编译教程在仓库README.md中都有,此处不再赘述。(完全可以用WSL进行编译)

刷写固件

可参考hanwckf的教程:传送门

配置IPv6功能

可参考hanwckf的教程:传送门

配置scutclient(可选)

如果你只是为了无限台无线设备联网,那么你只需要走到这里,并且要把这个配置好。

可参考hanwckf的教程:传送门

配置代理服务器

方案一、自建代理

建代理的过程已经被x-ui等工具简化了,这里给出x-ui的一个简单使用教程。

鉴于vaxilu的版本已经停更,这里选用FranzKafkaYu的fork

安装面板
1
bash <(curl -Ls https://raw.githubusercontent.com/FranzKafkaYu/x-ui/master/install.sh)
切换版本

在主页把xray版本切换到最新。

添加入站

左侧进入入站,选择添加入站。标记自己随便起名字,协议设置vless,然后点击添加用户中的加号,最下面打开reality,然后随便切换几个目标网站,最好不要是最开始的那个,点击添加。
(2023.10.28更新,如果你是国际校区的,那么你需要手动把端口修改为53)

测试代理

在入站节点的详细信息一栏点击查看,复制链接,把链接粘贴到软件v2rayN中,设置为“自动配置系统代理”和“全局”,查看能否正常访问国内外网站。

至此,代理服务器搭建已完成。但是据专业人士透露,如果让该服务器代理全部流量(包括大陆流量),则有可能导致服务器被封。为了提高安全性,你可以通过将大陆流量通过Cloudflare Zero Trust出站的方式提高安全性。

设置大陆流量通过Zero Trust(可选)

如果你决定这样做,可以先进行方案二的教程,完成后再返回此处。注意,你需要在代理服务器上配置WARP客户端,而不是在网关上。

完成后,在x-ui面板侧边栏设置,Xray配置中,填写配置模板如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
{
"log": {
"loglevel": "warning",
"dnsLog": false
},
"api": {
"services": [
"HandlerService",
"LoggerService",
"StatsService"
],
"tag": "api"
},
"inbounds": [
{
"listen": "0.0.0.0",
"port": 62789,
"protocol": "dokodemo-door",
"settings": {
"address": "127.0.0.1"
},
"tag": "api"
}
],
"outbounds": [
{
"protocol": "freedom",
"settings": {}
},
{
"tag": "WARP_out",
"protocol": "socks",
"settings": {
"servers": [
{
"address": "127.0.0.1",
"port": 40000
}
],
"domainStrategy": "UseIP"
}
},
{
"protocol": "blackhole",
"settings": {},
"tag": "blocked"
}
],
"policy": {
"system": {
"statsInboundDownlink": true,
"statsInboundUplink": true
}
},
"routing": {
"rules": [
{
"inboundTag": [
"api"
],
"outboundTag": "api",
"type": "field"
},
{
"ip": [
"geoip:private"
],
"outboundTag": "blocked",
"type": "field"
},
{
"outboundTag": "blocked",
"protocol": [
"bittorrent"
],
"type": "field"
},
{
"ip": [
"geoip:cn"
],
"outboundTag": "WARP_out",
"type": "field"
},
{
"domain": [
"geosite:cn"
],
"outboundTag": "WARP_out",
"type": "field"
}
]
},
"stats": {}
}

可以使用与上文测试方法相同的方法连接代理,并在国内和国外的IP地址查看网站分别查看自己的IP是否不同。

方案二、白嫖Cloudflare Zero Trust

注册Cloudflare并加入Zero Trust

可参考此教程的“注册Cloudflare帐号并进行设置”部分:传送门

进行一些设置

在Zero Trust面板中,进入Settings,WARP Client,Device settings,Default,点击最后的三个点,Configurate。

打开Mode swtich,Auto connect,Service mode选择Proxy,点击Save Profile保存。

配置WARP Client
安装客户端

请参考官方教程:传送门

加入团队
1
warp-cli teams-enroll 你的团队域

然后终端中会出现一个地址,本地访问这个地址,并在其中按照指引登录。

1
warp-cli teams-enroll-token 你的token

其中token可在浏览器登陆后的页面里打开开发者工具查看,直接复制Open Cloudflare WARP按钮指向的那个地址即可。

1
warp-cli status

应当输出

1
2
Status update: Connected
Success

至此,WARP Client配置完成。

配置网关

可参考教程:传送门

关于教程中的Xray配置部分,你只需要进行客户端的配置,本人的配置文件如下,请将信息修改为你本人的信息后参考使用。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
{
"log": {
"loglevel": "warning"
},
"inbounds": [
{
"tag": "all-in",
"port": 12345,
"protocol": "dokodemo-door",
"settings": {
"network": "tcp,udp",
"followRedirect": true
},
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
},
"streamSettings": {
"sockopt": {
"tproxy": "tproxy"
}
}
},
{
"port": 10808,
"protocol": "socks",
"sniffing": {
"enabled": true,
"destOverride": [
"http",
"tls",
"quic"
]
},
"settings": {
"auth": "noauth",
"udp": true
}
}
],
"outbounds": [
{
"tag": "proxy",
"protocol": "vless",
"settings": {
"vnext": [
{
"address": "填写代理服务器IPv6地址",
"port": 填写代理服务器入站节点端口,
"users": [
{
"id": "按照节点配置页面填写",
"alterId": 0,
"email": "按照节点配置页面填写",
"security": "auto",
"encryption": "none",
"flow": ""
}
]
}
]
},
"streamSettings": {
"sockopt": {
"mark": 255
},
"network": "tcp",
"security": "reality",
"realitySettings": {
"serverName": "按照节点配置页面填写",
"fingerprint": "chrome",
"show": false,
"publicKey": "按照节点配置页面填写",
"shortId": "",
"spiderX": ""
}
},
"mux": {
"enabled": false,
"concurrency": -1
}
},
{
"tag": "direct",
"protocol": "freedom",
"settings": {
"domainStrategy": "UseIP"
},
"streamSettings": {
"sockopt": {
"mark": 255
}
}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {
"response": {
"type": "http"
}
}
},
{
"tag": "dns-out",
"protocol": "dns",
"streamSettings": {
"sockopt": {
"mark": 255
}
}
}
],
"dns": {
"hosts": {
"domain:googleapis.cn": "googleapis.com",
"dns.google": "8.8.8.8"
},
"servers": [
"https://1.1.1.1/dns-query",
{
"address": "119.29.29.29",
"domains": [
"geosite:cn"
],
"expectIPs": [
"geoip:cn"
]
},
"https://dns.google/dns-query",
"223.5.5.5",
"localhost"
]
},
"routing": {
"domainMatcher": "mph",
"domainStrategy": "IPIfNonMatch",
"rules": [
{
"type": "field",
"domain": [
"geosite:category-ads-all"
],
"outboundTag": "block"
},
{
"type": "field",
"inboundTag": [
"all-in"
],
"port": 123,
"network": "udp",
"outboundTag": "direct"
},
{
"type": "field",
"inboundTag": [
"all-in"
],
"port": 53,
"network": "udp",
"outboundTag": "dns-out"
},
{
"type": "field",
"ip": [
"119.29.29.29",
"223.5.5.5"
],
"outboundTag": "proxy"
},
{
"type": "field",
"protocol": [
"bittorrent"
],
"outboundTag": "proxy"
},
// 我不好说
{
"type": "field",
"ip": [
"geoip:cn"
],
"outboundTag": "proxy"
},
{
"type": "field",
"domain": [
"geosite:cn"
],
"outboundTag": "proxy"
},
// end of 我不好说,
{
"type": "field",
"ip": [
"geoip:private",
"填写代理服务器IPv6地址",
"填写代理服务器IPv4地址"
],
"outboundTag": "direct"
},
{
"type": "field",
"ip": [
"1.1.1.1",
"8.8.8.8"
],
"outboundTag": "proxy"
},
{
"type": "field",
"domain": [
"geosite:geolocation-!cn",
"domain:googleapis.cn",
"dns.google"
],
"outboundTag": "proxy"
}
]
}
}

该教程中有大量代表局域网网段或主路由、代理服务器的IP地址,请在配置时注意进行替换。

注意在该教程中,最后的局域网设备上网部分可以使用方案二,直接在路由器配置页面中设置网关即可。

最终测试

国内测速站点:传送门

国外测速站点:传送门

总结

祝每一位读者获得更好的校园网上网体验。


  1. https://github.com/dnomd343/XProxy/blob/master/docs/campus_network_cracking.md ↩︎ ↩︎

  2. https://p3terx.com/archives/cloudflare-warp-script-issue-and-solution.html#toc_3 ↩︎ ↩︎

留言评论

0条搜索结果。