首页版面好友提醒登录
返回北京大学计算中心版

用Clash接管北大VPN的流量

cobaltCGRibom. 最后修改于2024-01-28 22:26:58
[楼主]1楼

主要动因是解决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配置更新一下

skelviperskelviper 2023-07-13 14:45:00
2楼

好贴,谢谢楼主!

cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:

主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。

版友提出可以通过openconnect和ocproxy把VPN开成一个本地的SOCKS5代理(假设端口为7900),而不是默认接管全部流量。

(重点来了)在此基础上,为Clash添加parsers

……

xtzhjjXtzzzz 2023-07-13 15:13:31
3楼

好好好

cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:

主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。

版友提出可以通过openconnect和ocproxy把VPN开成一个本地的SOCKS5代理(假设端口为7900),而不是默认接管全部流量。

(重点来了)在此基础上,为Clash添加parsers

……

neonplanet 2023-10-19 18:33:43
4楼

好好好好好好好好好好👍


cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:

发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下

===========

主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。

……

cobaltCGRibom. 2024-01-25 23:30:37
[楼主]5楼

今天回家发现个情况,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客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。

……

realFongpython 2024-01-26 12:31:42
6楼

cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:

发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下

===========

主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。

……

cityofsky紫玉红棉 2024-01-26 17:02:45
7楼

我知道这个好方法,竟然是在它失效了之后,最近越来越感叹信息的重要性了

cobaltCG (Ribom.) 在 ta 的帖子中提到:

今天回家发现个情况,openconnect+ocproxy开本地socks代理的方法已失效。


原本PKUVPN在客户端之外,是提供了一个HTTP登录的接口的,ocproxy这套方法本质也是模拟了这个HTTP登录的过程。但是最近发现学校把这个登录方式取消了(如图),所以后续配套的也都不能用了。


