用Clash接管北大VPN的流量
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
版友提出可以通过openconnect和ocproxy把VPN开成一个本地的SOCKS5代理(假设端口为7900),而不是默认接管全部流量。
# 可以参考:
# https://gist.github.com/ouyen/08c7895dde30bc602d92f1a0d4f35c8c
# https://bbs.pku.edu.cn/v2/post-read.php?bid=668&threadid=18557038
# 如果运行失败可能是openconnect版本低,记得升级
echo PASSWORD | openconnect --script-tun --script "ocproxy -D 7900 -g -k 15" --protocol=pulse vpn.pku.edu.cn -u STUID --reconnect-timeout 60 --passwd-on-stdin
(重点来了)在此基础上,为Clash添加parsers
(parsers的功能是给原来的配置文件打补丁,在Clash for Windows的Settings-Profiles-Parsers可以修改,参考文档https://docs.cfw.lbyczf.com/contents/parser.html)
parsers:
- url: xxxxxx # 你的clash订阅URL
yaml:
prepend-rules:
# 添加代理规则,可以是一切需要学校VPN访问的资源
# - 很显然VPN域名本身得直连不然会出问题
- DOMAIN,vpn.pku.edu.cn,DIRECT
# 校内服务器(无域名/有域名)
- IP-CIDR,162.105.0.0/16,PKU Intranet
- DOMAIN-SUFFIX,pku.edu.cn,PKU Intranet
# 图书馆订阅的期刊,例如wiley,可以自行添加
- DOMAIN-SUFFIX,wiley.com,PKU Intranet
append-proxies:
# 指向后台运行的SOCKS5代理
- name: "PKUVPN"
type: socks5
server: 127.0.0.1
port: 7900
append-proxy-groups:
# 加一个简单的开关,校内时选择直连,VPN环境下选择代理
- name: "PKU Intranet"
type: select
proxies:
- DIRECT
- PKUVPN
在Profiles里刷新配置文件即可生效,可以实现只有内网网段走校内VPN。
目前规则只是简单地代理了内网,可能还有可以优化的地方,比如把图书馆资源也包括进去
=============
把1L配置更新一下
好贴,谢谢楼主!
cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
版友提出可以通过openconnect和ocproxy把VPN开成一个本地的SOCKS5代理(假设端口为7900),而不是默认接管全部流量。
(重点来了)在此基础上,为Clash添加parsers
……
好好好
cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
版友提出可以通过openconnect和ocproxy把VPN开成一个本地的SOCKS5代理(假设端口为7900),而不是默认接管全部流量。
(重点来了)在此基础上,为Clash添加parsers
……
好好好好好好好好好好👍
cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:
发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下
===========
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
……
今天回家发现个情况,openconnect+ocproxy开本地socks代理的方法已失效。
原本PKUVPN在客户端之外,是提供了一个HTTP登录的接口的,ocproxy这套方法本质也是模拟了这个HTTP登录的过程。但是最近发现学校把这个登录方式取消了(如图),所以后续配套的也都不能用了。
不知道还能咋办,如果还想让非校内流量不走VPN的话,感觉只能把Pulse开到Docker或者虚拟机里然后开个代理出来了(
cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:
发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下
===========
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
……
牛
cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:
发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下
===========
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
……
我知道这个好方法,竟然是在它失效了之后,最近越来越感叹信息的重要性了
cobaltCG (Ribom.) 在 ta 的帖子中提到:
今天回家发现个情况,openconnect+ocproxy开本地socks代理的方法已失效。
原本PKUVPN在客户端之外,是提供了一个HTTP登录的接口的,ocproxy这套方法本质也是模拟了这个HTTP登录的过程。但是最近发现学校把这个登录方式取消了(如图),所以后续配套的也都不能用了。
不知道还能咋办,如果还想让非校内流量不走VPN的话,感觉只能把Pulse开到Docker或者虚拟机里然后开个代理出来了(
适配了更新的 docker+clash 分流代理教程,可以如以前一样支持 google 和 pku vpn 联用:
https://arthals.ink/posts/tools/pku-vpn-perfect
cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:
发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下
===========
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
……
感谢教程,也就是说把原来openconnect参数里的nc改成pulse就跟以前一样正常使用了,也就是那句命令改成下面这样↓
echo PASSWORD | openconnect --script-tun --script "ocproxy -D 7900 -g -k 15" --protocol=pulse vpn.pku.edu.cn -u STUID --reconnect-timeout 60 --passwd-on-stdin
有个小坑,如果你用openconnect的版本是v8.05-1(Ubuntu20.04LTS直接apt install会装这个版本),会报一个类似Unexpected IF-T/TLS packet when expecting configuration.的协议不兼容错误。我是自己到openconnect仓库拉了一个9.12版本到本地编译的,只要出现ESP session established with server就是连上了。
推荐大家用楼上教程里的Docker,省时省力(
Arthals (SparkingHanabi) 在 ta 的帖子中提到:
适配了更新的 docker+clash 分流代理教程,可以如以前一样支持 google 和 pku vpn 联用:
https://arthals.ink/posts/tools/pku-vpn-perfect
这个docker的方式看起来应该只能对本身支持socks5协议的应用,且使用域名而不是ip访问的情况吧,感觉还是有一定限制。典型场景比如需要用ssh连校内的某个服务器,ssh命令本身应该是不支持socks5代理的(虽然也有一些科技可以搞定),而且通常也没域名。
我之前倒是写过一个方案用改路由表的方式来实现的,但相对麻烦,也必须是openconnect才能支持,至少当时学校自带的客户端是锁路由表的【
Arthals (SparkingHanabi) 在 ta 的帖子中提到:
适配了更新的 docker+clash 分流代理教程,可以如以前一样支持 google 和 pku vpn 联用:
https://arthals.ink/posts/tools/pku-vpn-perfect
libcyber不冲突
cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:
发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下
===========
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
……
网络小白请教一下,在校内但是开了VPN(fq看Google)之后各种学术网站(比如nature)就识别不到校内的IP需要登陆等复杂的操作才能access,有什么好的办法解决嘛
cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:
发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下
===========
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
……
你的网站被ESET拦截,报错信息如下:
已吊销网站证书
此 服务器 使用的 certificate 已标记为不可信,该连接不安全。
请与网站所有者联系以告知他们此问题、稍后尝试重新连接或从其他 Internet 连接进行连接。
此错误由缺少的 OCSP 响应导致,该响应必须存在并有效,因为使用了 OCSP Must-Staple。
此网页的访问已被阻止。
Arthals (SparkingHanabi) 在 ta 的帖子中提到:
适配了更新的 docker+clash 分流代理教程,可以如以前一样支持 google 和 pku vpn 联用:
https://arthals.ink/posts/tools/pku-vpn-perfect
ssh的话jumpproxy就行吧
lcdlyxrqy (忘川蒿里|小落叶) 在 ta 的帖子中提到:
这个docker的方式看起来应该只能对本身支持socks5协议的应用,且使用域名而不是ip访问的情况吧,感觉还是有一定限制。典型场景比如需要用ssh连校内的某个服务器,ssh命令本身应该是不支持socks5代理的(虽然也有一些科技可以搞定),而且通常也没域名。
我之前倒是写过一个方案用改路由表的方式来实现的,但相对麻烦,也必须是openconnect才能支持,至少当时学校自带的客户端是锁路由表的【
ssh可以啊,我教程里有写,配置一个nc的代理就行。
lcdlyxrqy (忘川蒿里|小落叶) 在 ta 的帖子中提到:
这个docker的方式看起来应该只能对本身支持socks5协议的应用,且使用域名而不是ip访问的情况吧,感觉还是有一定限制。典型场景比如需要用ssh连校内的某个服务器,ssh命令本身应该是不支持socks5代理的(虽然也有一些科技可以搞定),而且通常也没域名。
我之前倒是写过一个方案用改路由表的方式来实现的,但相对麻烦,也必须是openconnect才能支持,至少当时学校自带的客户端是锁路由表的【
按照我的教程走的话,你可以选择:添加对于学术网站的Clash分流规则,或者直接将Clash最后的保底项Match改成11080代理服务器端口
danaodai (大脑袋) 在 ta 的帖子中提到:
网络小白请教一下,在校内但是开了VPN(fq看Google)之后各种学术网站(比如nature)就识别不到校内的IP需要登陆等复杂的操作才能access,有什么好的办法解决嘛
这是 Firefox 的问题,请换用 Chrome(
azurite (石青) 在 ta 的帖子中提到:
你的网站被ESET拦截,报错信息如下:
已吊销网站证书
……
这个倒确实可以解决ssh的问题,不过对于windows还是需要第三方工具
本质上解决方案还是只支持域名+支持socks5代理的场景的,虽然可能不能work的场景即便存在也比较边缘了【
Arthals (SparkingHanabi) 在 ta 的帖子中提到:
ssh可以啊,我教程里有写,配置一个nc的代理就行。
我不知道这里的校内资源是什么. 如果是 PKU 内网资源, 那这个配置没问题; 如果是想用 PKU IP 访问学术网站, 可能有些问题.
我很早以前爬过北大拥有特殊访问权限的网站, 整理了一个不需要代理的列表:
这个规则列表本意是如果用户在校内, 这些网站不应被代理, 所以它们的连接方式是强制直连的. 这种情况下用 parser 修改规则列表还有效吗?
cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:
发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下
===========
主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。
……
草 整理的好详细,感觉可以做个单独的 RULESET 了。
hiaoxui (小辉) 在 ta 的帖子中提到:
我不知道这里的校内资源是什么. 如果是 PKU 内网资源, 那这个配置没问题; 如果是想用 PKU IP 访问学术网站, 可能有些问题.
我很早以前爬过北大拥有特殊访问权限的网站, 整理了一个不需要代理的列表:
https://pastebin.com/eBHuydX9
……