使用Clash工具科学上网 | Eulaの小破站

使用Clash工具科学上网 | Eulaの小破站

notion image

1. Clash基本介绍

1.1 Clash简介

  • Clash是一款用Go开发的多平台的代理工具,Clash使用强大的策略组来管理节点。
  • Clash的魅力在于可以自动选择节点,不同的网站,在同一时间,可以使用不同的节点去访问,推荐机场订阅用户使用。

1.2 Clash支持

  • 系统支持:目前支持Win、Mac、Android、软路由端,暂不支持iOS端。
  • 协议支持:支持当下主流的SS/SSR、v2ray、Trojan等协议。

1.3 Clash安装

1.3.1 Clash原版

1.3.2 Clash汉化版

功能界面说明如下:
12345678910111213141516171819
General(常规):  - Port、Socks Port;分别为HTTPSOCKS代理端口,点击终端图案可以打开一个配置了代理的命令行窗口,点击端口数字可以复制该命令;  - Allow LAN:启用局域网共享代理功能;  - Log Level:日志等级;  - Home Directory:点击下方路径直达 C:\Users\用户名\.config\clash 文件夹;  - GeoIP Database:点击下方日期可更新 GeoIP 数据库;  - UWP Loopback :可以用来使 UWP 应用解除回环代理限制;  - Tap Device :安装 cfw-tap 网卡,可用于处理不遵循系统代理的软件(实际启动 tap 模式需要更改配置文件);  - General YML:编辑 config.yml 文件,可用于配置部分 General 页面内容;  - Dark Theme:控制暗色模式;  - System Proxy:启用系统代理;  - Start with Windows:设置开机自启;Proxies(代理):选择代理方式(Global - 全局、Rule - 规则、Direct - 直连)及策略组节点选择;Profiles(配置管理):  - 用来下载远端配置文件和创建本地副本,且可在多个配置文件间切换;  - 对配置进行节点、策略组和规则的管理(添加节点、策略组和规则, 调整策略组顺序、节点顺序及策略组节点使用拖拽的方式);Logs(日志):显示当前请求命中规则类型和策略;Connections (连接): 显示当前的 TCP 连接,可对某个具体连接执行关闭操作;Feedback(反馈):显示软件、作者相关信息,内含捐赠码,欢迎打赏 Fndroid 大佬以感谢和支持开发。
爱折腾的小伙伴可选择自行汉化,步骤如下:
  • Step1:安装Node.js,下载安装 Node.js(对应平台的.msi版本即可)【检查:npm -v】
  • Step2:安装asar,安装命令为npm install -g asar【检查:asar –version】
  • Step3:找到 Clash 的语言包文件 app.asar (在\resources文件夹下),备份该文件
  • Step4:切换目录,输入cd 安装路径\Clash.for.Windows\resources
  • Step5:解包,输入asar extract app.asar 安装路径\Clash.for.Windows\resources\bak,解包后在bak文件夹下
  • Step6:在\bak\dist\electron路径下找到 renderer.js 文件,用记事本打开全局替换,记得勾选上“区分大小写”
  • Step7:重新打包,输入 asar pack 安装路径\Clash.for.Windows\resources\bak app.asar
  • Step8:使用重新打包获得的app.asar替换原有的。

2. Clash订阅转换

由于手动编写Clash配置文件比较麻烦,以下我们将采用工具进行转换,此处不再赘述具体写法,有兴趣的小伙伴可以自己研究一下。

2.1 使用convert2clash工具在本地转换

我们可以使用一个开源工具将我们的机场订阅直接转换成Clash配置文件,使用方法如下:
  • Step2:安装依赖–执行pip install -r requirements.txt
  • Step3:修改Robot.py中的参数 (正常情况下只需修改sub_url即可食用),并执行。
    • 1
      2
      3
      4
      
      1. sub_url=订阅地址(多个地址;隔开)
      2. output_path=转换成功后文件输出路径 默认输出至当前文件夹的output.yaml中
      3. config_url=来自互联网的规则策略 默认值为https://cdn.jsdelivr.net/gh/Celeter/[email protected]/config.yaml
      4. config_path=来自本地的规则策略 默认选择当前文件的config.yaml文件
      
notion image
2.2 搭建subconverter和sub-web在线转换
上述方法虽然足够好用,但还需要安装python环境,对于非开发者的小伙伴不够方便。
恰巧Github上还有个在各种订阅格式之间转换的开源项目Subconverter和Sub-Web,可以在线的对订阅进行转换,但用别人的后端转换订阅,存在一定的数据隐患,如果不放心的话,可以自行搭建。
Sub-Web作者的在线订阅转换:https://sub-web.netlify.app/