不知道还能咋办,如果还想让非校内流量不走VPN的话,感觉只能把Pulse开到Docker或者虚拟机里然后开个代理出来了(

ArthalsSparkingHanabi 2024-01-28 05:20:41
8楼

适配了更新的 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客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。

……

cobaltCGRibom. 2024-01-28 13:48:38
[楼主]9楼

感谢教程,也就是说把原来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

lcdlyxrqy忘川蒿里|小落叶 最后修改于2024-01-28 16:20:16
10楼

这个docker的方式看起来应该只能对本身支持socks5协议的应用,且使用域名而不是ip访问的情况吧,感觉还是有一定限制。典型场景比如需要用ssh连校内的某个服务器,ssh命令本身应该是不支持socks5代理的(虽然也有一些科技可以搞定),而且通常也没域名。

我之前倒是写过一个方案用改路由表的方式来实现的,但相对麻烦,也必须是openconnect才能支持,至少当时学校自带的客户端是锁路由表的【

Arthals (SparkingHanabi) 在 ta 的帖子中提到:

适配了更新的 docker+clash 分流代理教程,可以如以前一样支持 google 和 pku vpn 联用:


https://arthals.ink/posts/tools/pku-vpn-perfect

funraiseraise 2024-01-28 16:49:34
11楼

libcyber不冲突

https://cn.libcyber.xyz/

cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:

发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下

===========

主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。

……

danaodai大脑袋 2024-01-28 17:05:45
12楼

网络小白请教一下,在校内但是开了VPN(fq看Google)之后各种学术网站(比如nature)就识别不到校内的IP需要登陆等复杂的操作才能access,有什么好的办法解决嘛

cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:

发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下

===========

主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。

……

azurite石青 2024-01-28 17:42:11
13楼

你的网站被ESET拦截,报错信息如下:

        

已吊销网站证书

此 服务器 使用的 certificate 已标记为不可信,该连接不安全。

请与网站所有者联系以告知他们此问题、稍后尝试重新连接或从其他 Internet 连接进行连接。


此错误由缺少的 OCSP 响应导致,该响应必须存在并有效,因为使用了 OCSP Must-Staple。

此网页的访问已被阻止。

Arthals (SparkingHanabi) 在 ta 的帖子中提到:

适配了更新的 docker+clash 分流代理教程,可以如以前一样支持 google 和 pku vpn 联用:


https://arthals.ink/posts/tools/pku-vpn-perfect

fcyycf无敌剑士123 2024-01-28 18:21:32
14楼

ssh的话jumpproxy就行吧

lcdlyxrqy (忘川蒿里|小落叶) 在 ta 的帖子中提到:

这个docker的方式看起来应该只能对本身支持socks5协议的应用,且使用域名而不是ip访问的情况吧,感觉还是有一定限制。典型场景比如需要用ssh连校内的某个服务器,ssh命令本身应该是不支持socks5代理的(虽然也有一些科技可以搞定),而且通常也没域名。

我之前倒是写过一个方案用改路由表的方式来实现的,但相对麻烦,也必须是openconnect才能支持,至少当时学校自带的客户端是锁路由表的【

ArthalsSparkingHanabi 2024-01-28 18:21:42
15楼

ssh可以啊,我教程里有写,配置一个nc的代理就行。

lcdlyxrqy (忘川蒿里|小落叶) 在 ta 的帖子中提到:

这个docker的方式看起来应该只能对本身支持socks5协议的应用,且使用域名而不是ip访问的情况吧,感觉还是有一定限制。典型场景比如需要用ssh连校内的某个服务器,ssh命令本身应该是不支持socks5代理的(虽然也有一些科技可以搞定),而且通常也没域名。

我之前倒是写过一个方案用改路由表的方式来实现的,但相对麻烦,也必须是openconnect才能支持,至少当时学校自带的客户端是锁路由表的【

ArthalsSparkingHanabi 2024-01-28 18:23:00
16楼

按照我的教程走的话,你可以选择:添加对于学术网站的Clash分流规则,或者直接将Clash最后的保底项Match改成11080代理服务器端口

danaodai (大脑袋) 在 ta 的帖子中提到:

网络小白请教一下,在校内但是开了VPN(fq看Google)之后各种学术网站(比如nature)就识别不到校内的IP需要登陆等复杂的操作才能access,有什么好的办法解决嘛

ArthalsSparkingHanabi 2024-01-28 18:23:24
17楼

这是 Firefox 的问题,请换用 Chrome(

azurite (石青) 在 ta 的帖子中提到:

你的网站被ESET拦截,报错信息如下:

        

已吊销网站证书

……

lcdlyxrqy忘川蒿里|小落叶 2024-01-28 19:01:18
18楼

这个倒确实可以解决ssh的问题,不过对于windows还是需要第三方工具

本质上解决方案还是只支持域名+支持socks5代理的场景的,虽然可能不能work的场景即便存在也比较边缘了【

Arthals (SparkingHanabi) 在 ta 的帖子中提到:

ssh可以啊,我教程里有写,配置一个nc的代理就行。

hiaoxui小辉 最后修改于2024-01-28 19:26:32
19楼

我不知道这里的校内资源是什么. 如果是 PKU 内网资源, 那这个配置没问题; 如果是想用 PKU IP 访问学术网站, 可能有些问题.

 我很早以前爬过北大拥有特殊访问权限的网站, 整理了一个不需要代理的列表:

https://pastebin.com/eBHuydX9

这个规则列表本意是如果用户在校内, 这些网站不应被代理, 所以它们的连接方式是强制直连的. 这种情况下用 parser 修改规则列表还有效吗?

cobaltCG (Cobalt as a scholar, Ribom as a gamer) 在 ta 的帖子中提到:

发现配置有个笔误,prepend-rules那里应该用proxy-groups的名字,改一下

===========

主要动因是解决Clash科学上网和北大内网VPN的Pulse Secure客户端冲突的问题,目标是在校外可以同时访问校内的服务器和谷歌学术等外网。

……

ArthalsSparkingHanabi 2024-01-28 19:46:29
20楼

草 整理的好详细,感觉可以做个单独的 RULESET 了。

hiaoxui (小辉) 在 ta 的帖子中提到:

我不知道这里的校内资源是什么. 如果是 PKU 内网资源, 那这个配置没问题; 如果是想用 PKU IP 访问学术网站, 可能有些问题.

 我很早以前爬过北大拥有特殊访问权限的网站, 整理了一个不需要代理的列表:

https://pastebin.com/eBHuydX9

……