借助 Clash 设置 wsl 的终端代理

借助此次短学期,将代理换成了 Clash + ZJU Rule + ZJU Connect,并且实现了 wsl 的终端代理,拥有了更畅快的科学上网体验!

起因

这几天上完短学期课程回家,虽然课程结束但是 lab 和 report 并没有结束。于是开始跑之前写好的程序,准备截几张图放进 report 里,结果发现……有一道题跑不通了TT

那题是校内平台上的,得要内网访问,转头看了一眼课程群,发现也有同学有相同的问题,4 老师建议使用 tun2socks, proxychains4 等软件。于是笔者尝试捣鼓了一下 proxychains4,不出意料的失败了。因为之前有过设置 wsl 终端代理失败的诸多痛苦经历,笔者对此已经是见怪不怪,但是 report 的截图迟迟没有着落,笔者也很想设置好 wsl 的终端代理来减少 wsl 内下包下不下来一直失败的情况,正好班群里 lhjgg 提到他都是把 Clash 的 TUN Mode 打开来实现 wsl 的终端代理,在双重压力之下,笔者又开始了配环境的旅程。

准备工作

前排提醒:笔者为 Win 11 系统,使用的是 wsl2,Clash 的版本是 v0.20.30.

笔者以前科学上网用的是 ShadowsocksR(ssr) ,要转成 Clash 略有麻烦,所幸校内论坛里有前辈已经铺好了路,按着走就行。

  • 安装 Clash

    这个别下错架构,以及挑个网好的时候就行了。

  • 安装 ZJU Connect[1]

    别惦记着你那 Easy Connect 了,对自己(的电脑)好点。

开始配置

  • 应用 ZJU Rule[2]

    这个服务本质上是使用论坛前辈已经部署好的 subconverter 实现订阅链接的转换,并加入分组分流的信息。 ZJU Connect 的链接在 ZJU Connect for Windows 的高级选项内有,直接复制过去一起给 ZJU Rule 转换就行。 然后从 Clash 上 download 下来,ZJU 内网和 ZJU More Scholar 的节点切换为 ZJU Connect 即可。

  • 开启 TUN Mode

    那么就到设置 wsl 终端代理了。但为啥这个 TUN Mode 就能做到呢?这里引一下 Clash 的文档[3]

    对于不遵循系统代理的软件,TUN 模式可以接管其流量并交由 CFW 处理

    CFW 就是 Clash for Windows,笔者猜想是正常的代理都没法代理 wsl,即 wsl 就是那种不遵循系统代理的软件,那么 TUN Mode 正适合它。

    开启过程在文档内都有,就不赘述了。 不过开启 TUN Mode 需要先安装 Service Mode,笔者有个同学和笔者是相同的配置,却并没有成功,仔细一问是 Service Mode 没装。

过程总结

整体上的流程就是安装好 Clash,然后有学校内网的 rvpn 和机场的订阅链接,将它们利用 subconverter 转换为 Clash 的链接,最后开启 TUN Mode 就行了。前辈把路搭好的话问题确实不大,但要是从零开始实现的话感觉还是相当困难的。不过要是正常使用 pwsh 的时候是不要开启 TUN Mode 的,反而会出错。(笔者 push 自己的 blog 时就会报错)

更新(2024-02-17)

因为一些众所周知的原因,ZJU Rule 关闭了,并且 ZJU Connect 内用于转换的链接选项也未保留。不过这一功能还是可以使用的,链接格式为 tg://socks?server=127.0.0.1&port=端口号&remarks=ZJU Connect,端口号是 ZJU Connect 使用 rvpn 的 socks5 端口号。并且有大佬接手了 ZJU Rule 的维护(仓库地址已更新),所以可以基于公共订阅链接自己配置。以 acl4ssr 为例,在远程配置中输入 https://raw.githubusercontent.com/SubConv/ZJU-Rule/main/Clash/config/ZJU.ini,并在下拉框中选中,然后后端配置选择 sub.xeton.dev,之后按照先前的流程操作即可。

参考


借助 Clash 设置 wsl 的终端代理
https://shadowash0215.github.io/2023/07/24/misc-1/
Author
shad0wash
Posted on
July 24, 2023
Licensed under