2.2.1 准备工作

环境准备:
  • 在VPS(本文使用的Debian10系统)上安装宝塔面板和Nginx环境
  • 解析两个域名(一个用于前端,一个用于后端)
  • 申请泛域名证书,用于开启HTTPS(非必须,但建议弄一个)
注:以上环境的搭建过程不再赘述,不会的小伙伴可参考我的另一篇博客:VPS基本部署环境的搭建与配置
项目准备:

2.2.2 搭建Sub-Web前端

[1] 更新系统并安装 Node 与 Yarn
依次运行下面四行命令,安装nodejs环境及npm、yarn包管理工具
1234
$ apt update -y$ apt install -y curl wget sudo nodejs git$ sudo apt install npm$ npm install -g yarn
命令执行完毕以后,请运行下面的代码查询 Node 与 Yarn 是否安装成功,若是成功会返回版本号
12
$ node -v$ yarn -v
[2] 下载并安装 Sub-Web
拉取 sub-web 程序,并进入 sub-web 文件夹
12
$ git clone https://github.com/CareyWang/sub-web.git$ cd sub-web
在项目目录中安装构建依赖项,构建的过程稍微有点长
[3] 修改默认后端地址
打开 /root/sub-web/src/views/Subconverter.vue ,找到 258行 backendOptions:,替换后面的 http://127.0.0.1:25500/sub?https://后端域名/sub?(注意两个地方:域名为你刚才准备的后端域名,是 https 而非 http)
[4] 更换远程规则
打开 /root/sub-web/src/views/Subconverter.vue 文件,找到 259行 remoteConfig: [,插入下面内容:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
{            label: "ACL4SSR",            options: [              {                label: "ACL4SSR_Online 默认版 分组比较全 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online.ini"              },              {                label: "ACL4SSR_Online_AdblockPlus 更多去广告 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_AdblockPlus.ini"              },              {                label: "ACL4SSR_Online_NoAuto 无自动测速 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoAuto.ini"              },              {                label: "ACL4SSR_Online_NoReject 无广告拦截规则 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_NoReject.ini"              },              {                label: "ACL4SSR_Online_Mini 精简版 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini.ini"              },              {                label: "ACL4SSR_Online_Mini_AdblockPlus.ini 精简版 更多去广告 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_AdblockPlus.ini"              },              {                label: "ACL4SSR_Online_Mini_NoAuto.ini 精简版 不带自动测速 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_NoAuto.ini"              },              {                label: "ACL4SSR_Online_Mini_Fallback.ini 精简版 带故障转移 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_Fallback.ini"              },              {                label: "ACL4SSR_Online_Mini_MultiMode.ini 精简版 自动测速、故障转移、负载均衡 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Mini_MultiMode.ini"              },              {                label: "ACL4SSR_Online_Full 全分组 重度用户使用 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full.ini"              },              {                label: "ACL4SSR_Online_Full_NoAuto.ini 全分组 无自动测速 重度用户使用 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_NoAuto.ini"              },              {                label: "ACL4SSR_Online_Full_AdblockPlus 全分组 重度用户使用 更多去广告 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_AdblockPlus.ini"              },              {                label: "ACL4SSR_Online_Full_Netflix 全分组 重度用户使用 奈飞全量 (与Github同步)",                value:                  "https://raw.githubusercontent.com/ACL4SSR/ACL4SSR/master/Clash/config/ACL4SSR_Online_Full_Netflix.ini"              },              {                label: "ACL4SSR 本地 默认版 分组比较全",                value: "config/ACL4SSR.ini"              },              {                label: "ACL4SSR_Mini 本地 精简版",                value: "config/ACL4SSR_Mini.ini"              },              {                label: "ACL4SSR_Mini_NoAuto.ini 本地 精简版+无自动测速",                value: "config/ACL4SSR_Mini_NoAuto.ini"              },              {                label: "ACL4SSR_Mini_Fallback.ini 本地 精简版+fallback",                value: "config/ACL4SSR_Mini_Fallback.ini"              },              {                label: "ACL4SSR_BackCN 本地 回国",                value: "config/ACL4SSR_BackCN.ini"              },              {                label: "ACL4SSR_NoApple 本地 无苹果分流",                value: "config/ACL4SSR_NoApple.ini"              },              {                label: "ACL4SSR_NoAuto 本地 无自动测速 ",                value: "config/ACL4SSR_NoAuto.ini"              },              {                label: "ACL4SSR_NoAuto_NoApple 本地 无自动测速&无苹果分流",                value: "config/ACL4SSR_NoAuto_NoApple.ini"              },              {                label: "ACL4SSR_NoMicrosoft 本地 无微软分流",                value: "config/ACL4SSR_NoMicrosoft.ini"              },              {                label: "ACL4SSR_WithGFW 本地 GFW列表",                value: "config/ACL4SSR_WithGFW.ini"              }            ]          },
[5] 打包vue生成dist发布目录
我们的前端搭建完毕,现在需要打包生成一个发布目录,执行下面的命令进行打包:
执行完打包命令后,在 /root/sub-web 下面会生成一个 dist 目录,这个目录即为网页的发布目录,如图所示:
notion image

2.2.3 在宝塔面板上设置网站

[1] 添加前端站点
  • Step1:网站——添加站点——输入前端域名(其余的都不需要配置)——提交——然后添加SSL证书并强制HTTPS。
  • Step2:文件——打开/root/sub-web/dist目录复制所有文件,将其粘贴到该网站的根目录
  • Step3:测试前端是否可以访问(https://前端域名),显示出如下页面即配置成功:
    • notion image
[2] 添加后端站点
  • Step1:网站——添加站点——输入后端域名(其余的都不需要配置)——提交——然后添加SSL证书并强制HTTPS
  • Step2:网站——设置——反向代理——添加反向代理——代理名称随便填,目标URL填写http://127.0.0.1:端口号(端口号后面要在后端程序里配的,默认端口25500)
这样,我们后端的反向代理就设置完成了

2.2.4 搭建SubConverter后端

[1] 下载并解压后端程序
输入以下命令:
123
$ cd /root$ wget https://github.com/tindy2013/subconverter/releases/download/v0.6.3/subconverter_linux64.tar.gz$ tar -zxvf subconverter_linux64.tar.gz
完成以后,在 /root 文件夹下会多出一个 subconverter 的文件夹,这个就是我们的后端程序
[2] 修改配置文件参数
打开/root/subconverter/pref.ini ,找到如下参数进行修改
1234
api_access_token=token字符串             #随意设置自己知道就行(不用加引号)managed_config_prefix=https://后端域名   #设置成我们刚刚解析的后端域名listen=127.0.0.1                        #设置监听地址127.0.0.1port=25500                              #设置运行端口号(默认25500
[3] 创建服务进程并启动
接下来我们需要创建一个服务,让VPS每次重启或是开机自动运行后端程序
找到VPS目录 /etc/systemd/system,创建一个名为 sub.service 的文件,添加以下内容:
12345678910111213
[Unit]Description=A API For Subscription ConvertAfter=network.target[Service]Type=simpleExecStart=/root/subconverter/subconverterWorkingDirectory=/root/subconverterRestart=alwaysRestartSec=10[Install]WantedBy=multi-user.target
检查运行状态以及设置开机自启
1234
$ systemctl daemon-reload$ systemctl start sub.service$ systemctl enable sub.service$ systemctl status sub.service
启动subconverter服务
12
$ cd /root/subconverter$ ./subconverter
到这里,后端也就搭建完毕了,我们现在可以在浏览器里面访问我们的后端了 https://后端域名,正常情况下会显示后端程序的版本号。
1
subconverter v0.6.3 backend

3. Clash入门使用

3.1 导入Clash配置

有本地导入和远程下载两种方法导入Clash配置文件,分别对应上述的两种订阅转换方式。

3.1.1 本地导入

在”配置“处导入刚刚生成的output.yaml文件
notion image

3.1.2 远程下载

[1] 生成订阅链接
打开我们的sub-web前端站点,将机场订阅链接复制上,后端地址填写subconverter后端地址,选择一个远程配置(推荐如图所示的ACL4SSR_Online_Full全分组重度用户使用(与Github同步)配置),然后点击“生成订阅链接”按钮,复制生成的定制订阅。
notion image
[2] 远程下载订阅并应用配置
打开Clash for Windows,点击“配置”模块,在输入框粘贴刚刚生成的定制订阅,然后下载该配置,点击其应用配置。
notion image
注:如果出现配置界面空白,可删除%USERPROFILE%\.config\clash文件夹,清除Clash的配置文件。

3.2 打开系统代理

在“常规”处打开“系统代理”,然后在“连接”处就会显示出我们的节点了,正常情况下现在就可以翻墙了。
notion image

4. 参考资料

Loading Comments...