在任意互联网环境里同时访问校内资源和外网,是一个经典的「鱼和熊掌」问题。VPN 客户端和代理软件各管一摊,切来切去很烦。这套方案让它们配合工作,做到无感分流。
背景
代理客户端选择
VPN 客户端优先采用 Mihomo 内核的。我刚上大学时最好用的基于 Mihomo 的客户端是 Clash Verge Rev,所以选择了它。
但最近 Clash Verge Rev 被爆出尝试在主线中加入收集用户设备信息的功能,因此建议读者探索其他基于 Mihomo 内核的客户端。
校园网环境
学校先前用的是深信服的 EasyConnect 客户端——臭名昭著,会往用户电脑塞根证书,极其危险。后来切换到了 ATrust 客户端,但仍然是深信服开发。
绕过深信服
为了在避免使用深信服客户端的同时兼容深信服的 VPN 协议,浙大同学开发了 ZJUConnect,而 HITSZ 的 chenx 也基于此开发了 EZ4Connect。
校园网登录
通过 ATrust 无法正常在 10.248.98.2 登录校园网。实际上可以通过 https://net.hitsz.edu.cn/srun_portal_pc?ac_id=1&theme=basic4&wlanuserip=<本机IP> 的方式给自己设备登录,但需要预先知道本机在校园网中的 IP。
手动登录略显复杂,可以通过自动登录解决——使用我开源的 hitsz-autonet,自动拼接认证 URL 中的本机 IP。
架构
系统网络栈 → Clash TUN 虚拟网卡
├── 校园网资源 → EZ4Connect (127.0.0.1:11081) → 校园网
├── 国内网站 → DIRECT
└── 外网 → 机场节点
Clash 开启 TUN 模式后创建一个虚拟网卡(如 macOS 上的 utun),通过修改系统路由表把所有流量导入这个虚拟网卡。Clash 使用用户态 TCP/IP 协议栈在本地终结每个应用的 TCP 连接,提取应用层数据后,按规则重新建立代理连接——校园网流量走 EZ4Connect 的 HTTP 代理,其余走机场或直连。
第一步:安装 EZ4Connect
从 GitHub Releases 下载对应平台版本。
对于 HITSZ 来说,安装后不需要任何配置即可使用。
点「连接服务器」,确认连接成功。EZ4Connect 会在本机 127.0.0.1:11081 暴露一个 HTTP 代理,校园网资源均可通过这个端口访问。
第二步:安装 Clash Verge Rev
从 GitHub Releases 下载安装。
第三步:添加机场订阅
打开 Clash Verge Rev → Profiles → 粘贴机场订阅链接,更新。
第四步:添加本地代理节点
在 Clash Verge Rev 的配置里加一段本地节点(通过订阅配置的 Merge 功能,或直接在配置文件里加):
proxies:
- name: local-campus
type: http
server: 127.0.0.1
port: 11081
这个节点指向 EZ4Connect 暴露的本地代理端口。
第五步:分流规则
这是最关键的一步。新建一个 Rules Overlay 文件(Profiles → New → Rules),粘贴:
prepend:
# 校园网精确直连
- 'IP-CIDR,10.248.98.2/32,DIRECT'
- 'DOMAIN-SUFFIX,net.hitsz.edu.cn,DIRECT'
- 'DOMAIN-SUFFIX,ids.hit.edu.cn,DIRECT'
- 'DOMAIN-SUFFIX,mineru.net,DIRECT'
- 'DOMAIN-SUFFIX,openxlab.org.cn,DIRECT'
- 'DOMAIN-SUFFIX,aliyuncs.com,DIRECT'
# 校园网其余走本地代理
- 'IP-CIDR,10.248.0.0/14,local-campus'
在 Profiles 里,把当前订阅的 rules 绑定到这个 Rules Overlay 文件。
规则逻辑:
- 少数已知校园网域名直接直连
- 校园网 IP 段(
10.248.0.0/14)统一走local-campus节点,即 EZ4Connect - 其余流量按机场规则走:国内直连,外网走机场
第六步:开启 TUN 模式
Clash Verge Rev → 设置 → TUN 模式 → 开启。
TUN 模式在系统网络栈层面接管流量,浏览器、终端、App 都不需要单独配代理。
验证
- 浏览器访问校内网站(如
ids.hit.edu.cn)能正常打开 curl -x http://127.0.0.1:11081 http://10.248.x.x/some-internal-api能通- 外网访问正常,走机场出口 IP
- Clash 日志里能看到校园网 IP 段命中了
local-campus规则
有问题可以检查:
- EZ4Connect 连接状态(是否掉线)
- Clash TUN 模式是否成功启动(需要管理员权限)
- 规则文件缩进是否正确(YAML 对空格敏感)
一句话总结:EZ4Connect 负责连校园网暴露本地 11081 端口,Clash Verge Rev 接管所有流量,校园网段/域名走 11081 或直连,其余走机场。
Discussion
Comments