Repository navigation
Releases
v0.4.1 — 日志更好读、在线规则同步更省事
SDUST WebVPN 本地透明代理 v0.4.1
在校外,用校内原始地址直接访问学校资源。浏览器开箱即用,命令行工具可额外接管。
下载
SDUST-WebVPN-0.4.1-portable.zip(便携版)
解压到任意文件夹,双击 SDUST WebVPN.exe 即用。
- 不需要安装,不需要管理员权限,不需要 Node.js
- 数据目录跟着 exe 走(
state\、.secrets\),删掉整个文件夹就干净卸载 - 需要 Windows 10 / 11 x64 + WebView2 运行时(Win11 自带;Win10 一般随 Edge 已装)
本版重点
1. IEEE Xplore 默认进白名单
新装自带的白名单多了一条 ieeexplore.ieee.org,老用户升级后也会自动补上
(只并入新增的默认项,你自己加的条目不会被覆盖):
sdust.edu.cn · 五个内网网段 · cnki.net · sslibrary.com · drcnet.com.cn · ieeexplore.ieee.org
这条路只是把请求交给学校 WebVPN 出去;能不能下到全文,取决于学校是否订购、
网关是否放行。
2. 修掉「CDN 发旧文件 → 规则永远不更新」的洞
jsDelivr 对 @main 有约 12 小时的缓存,明明规则仓库已经更新,它还在发旧版本,
而旧版本号和本地缓存一模一样,老逻辑会当成「同步成功」照单收下 —— 新规则永远看不到。
现在:版本号和本地相同也先试下一个地址,只有所有地址都没有更新的版本,
才用先拿到的那份保底。「强制同步」的语义不变(明知道旧也照收)。
实测:把缓存钉在 v1 后同步,会自动跳过两条仍发 v1 的 jsDelivr,
改用 raw.githubusercontent.com 拿到 v2。
3. 内置规则地址把 raw 放到第一位
默认三条地址的顺序改为:
1. https://raw.githubusercontent.com/XavierMu/sdust-webvpn-rules/main/rules.json ← 无 CDN 缓存
2. https://fastly.jsdelivr.net/gh/XavierMu/sdust-webvpn-rules@main/rules.json
3. https://cdn.jsdelivr.net/gh/XavierMu/sdust-webvpn-rules@main/rules.json
raw 改完规则立刻生效,jsDelivr 退到后面当兜底(国内可达性通常更好)。
没动过地址框的老配置会在启动时自动换成新顺序,自己编辑过的列表不会被碰。
4. 首次启动会自动同步一次,而且看得见
程序启动几秒后就跑一次同步(原来是 20 秒,新装用户干等还看不出发生了什么);
新装用户的缓存是空的,所以等于「装上就有一份校内清单」。同步期间:
- 顶栏与弹窗的状态徽标显示「同步中…」,两个同步按钮暂时禁用(防连点)
- 启动日志写明这次同步和下一次的时间
之后按设定的间隔走(默认每天一次),重启程序不会重复拉 —— 没到间隔就跳过。
把间隔设成「关闭」则不自动同步。
5. 弹窗里能直接看在线规则的内容
「在线规则」分区底部有可折叠的**「查看条目」**(默认折叠),展开就是刚从订阅地址
取回来的白名单 / 黑名单逐条清单(缓存在 state\online_rules.json),
不用再去翻配置文件或猜同步到底拿到了什么。
6. 分流规则改成「只读展示 + 两个折叠分区」
主界面「分流规则」卡片不再直接编辑:两栏显示合并后真正生效的名单(自定义 + 在线),
只读、标着条数与来源(自定义 3 条 + 在线 10 条)。卡片右下角只有一个「编辑规则…」入口,
打开的弹窗是一页两个可折叠分区:
- 自定义规则:白/黑名单可编辑框 + 保存/放弃,只写本机配置;分区头显示
白 N / 黑 M - 在线规则:分区头有「启用」勾选框和
白 N / 黑 M · 同步时间摘要;展开是订阅地址、
同步按钮、自动同步间隔、查看条目
「启用」原来是弹窗顶部的一条公共开关,会让人以为关掉它连自定义规则也不生效 ——
现在收进在线分区头,只影响在线规则自身。术语统一为「自定义规则 / 在线规则」。
端口那个「保存」按钮也挪到了「连接」卡的端口输入框旁边(它本来就只保存端口和模式)。
顺带修掉原先在线规则弹窗里三个按钮大小不一、选项挤成一行的问题。
7. 界面其它
- 两段长篇说明(「分流规则」卡片、规则弹窗)都收进标题旁的红色感叹号提示:
鼠标悬浮或键盘聚焦即显示,点一下可以钉住,ESC / 点别处收起,不再占版面 - 补齐了「关于」里的版本日志(之前停在 v0.3.0)
8. 日志更好读
- 时间改成你本机的时间:日志面板原来直接切后端的 UTC 字符串,显示出来比实际早 8 小时
- 不再「假播报」:启动时只在真正需要同步时才写日志;没到间隔就只说一句
「在线规则:每 24 小时更新一次,下次在 N 小时后」,同步过就不再重复说 - 「设置已保存」只在真改时记:以前打开弹窗、点一次同步都会刷一条,把有用信息冲走
- 措辞整体统一:「核心已启动,本地代理 127.0.0.1:8899」「系统代理已切换为 PAC 模式」
「本次代理统计:经 WebVPN 12 · 直连 87 · 链接改写 3 · 出错 0」这类能直接读懂的句子,
地址只留主机名,不再往日志里塞整条 URL
快速开始
- 双击 exe → 首次打开弹一次引导
- 填账号 → 「保存并登录」
- 点「开启系统代理」(第一次会提示装一次根证书)
之后浏览器直接访问校内原始地址即可。
⚠ 要用 git / pip / curl,需要额外两步
Windows 的「系统代理」和 HTTP_PROXY 环境变量是两套东西:浏览器读前者,
git、curl、pip 只认后者。所以要:
- 把模式切到**「全局」**(PAC 模式下不写环境变量)
- 勾上**「同时设置命令行代理环境变量」**
- 重开终端(已开的终端不会继承新变量)
Node.js 原生
fetch连环境变量也不读,需要NODE_USE_ENV_PROXY=1(Node 24+)。
能力边界
能用:浏览器访问校内站点、站外直连;勾选环境变量后 git clone/push、
curl、pip、conda、maven 等 HTTP 工具。
用不了(WebVPN 是 clientless 反向代理,没有 TCP 隧道,原理上不可能):
SSH / SFTP、git@ 的 SSH 地址、MySQL / PostgreSQL / Redis、RDP / VNC、
FTP / BT、ping / traceroute(ICMP)、游戏与语音等 UDP 流量。
本版内容
- 界面
ui/:连接、分流规则(含在线规则弹窗)、账号与证书、统计、日志、关于 - 内核
src-tauri/src/vpn/:CAS 登录与保活、CONNECT + MITM、本地 CA
与证书库读写、系统代理 / PAC 接管、DPAPI 凭据加密、黑白名单分流、在线规则多源同步 - 单测 49 个全部通过(本版新增 7 个:内置白名单含 IEEE、老配置升级并入新默认项、
默认地址 raw 优先、旧默认顺序自动升级、用户自定义顺序不动、时间表述、同步间隔表述)
隐私
账号密码用 Windows DPAPI 加密存在 .secrets\creds.dpapi(仅本机此用户可解密),
本地 CA 私钥在 state\ca\。程序没有自建服务器,只和学校 WebVPN 通信;
同步在线规则时会去 GitHub / jsDelivr 拉一个 JSON(不含任何本机信息)。
详见 README。
v0.4.0 — 在线规则开箱可用(多镜像 + 防回滚)
SDUST WebVPN 本地透明代理 v0.4.0
在校外,用校内原始地址直接访问学校资源。浏览器开箱即用,命令行工具可额外接管。
下载
SDUST-WebVPN-0.4.0-portable.zip(便携版)
解压到任意文件夹,双击 SDUST WebVPN.exe 即用。
- 不需要安装,不需要管理员权限,不需要 Node.js
- 数据目录跟着 exe 走(
state\、.secrets\),删掉整个文件夹就干净卸载 - 需要 Windows 10 / 11 x64 + WebView2 运行时(Win11 自带;Win10 一般随 Edge 已装)
本版重点:在线规则开箱可用
以前「在线规则」是空的,得自己找一份规则文件填进去;现在装上就自带一份校内清单:
- 内置公共规则地址,默认订阅 https://github.com/XavierMu/sdust-webvpn-rules,
程序启动 20 秒后自动同步一次,不用管 - 多镜像回退:地址框一行一个,按顺序尝试,前一条连不上 / 解析失败 / 内容更旧就换下一条
- 防回滚:远端版本(
version或updated)比本地缓存旧时拒绝覆盖并说明原因
—— 免得 CDN 还在发旧文件时把规则改回去;确实要用旧版可以点「强制同步」 - 拉不到不会清空:全部地址都失败时保留上一次成功同步的规则,并逐个报出失败原因
- 地址框改成多行,顺手修掉了「同一个出口试两遍白等 20 秒」的问题
(站外规则源只直连一次;只有校内地址才值得先走本机代理再回退直连)
「分流规则 → 在线规则…」里能看到当前走的是哪个镜像、同步时间、条目数。
公共规则仓库收 Issue 补站点。
快速开始
- 双击 exe → 首次打开弹一次引导
- 填账号 → 「保存并登录」
- 点「开启系统代理」(第一次会提示装一次根证书)
之后浏览器直接访问校内原始地址即可。
⚠ 要用 git / pip / curl,需要额外两步
Windows 的「系统代理」和 HTTP_PROXY 环境变量是两套东西:浏览器读前者,
git、curl、pip 只认后者。所以要:
- 把模式切到**「全局」**(PAC 模式下不写环境变量)
- 勾上**「同时设置命令行代理环境变量」**
- 重开终端(已开的终端不会继承新变量)
Node.js 原生
fetch连环境变量也不读,需要NODE_USE_ENV_PROXY=1(Node 24+)。
能力边界
能用:浏览器访问校内站点、站外直连;勾选环境变量后 git clone/push、
curl、pip、conda、maven 等 HTTP 工具。
用不了(WebVPN 是 clientless 反向代理,没有 TCP 隧道,原理上不可能):
SSH / SFTP、git@ 的 SSH 地址、MySQL / PostgreSQL / Redis、RDP / VNC、
FTP / BT、ping / traceroute(ICMP)、游戏与语音等 UDP 流量。
本版内容
- 界面
ui/:连接、分流规则(含在线规则弹窗)、账号与证书、统计、日志、关于 - 内核
src-tauri/src/vpn/:CAS 登录与保活、CONNECT + MITM、本地 CA
与证书库读写、系统代理 / PAC 接管、DPAPI 凭据加密、黑白名单分流、在线规则多源同步 - 单测 42 个全部通过(新增 10 个:版本判据、旧配置迁移、地址清洗)
隐私
账号密码用 Windows DPAPI 加密存在 .secrets\creds.dpapi(仅本机此用户可解密),
本地 CA 私钥在 state\ca\。程序没有自建服务器,只和学校 WebVPN 通信;
同步在线规则时会去 GitHub / jsDelivr 拉一个 JSON(不含任何本机信息)。
详见 README。
v0.3.0 — 便携版
SDUST WebVPN 本地透明代理 v0.3.0
在校外,用校内原始地址直接访问学校资源。浏览器开箱即用,命令行工具可额外接管。
下载
SDUST-WebVPN-0.3.0-portable.zip(3.71 MB,便携版)
解压到任意文件夹,双击 SDUST WebVPN.exe 即用。
- 不需要安装,不需要管理员权限,不需要 Node.js
- 数据目录跟着 exe 走(
state\、.secrets\),删掉整个文件夹就干净卸载 - 需要 Windows 10 / 11 x64 + WebView2 运行时(Win11 自带;Win10 一般随 Edge 已装)
快速开始
- 双击 exe → 首次打开弹一次引导
- 填账号 → 「保存并登录」
- 点「开启系统代理」(第一次会提示装一次根证书)
之后浏览器直接访问校内原始地址即可。
⚠ 要用 git / pip / curl,需要额外两步
Windows 的「系统代理」和 HTTP_PROXY 环境变量是两套东西:浏览器读前者,
git、curl、pip 只认后者。所以要:
- 把模式切到**「全局」**(PAC 模式下不写环境变量)
- 勾上**「同时设置命令行代理环境变量」**
- 重开终端(已开的终端不会继承新变量)
Node.js 原生
fetch连环境变量也不读,需要NODE_USE_ENV_PROXY=1(Node 24+)。
能力边界
能用:浏览器访问校内站点、站外直连;勾选环境变量后 git clone/push、
curl、pip、conda、maven 等 HTTP 工具。
用不了(WebVPN 是 clientless 反向代理,没有 TCP 隧道,原理上不可能):
SSH / SFTP、git@ 的 SSH 地址、MySQL / PostgreSQL / Redis、RDP / VNC、
FTP / BT、ping / traceroute(ICMP)、游戏与语音等 UDP 流量。
本版内容
- 界面
ui/:连接、分流规则、账号与证书、统计、日志、关于 - 内核
src-tauri/src/vpn/:CAS 登录与保活、CONNECT + MITM、本地 CA
与证书库读写、系统代理 / PAC 接管、DPAPI 凭据加密、黑白名单分流、在线规则同步 - 单测 32 个全部通过
隐私
账号密码用 Windows DPAPI 加密存在 .secrets\creds.dpapi(仅本机此用户可解密),
本地 CA 私钥在 state\ca\。程序没有自建服务器,只和学校 WebVPN 通信。
详见 README。