前言
本人太笨,在使用 clash for windows
和 clashX
遇到了一系列问题,现在记录下来以便供自己和遇到相同问题的人以参考。
此篇文章针对的是 ss,不是 V2,但是当你理解 ss 也就知道 V2 该如何配置了。建议看完全文再实际操作。
本文针对人群
没有使用过 surge 的小白。
文中所使用的版本及系统
windows 系统
OS: Windows10
clash for windows: v 0.5.27
macOS 系统
OS: macOS 10.13.0
clashX: 1.9.6
特别提醒
时过境迁,本文不保证您随着我的教程而不出现某些问题。
软件下载和安装
下载
windows 系统
- https://github.com/yichengchen/clashX
有 GPG
效验,如何效验略(不会
macOS 系统
- https://github.com/Fndroid/clash_for_windows_pkg
安装
windows 系统
v 0.5.27
版本(或更早的版本)增加了安装位置选项,选择 仅为我安装
,会把软件安装到 用户文件夹 下;选择 为使用这台电脑的任何人…,会安装到 C:\Program Files\Clash for Windows
。
区别
选择 为使用这台电脑的任何人…,在切换用户的时候依然可以使用该软件。
macOS 系统
此处略,安装没什么好说的。
配置
配置文件位置
macOS
~/.config/clash/config.yml
windows
C:\Users\你的用户名\.config\clash
,如果找不到就是进C
盘,点击 用户,点击文件夹是 你用户名 的文件夹,进去之后点击.config
文件夹,再点clash
文件夹,就看到config.yml
文件了
编辑配置文件的软件
macOS
随意,自带的也行,或者下载 vscode,地址:https://code.visualstudio.com/download
windows
建议 vscode,地址:https://code.visualstudio.com/download
编辑配置文件
Tips
注意标点符号,必须是英文状态下的。
这两个软件的配置文件是 通用 的,建议先复制 config.yml
一份配置文件,然后打开复制后的文件。
一
删除 Proxy
和 Proxy Group
里面所有的内容,然后在 proxy
下粘贴一下内容:
- name: "ss2"
type: ss
server: server
port: 443
cipher: AEAD_CHACHA20_POLY1305
password: "password"
plugin: obfs
plugin-opts:
mode: tls # or http
# host: bing.com
name
就是名称,比如说你这个服务器是香港的,那么你就写香港cipher
就是加密方式mode
此处需要注意你自己是 tls 还是 httphost
一般机场都有自己的指向的
#
号代表注释掉,也就是不让 #
号后面的内容起作用
二
在 Proxy Group
粘贴一下内容:
- { name: "PROXY", type: select, proxies: ["ss2"] }
name
这里起名很重要,不建议更改,使用proxy
即可,因为它会跟分流规则相关联,后面会有说明。proxies
这里填写服务器的 name,因为我在上面写了 ss2,所有我在这里也必须是 ss2,它们两个必须完全一样。type
这里不动,它的意思就是选择,选择后面的服务器,我们现在就一个服务器,如果多了不就有选择性了。
三
现在就可以使用了。
- windows
- 打开软件,点击左侧 Profiles,把你编辑的配置文件拖放的右侧,然后点击你拖放到里面的配置文件,使其变为浅红色。如果你的配置文件有问题,屏幕右下角会弹出报错信息,配置文件无问题则会提示 success。
- 点击左侧 General,右侧 System Proxy 的右边打钩。
- 点击左侧 Proxies,右侧选择 ss2,此时登陆谷歌,应该能打开。
- macOS
- 点最上面一栏的软件图标,出站模式选择全局
- 点设置为系统代理,使其变为打钩状态。
- 点配置,点切换配置文件,点你修改的那个文件。如果配置没问题,则会提示 success,打开谷歌进行测试,如果有问题则会报错。
四
如果上面顺利进行一下步骤;如果弹出报错信息,请根据报错提示再仔细核查。因为我们现在只有一个服务器,不够用,所有我们要再增加一个。
Proxy:
- name: "ss2"
type: ss
server: server
port: 443
cipher: AEAD_CHACHA20_POLY1305
password: "password"
plugin: obfs
plugin-opts:
mode: tls # or http
# host: bing.com
- name: "ss1"
type: ss
server: server
port: 443
cipher: AEAD_CHACHA20_POLY1305
password: "password"
plugin: obfs
plugin-opts:
mode: tls # or http
# host: bing.com
Proxy Group:
- { name: "PROXY", type: select, proxies: ["ss2", "ss1"] }
增加完了,前后对比一下,很快就能发现怎么增加的,所以我就不再废话了。增加完毕之后再进行第三步的测试,看有没有报错,没报错看能不能登陆谷歌。
五
面进行规则简单说明,GitHub 有很多规则,谷歌搜索一下即可。这里只是简单讲解一下规则的使用。
Proxy Group:
- { name: "PROXY", type: select, proxies: ["ShadowsocksX-NG"] }
- { name: "Hijacking", type: select, proxies: ["DIRECT", "REJECT"] }
Rule:
- DOMAIN-SUFFIX,bilibili.com,Hijacking
我们先看 Rule 里的参数,一般规则由三部分组成,分别是:
- 判断类型规则
- 该类型所对应的域名
- 该域名所对应的代理规则
我们以 www.bilibili.com 这个网址举例:
假设我们想在登陆 bilibili 这个网站的时候通过代理方式。那么我们可以这么写一条规则:
- DOMAIN-SUFFIX,bilibili.com,PROXY
因为 bilibili.com 是一个域名,要如何判断一个域名用什么规则呢?这个用作 判断 的东西,就是我上面提到的 判断类型规则。这里判断域名的东西就是 DOMAIN-SUFFIX
。我现在已经通过它来判断出这是一个域名了,那么我改如何让 bilibili.com 走代理?只要在其后加上 PROXY
就行。这个 PROXY
就是对应上面 Proxy Group
里的 PROXY
。proxies
这里只有一个代理服务器,所以默认就是它,如何有多个,那么你要自己在软件里选择,不是在这个文件里。
如何切换:
-
macOS
-
windows(看好红色箭头) Test Latency 测延迟的意思
Proxy Group 里 name 所对应的字符会在软件里体现。
六
继续 bilibili.com,假设 bilibili.com,bilibili1.com 等等凡是域名包含 bilibili 的我都想代理,那么就写:
DOMAIN-KEYWORD,bilibili,PROXY
DOMAIN-KEYWORD
表示判断域名中的关键字,而 bilibili
就是关键字,所以凡是有这个关键字的域名全都被匹配到,也就全都代理了。
DOMAIN,www.bilibili.com,PROXY
这里表示只有打开 www.bilibili.com 的时候是通过代理的,如果打开 live.bilibili.com
就不被代理了,虽然都是 bilibili.com
。只有一个 DOMAIN
的时候表示的是匹配完整域名。
七
我们看 Proxy Group
里面还有一个 Hijacking
,而它的 proxies
里则是 DIRECT
和 REJECT
。REJECT
是拒绝的意思,DIRECT
是直连的意思。假设 baidu.com 是一个广告网站,我们现在想拦截他,拒绝他的请求,就可以这么写:
DOMAIN-SUFFIX,baidu.com,Hijacking
他的意思就是当我们打开 baidu.com 的时候,我们可以选择在 clash 里选择是拒绝还是直连,拒绝就是拒绝它了。不管是 www.baidu.com
还是 m.baidu.com
通通拒绝。
-
macOS
-
windows
可以看到这里有选择,是直连还是拒绝,通常该类型的规则用于广告。关于规则就说到这里,以后再说吧,也可以找找其他 surge 规则教程,他们是类似的。
八
对于网上找的整理好的规则,如何用?一般情况下只要增加或减少规则里面的 Proxy
的服务器,再修改Proxy Group
里面的服务器名字就可以了。
结尾
一个废话连篇的小教程到这里就结束了,平时用规则就可以,不必全局。
-
macOS
-
windows