同济VPN连接后会强制所有流量走VPN,会影响正常访问,同时不可与Clash代理共存,会影响访问AI、GitHub等服务。此外,Motion Pro使用体验较差,连接速度慢,本教程提供基于OpenConnect和vpn-slice来实现路由分流、并使用快捷指令提升使用体验。目前本教程只适用于macOS系统,其余系统可参考思路或将本教程提供给AI,让AI提供解决方案。
解决思路
根据同济大学VPN系统的详情页,同济VPN采用的是SSL VPN及专用的客户端Motion Pro,因此无法使用一般的VPN客户端进行替代连接。经过查找,OpenConnect提供了一个开源的SSL VPN客户端,并且有搭配的vpn-slice提供路由和DNS设置.
配置教程
安装openconnect和vpn-slice
使用brew install openconnect和 brew install vpn-slice进行安装,如果没有安装brew,推荐前往Homebrew安装包管理软件。
快捷指令设置
打开快捷指令,新建一个快捷指令。
- 选择运行Shell脚本;
- 复制以下内容到输入脚本框
pgrep -f "openconnect.*vpn.tongji.cn" >/dev/null && exit 0
unset http_proxy https_proxy all_proxy HTTP_PROXY HTTPS_PROXY ALL_PROXY
trap '' HUP
printf "\n你的统一认证密码\n" | /opt/homebrew/bin/openconnect \
--protocol=array --no-dtls --user=你的学号 \
--script "/opt/homebrew/bin/vpn-slice software.tongji.edu.cn hpc.tongji.edu.cn logini.tongji.edu.cn" \
vpn.tongji.cn >/tmp/tjvpn.log 2>&1 &
disown
其中,你需要将密码和学号的位置替换为自己的密码和学号,"/opt/homebrew/bin/vpn-slice software.tongji.edu.cn hpc.tongji.edu.cn logini.tongji.edu.cn"中的网址是分流走同济VPN的域名,比如你需要补充“1.tongji.edu.cn”走校园网,在引号内补充该域名网址即可。
- Shell选择zsh即可,并且勾选以管理员身份运行;
- 运行保存,命名为“TJ VPN ON”(可自定义)
- 再新建一个快捷指令,命名为“TJ VPN OFF”,复制以下命令:
P=$(pgrep -f "openconnect.*vpn[.]tongji[.]cn")
if [ -n "$P" ]; then kill -INT $P; fi
sleep 3
P=$(pgrep -f "openconnect.*vpn[.]tongji[.]cn")
if [ -n "$P" ]; then kill -INT $P; fi
exit 0
其余设置相同;
使用
使用聚焦搜索输入“TJ VPN ON”快捷指令运行,即可连接到同济VPN,在不使用其他代理的情况下,已经可以正常访问software.tongji.edu.cn hpc.tongji.edu.cn logini.tongji.edu.cn这三个域名的校内网站,如果有新的域名需求,直接在命令中加入域名即可。如果需要关闭,运行“TJ VPN OFF”快捷指令即可。
与Clash代理共存配置
如果是clash X pro,在配置->更多设置中,在忽略这些主机与域的代理设置的输入框中,末尾加入*.tongji.edu.cn,重启clash x pro即可。对于Clash Verge,直接在订阅界面右键订阅配置文件,选择添加规则,域名后缀匹配,输入“tongji.edu.cn”,直连,添加前置规则即可。
同时将clash的系统代理打开和快捷指令里打开同济VPN,应该可以同时开启代理与同济VPN且互不干扰,如果不生效,可以尝试使用命令刷新一下DNS:
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder