❤️💕💕CS自学指南,大学教育无论是深度还是广度都没有办法支撑我们的职业素养,这个板块算是自己在CS学习中额外补充和记录的。个人博客:http://nsddd.top
[TOC]
Go 中基于规则的隧道。
Release 中有各种类型的包(windows 、 Linux 、 mac)
- 具有身份验证支持的本地 HTTP/HTTPS/SOCKS 服务器
- Shadowsocks(R)、VMess、Trojan、Snell、SOCKS5、HTTP(S) 出站支持
- 内置假 IP DNS 服务器,旨在最大限度地减少 DNS 污染攻击的影响。支持 DoH/DoT 上游。
- 基于域、GEOIP、IP-CIDR 或进程名称的规则将数据包路由到不同的目的地
- 代理组允许用户实施强大的规则。支持自动回退、负载均衡或基于关闭延迟自动选择代理
- 远程提供商,允许用户远程获取代理列表而不是在配置中硬编码
- 透明代理:使用自动路由表/规则管理重定向 TCP 和 TProxy TCP/UDP
- 通过全面的 HTTP RESTful API 控制器进行热重载
您可以从https://github.com/Dreamacro/clash/releases获取 Clash 的预构建二进制文件或在本地构建。
Clash 需要 Golang 1.19 或更高版本。
$ go install github.com/Dreamacro/clash@latest
二进制文件构建在 $GOPATH/bin 下
$ clash -v
windows 中 V2ray N
,尝试一些新东西,Clash 很优秀的轨道,而且也是用 Go语言 编写的开源的工具,正合我意。
install:
wget https://github.com/Dreamacro/clash/releases/download/v1.13.0/clash-linux-amd64-v3-v1.13.0.gz
tar:
gunzip clash-linux-amd64-v3-v1.13.0.gz
mv clash-linux-amd64-v3-v1.13.0.gz clash
mkdir:
mkdir Clash
mv clash ./Clash;cd clash
载clash 配置文件config.yaml (注意:这个订阅链接是自己的,替代 [订阅链接],如果失败了说明订阅链接有问题)
下载Country.mmdb:
可能出现下载不成功,ftp 就行
wget -O Country.mmdb https://www.sub-speeder.com/client-download/Country.mmdb
配置文件移动到 .config
:
mkdir -p ~/.config/clash/
sudo cp /opt/clash/Country.mmdb ~/.config/clash/Country.mmdb
启动clash:
chmod +x clash
./clash -d .
wget 获取配置文件:
wget -O config.yaml [订阅链接(3293172751nss@gmail.com)]
#下载订阅链接内容并重命名为config.yaml
修改配置文件:
vim config.yaml #编辑config.yaml的文件
修改如下:
#配置文件
#port: 1234 #http端口,不用动
#socks-port: 1235 #socks端口,不用动
#allow-lan: true #是否允许来自局域网的链接,不用动
external-controller: '0.0.0.0:0000' #用于ui连接的地址,冒号前面一定要是0.0.0.0,不然无法连接ui。0000改为自己想要的端口
secret: '密钥' #连接ui用的密钥,自己配置
#proxies:
#省略
查看此时的文件结构:
启动:
./clash -f config.yaml #-f表示以指定配置文件运行clash
使用ctrl+c停止clash
运行calsh后,一旦关闭终端会导致clash也关闭,所以使用nohup命令后台运行clash
nohup ./clash -f config.yaml &
浏览器访问网址http://clash.razord.top/,根据配置文件填入对应信息,然后选择节点。用下面命令测试能否使用。
我是用的是 CLI :
root@cubmaster01:~/workspces# curl -x http://127.0.0.1:7890 google.com
{"message":"Unauthorized"}
终端测试能否通过clash连接谷歌。返回内容能说明有效。其中7890为你配置的http端口
使用后台运行clash后,关闭clash使用下面命令
pkill -9 clash #杀死clash进程
终端默认是直连的,设置代理命令如下
export http_proxy=http://127.0.0.1:7890 #7890为你配置的端口
export https_proxy=http://127.0.0.1:7890 #7890为你配置的端口
unset http_proxy
unset https_proxy
本次终端设置代理后,下次打开终端依旧需要重新设置,每次输入太麻烦,直接添加变量解决
sudo vim ~/.bashrc #编辑bashrc文件
在文件中添加下面的内容,其中7890为你设置的端口。“proxy”和“unproxy”为你喜欢的变量名字,一个用于开启代理,一个用于关闭
alias proxy="export http_proxy=http://127.0.0.1:7890;export https_proxy=http://127.0.0.1:7890"
alias unproxy="unset http_proxy;unset https_proxy"
刷新:
source ~/.bashrc #注意不编译无法生效
我一般放在
/etc/profile.d/mypath.sh
文件中
以后终端代理直接终端输入proxyCopy
即可。取消用unproxyCopy
。查看终端代理状态:
[root@dev workspces]# env | grep -i proxy
https_proxy=http://127.0.0.1:7890
http_proxy=http://127.0.0.1:7890
上面的终端代理可以用变量快速进行,同理clash也可以快速启动。不过上面的命令是在 /opt/vpn/Clash
目录下且该目录有配置文件才能正确执行,所以变量的命令需要将路径都写为绝对路径。
在文件中添加下面的内容。“clash”和“unclash”为你喜欢的变量名字,一个用于开启clash,一个用于关闭
后面的意思是将输出文件写入到/dev/null下,这个目录会丢弃所有写入数据,就是垃圾站,而数字是linux的重定向,里面的数字含义如下所示
- 1:标准输出,在一般使用时,默认的是标准输出;
- 2:表示错误信息输出。
这里整句话含义是将错误信息重定向到标准输出,其他信息丢进 /dev/null
alias 'clash'='nohup /opt/vpn/Clash/clash -f /opt/vpn/Clash/config.yaml -d /opt/vpn/Clash/ > /dev/null 2>&1 &'
alias 'unclash'='pkill -9 clash'
刷新:
source ~/.bashrc #注意不编译无法生效
此时就可用clashCopy
和unclashCopy
命令来启动和关闭clash,通过命令ps -ef | grep clashCopy
来判断clash是否运行,测试一下
[root@dev workspces]# unclash
[root@dev workspces]# curl -x http://127.0.0.1:7890 google.com
curl: (7) Failed to connect to 127.0.0.1 port 7890: Connection refused
[2]+ Killed nohup /opt/vpn/Clash/clash -f /opt/vpn/Clash/config.yaml -d /opt/vpn/Clash/ > /dev/null 2>&1
[root@dev workspces]# clash
[1] 99148
[root@dev workspces]# curl -x http://127.0.0.1:7890 google.com
<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
<TITLE>301 Moved</TITLE></HEAD><BODY>
<H1>301 Moved</H1>
The document has moved
<A HREF="http://www.google.com/">here</A>.
</BODY></HTML>
状态:
[root@dev workspces]# ps -ef | grep clash #判断clash状态
root 99148 97461 0 07:21 pts/8 00:00:00 /opt/vpn/Clash/clash -f /opt/vpn/Clash/config.yaml -d /opt/vpn/Clash/
root 99170 97461 0 07:21 pts/8 00:00:00 grep --color=auto clash
完成了,我们测试一下 Google :
[root@dev workspces]# nmap -p google.com
Starting Nmap 7.80 ( https://nmap.org ) at 2023-02-01 07:25 UTC
Found no matches for the service mask 'google.com' and your specified protocols
QUITTING!
[root@dev workspces]# nmap -p 7890 google.com
Starting Nmap 7.80 ( https://nmap.org ) at 2023-02-01 07:25 UTC
Nmap scan report for google.com (142.251.42.238)
Host is up (0.00061s latency).
rDNS record for 142.251.42.238: tsa01s11-in-f14.1e100.net
PORT STATE SERVICE
7890/tcp filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 0.43 seconds
订阅方式很简单,不描述~
安装包: https://github.com/ClashrAuto/Clashr-Auto-Desktop/releases
我是用的是国际版,适用于 Windows 和 Mac
Windows 用户下载 Clash.for.Windows.Setup.x.y.z.exe
即可(其中 x.y.z 是版本号)。
安装包:https://github.com/Fndroid/clash_for_windows_pkg/releases/tag/0.20.17
版本说明:
文件名 | 说明 |
---|---|
Clash.for.Windows-0.20.6-arm64-linux.tar.gz | Linux ARM 64位 版本 压缩包 |
Clash.for.Windows-0.20.6-arm64-mac.7z | Mac ARM 64位 版本 压缩包 |
Clash.for.Windows-0.20.6-arm64-win.7z | Windows ARM 64位 版本 压缩包 |
Clash.for.Windows-0.20.6-arm64.dmg | Mac ARM 64位 版本 |
Clash.for.Windows-0.20.6-ia32-win.7z | Windows 32位 版本 压缩包 |
Clash.for.Windows-0.20.6-mac.7z | Mac 64位 版本 压缩包 |
Clash.for.Windows-0.20.6-win.7z | Windows 64位 版本 压缩包 |
Clash.for.Windows-0.20.6-x64-linux.tar.gz | Linux 64位 版本 压缩包 |
Clash.for.Windows-0.20.6.dmg | Mac 64位 版本 |
Clash.for.Windows.Setup.0.20.6.arm64.exe | Windows ARM 64位 版本 |
Clash.for.Windows.Setup.0.20.6.exe | Windows 64位 版本 |
Clash.for.Windows.Setup.0.20.6.ia32.exe | Windows 32位 版本 |
sha256sum | 检测文件完整性的命令 |
Source code (zip) | 源文件压缩包 zip 版本 |
Source code (tar.gz) | 源文件压缩包 tar.gz 版本 |
使用很简单,直接演示(中文版):
这个版本的功能比较少,不过适合不折腾的 同学 使用~
演示:可以开系统代理
📜 对上面的解释:
当然,网上也有汉化的方法:
- 进入安装目录,然后双击进入
resources
文件夹,找到app.asar
这个文件。- 用汉化补丁下载页里的 app.asar 文件替换即可,替换完成之后运行软件就可以看到汉化效果了,注意下载汉化补丁的时候要和安装的版本号一致。
英文版看着没啥影响,所以我没有替换。
可以看出功能要多很多~
-
General(常规)
:-
Port
、Socks Port
;分别为 HTTP、SOCKS 代理端口,点击终端图案可以打开一个配置了代理的命令行窗口,点击端口数字可以复制该命令;HTTP、SOCKS 在同一个端口服务器上。
mixed = HTTP + SOCKS
-
Allow LAN
:启用局域网共享代理功能; -
Log Level
:日志等级; -
Home Directory
:点击下方路径直达C:\Users\用户名\.config\clash
文件夹; -
GeoIP Database
:点击下方日期可更新 GeoIP 数据库; -
UWP Loopback
:可以用来使 UWP 应用解除回环代理限制; -
Tap Device
:安装 cfw-tap 网卡,可用于处理不遵循系统代理的软件(实际启动 tap 模式需要更改配置文件); -
Service Mode
: 开启网关,命令行; 服务管理这可能需要一段时间。APP会自动重新启动。当前状态:未激活安装方法:schtasks(推荐) / winsw安装卸载 -
TUN Mode
: 用来使得 TUN 命令行等解除回环代理限制 -
General YML
:编辑config.yml
文件,可用于配置部分 General 页面内容; -
Dark Theme
:控制暗色模式; -
System Proxy
:启用系统代理;开启状态下按钮状态为绿色; -
Start with Windows
:设置开机自启;开启状态下按钮状态为绿色;
-
-
Proxies(代理)
:选择代理方式(Global – 全局、Rule – 规则、Direct – 直连)及策略组节点选择; -
Profiles(配置管理)
:- 用来下载远端配置文件和创建本地副本,且可在多个配置文件间切换;
- 对配置进行节点、策略组和规则的管理(添加节点、策略组和规则在各自编辑界面选择
Add
, 调整策略组顺序、节点顺序及策略组节点使用拖拽的方式); - 点击界面左侧菜单
Profiles
,点击Update All
即可更新所有配置文件;
-
Logs(日志)
:显示当前请求命中规则类型和策略; -
Connections (连接)
: 显示当前的 TCP 连接,可对某个具体连接执行关闭操作; -
Settings(设置)
:软件详细设置; -
Feedback(反馈)
:显示软件、作者相关信息。
Clash for Windows 中提供了一个新的 TAP 模式。对于不遵循系统代理的软件,TAP 模式可以接管其流量并交由 CFW 处理。
点击 General
页面下的 TAP Device
以安装 TAP 网卡,此网卡将用于接管系统流量,安装完成可在系统网络连接中看到一张新的虚拟网卡 cfw-tap
。
在配置文件中,添加以下字段 (包含 fake-ip):
dns:
enable: true
enhanced-mode: fake-ip # 或 redir-host
listen: 127.0.0.1:53
nameserver:
- 223.5.5.5
experimental:
interface-name: WLAN # WLAN 为物理网卡名
此版本可以使用 interface-name 属性避免回环,所以可以不使用 fake-ip 模式,并且支持了 UDP 及 IP 类请求
补充Allow LAN
:启用局域网共享代理功能;
Clash
Address:
198.18.0.1
Netmask:
255.255.0.0 (16)
MAC:
00:00:00:00:00:00
VMware Network Adapter VMnet1
Address:
169.254.219.50
Netmask:
255.255.0.0 (16)
MAC:
00:50:56:c0:00:01
VMware Network Adapter VMnet8
Address:
192.168.232.1
Netmask:
255.255.255.0 (24)
MAC:
00:50:56:c0:00:08
WLAN
Address:
10.100.19.52
Netmask:
255.255.192.0 (18)
MAC:
94:e7:0b:b0:3f:b0
Loopback Pseudo-Interface 1
Address:
127.0.0.1
Netmask:
255.0.0.0 (8)
MAC:
00:00:00:00:00:00
我们会发现 IP 地址,我们可以打开手机 在代理设置选择手动,输入 IP 地址和端口地址:
198.18.0.1
7890
补充UWP Loopback
:可以用来使 UWP 应用解除回环代理限制;
我们打开后,会发现 UWP 模式,因为我们即使开了 全局(Global)模式也是有一些不能使用的,那么我们可以将需要的打勾✔就好了。
我们可以通过谷歌浏览器插件 Proxy SwitchyOmega 来轻松快捷地管理和切换多个代理设置。
- 我们可以添加一个情景模式
name = clash
(名称随意) - 代理协议使用
SOCKS 5
- 代理服务器
127.0.0.1
- 代理端口使用的端口
7890
- 点击 应用选项 即可
「Proxies」选项卡,上方「Global」「Rule」「Direct」为运行模式,下方即是所有可用节点以供选择。
Global
- 全局连接 - 所有请求通过节点代理Rule
- 规则判断 - 根据配置规则进行自动分流,按照规则列表设置运行Direct
- 直接连接 - 所有请求都不通过节点代理,直接从本地发起请求(不走代理)Script
高阶操作
我使用的是付费节点,是永久版的,所以给与一些参考为止:
由于软件支持Shadowsocks、ShadowsocksR、Socks、Snell、V2Ray、Trojan等代理协议,如需免费节点可以使用搜索引擎搜索。
免费节点资源少或者觉得免费节点不稳定的话可以考虑购买收费节点。推荐搬瓦工官方机场 Just My Socks,支持 Shadowsocks 及 V2Ray 协议,并且有多个数据中心及套餐可选。
如果对稳定性要求高且有一定的技术基础,推荐自己搭建节点,速度有保证且安全性也最高,具体搭建教程可参考下面的链接。
- Shadowsocks 搭建 (SS)
- ShadowsocksR 搭建 (SSR)
- V2Ray 搭建 (VMess)
- Trojan 搭建
Clash 使用YAML,YAML Ain't Markup Language,作为配置文件。YAML 被设计为易于计算机阅读、编写和解释,通常用于精确的配置文件。在本章中,我们将介绍 Clash 的常见功能以及如何使用和配置它们。
Clash的工作原理是在本端开启HTTP、SOCKS5或透明代理服务器。当请求或数据包传入时,Clash使用 VMess、Shadowsocks、Snell、Trojan、SOCKS5 或 HTTP 协议将数据包路由到不同的远程服务器(“节点”)。
# Port of HTTP(S) proxy server on the local end
port: 7890
# Port of SOCKS5 proxy server on the local end
socks-port: 7891
# Transparent proxy server port for Linux and macOS (Redirect TCP and TProxy UDP)
# redir-port: 7892
# Transparent proxy server port for Linux (TProxy TCP and TProxy UDP)
# tproxy-port: 7893
# HTTP(S) and SOCKS4(A)/SOCKS5 server on the same port
# mixed-port: 7890
# authentication of local SOCKS5/HTTP(S) server
# authentication:
# - "user1:pass1"
# - "user2:pass2"
# Set to true to allow connections to the local-end server from
# other LAN IP addresses
allow-lan: false
# This is only applicable when `allow-lan` is `true`
# '*': bind all IP addresses
# 192.168.122.11: bind a single IPv4 address
# "[aaaa::a8aa:ff:fe09:57d8]": bind a single IPv6 address
bind-address: '*'
# Clash router working mode
# rule: rule-based packet routing
# global: all packets will be forwarded to a single endpoint
# direct: directly forward the packets to the Internet
mode: rule
# Clash by default prints logs to STDOUT
# info / warning / error / debug / silent
log-level: info
# When set to false, resolver won't translate hostnames to IPv6 addresses
ipv6: false
# RESTful web API listening address
external-controller: 127.0.0.1:9090
# A relative path to the configuration directory or an absolute path to a
# directory in which you put some static web resource. Clash core will then
# serve it at `http://{{external-controller}}/ui`.
external-ui: folder
# Secret for the RESTful API (optional)
# Authenticate by spedifying HTTP header `Authorization: Bearer ${secret}`
# ALWAYS set a secret if RESTful API is listening on 0.0.0.0
# secret: ""
# Outbound interface name
interface-name: en0
# fwmark on Linux only
routing-mark: 6666
# Static hosts for DNS server and connection establishment (like /etc/hosts)
#
# Wildcard hostnames are supported (e.g. *.clash.dev, *.foo.*.example.com)
# Non-wildcard domain names have a higher priority than wildcard domain names
# e.g. foo.example.com > *.example.com > .example.com
# P.S. +.foo.com equals to .foo.com and foo.com
hosts:
# '*.clash.dev': 127.0.0.1
# '.dev': 127.0.0.1
# 'alpha.clash.dev': '::1'
profile:
# Store the `select` results in $HOME/.config/clash/.cache
# set false If you don't want this behavior
# when two different configurations have groups with the same name, the selected values are shared
store-selected: false
# persistence fakeip
store-fake-ip: true
# DNS server settings
# This section is optional. When not present, the DNS server will be disabled.
dns:
enable: false
listen: 0.0.0.0:53
# ipv6: false # when the false, response to AAAA questions will be empty
# These nameservers are used to resolve the DNS nameserver hostnames below.
# Specify IP addresses only
default-nameserver:
- 114.114.114.114
- 8.8.8.8
enhanced-mode: fake-ip # or redir-host (not recommended)
fake-ip-range: 198.18.0.1/16 # Fake IP addresses pool CIDR
# use-hosts: true # lookup hosts and return IP record
# Hostnames in this list will not be resolved with fake IPs
# i.e. questions to these domain names will always be answered with their
# real IP addresses
# fake-ip-filter:
# - '*.lan'
# - localhost.ptlogin2.qq.com
# Supports UDP, TCP, DoT, DoH. You can specify the port to connect to.
# All DNS questions are sent directly to the nameserver, without proxies
# involved. Clash answers the DNS question with the first result gathered.
nameserver:
- 114.114.114.114 # default value
- 8.8.8.8 # default value
- tls://dns.rubyfish.cn:853 # DNS over TLS
- https://1.1.1.1/dns-query # DNS over HTTPS
- dhcp://en0 # dns from dhcp
# - '8.8.8.8#en0'
# When `fallback` is present, the DNS server will send concurrent requests
# to the servers in this section along with servers in `nameservers`.
# The answers from fallback servers are used when the GEOIP country
# is not `CN`.
# fallback:
# - tcp://1.1.1.1
# - 'tcp://1.1.1.1#en0'
# If IP addresses resolved with servers in `nameservers` are in the specified
# subnets below, they are considered invalid and results from `fallback`
# servers are used instead.
#
# IP address resolved with servers in `nameserver` is used when
# `fallback-filter.geoip` is true and when GEOIP of the IP address is `CN`.
#
# If `fallback-filter.geoip` is false, results from `nameserver` nameservers
# are always used if not match `fallback-filter.ipcidr`.
#
# This is a countermeasure against DNS pollution attacks.
# fallback-filter:
# geoip: true
# geoip-code: CN
# ipcidr:
# - 240.0.0.0/4
# domain:
# - '+.google.com'
# - '+.facebook.com'
# - '+.youtube.com'
# Lookup domains via specific nameservers
# nameserver-policy:
# 'www.baidu.com': '114.114.114.114'
# '+.internal.crop.com': '10.0.0.1'
proxies:
# Shadowsocks
# The supported ciphers (encryption methods):
# aes-128-gcm aes-192-gcm aes-256-gcm
# aes-128-cfb aes-192-cfb aes-256-cfb
# aes-128-ctr aes-192-ctr aes-256-ctr
# rc4-md5 chacha20-ietf xchacha20
# chacha20-ietf-poly1305 xchacha20-ietf-poly1305
- name: "ss1"
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: "password"
# udp: true
- name: "ss2"
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: "password"
plugin: obfs
plugin-opts:
mode: tls # or http
# host: bing.com
- name: "ss3"
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: "password"
plugin: v2ray-plugin
plugin-opts:
mode: websocket # no QUIC now
# tls: true # wss
# skip-cert-verify: true
# host: bing.com
# path: "/"
# mux: true
# headers:
# custom: value
# vmess
# cipher support auto/aes-128-gcm/chacha20-poly1305/none
- name: "vmess"
type: vmess
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
# udp: true
# tls: true
# skip-cert-verify: true
# servername: example.com # priority over wss host
# network: ws
# ws-opts:
# path: /path
# headers:
# Host: v2ray.com
# max-early-data: 2048
# early-data-header-name: Sec-WebSocket-Protocol
- name: "vmess-h2"
type: vmess
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
network: h2
tls: true
h2-opts:
host:
- http.example.com
- http-alt.example.com
path: /
- name: "vmess-http"
type: vmess
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
# udp: true
# network: http
# http-opts:
# # method: "GET"
# # path:
# # - '/'
# # - '/video'
# # headers:
# # Connection:
# # - keep-alive
- name: vmess-grpc
server: server
port: 443
type: vmess
uuid: uuid
alterId: 32
cipher: auto
network: grpc
tls: true
servername: example.com
# skip-cert-verify: true
grpc-opts:
grpc-service-name: "example"
# socks5
- name: "socks"
type: socks5
server: server
port: 443
# username: username
# password: password
# tls: true
# skip-cert-verify: true
# udp: true
# http
- name: "http"
type: http
server: server
port: 443
# username: username
# password: password
# tls: true # https
# skip-cert-verify: true
# sni: custom.com
# Snell
# Beware that there's currently no UDP support yet
- name: "snell"
type: snell
server: server
port: 44046
psk: yourpsk
# version: 2
# obfs-opts:
# mode: http # or tls
# host: bing.com
# Trojan
- name: "trojan"
type: trojan
server: server
port: 443
password: yourpsk
# udp: true
# sni: example.com # aka server name
# alpn:
# - h2
# - http/1.1
# skip-cert-verify: true
- name: trojan-grpc
server: server
port: 443
type: trojan
password: "example"
network: grpc
sni: example.com
# skip-cert-verify: true
udp: true
grpc-opts:
grpc-service-name: "example"
- name: trojan-ws
server: server
port: 443
type: trojan
password: "example"
network: ws
sni: example.com
# skip-cert-verify: true
udp: true
# ws-opts:
# path: /path
# headers:
# Host: example.com
# ShadowsocksR
# The supported ciphers (encryption methods): all stream ciphers in ss
# The supported obfses:
# plain http_simple http_post
# random_head tls1.2_ticket_auth tls1.2_ticket_fastauth
# The supported supported protocols:
# origin auth_sha1_v4 auth_aes128_md5
# auth_aes128_sha1 auth_chain_a auth_chain_b
- name: "ssr"
type: ssr
server: server
port: 443
cipher: chacha20-ietf
password: "password"
obfs: tls1.2_ticket_auth
protocol: auth_sha1_v4
# obfs-param: domain.tld
# protocol-param: "#"
# udp: true
proxy-groups:
# relay chains the proxies. proxies shall not contain a relay. No UDP support.
# Traffic: clash <-> http <-> vmess <-> ss1 <-> ss2 <-> Internet
- name: "relay"
type: relay
proxies:
- http
- vmess
- ss1
- ss2
# url-test select which proxy will be used by benchmarking speed to a URL.
- name: "auto"
type: url-test
proxies:
- ss1
- ss2
- vmess1
# tolerance: 150
# lazy: true
url: 'http://www.gstatic.com/generate_204'
interval: 300
# fallback selects an available policy by priority. The availability is tested by accessing an URL, just like an auto url-test group.
- name: "fallback-auto"
type: fallback
proxies:
- ss1
- ss2
- vmess1
url: 'http://www.gstatic.com/generate_204'
interval: 300
# load-balance: The request of the same eTLD+1 will be dial to the same proxy.
- name: "load-balance"
type: load-balance
proxies:
- ss1
- ss2
- vmess1
url: 'http://www.gstatic.com/generate_204'
interval: 300
# strategy: consistent-hashing # or round-robin
# select is used for selecting proxy or proxy group
# you can use RESTful API to switch proxy is recommended for use in GUI.
- name: Proxy
type: select
# disable-udp: true
proxies:
- ss1
- ss2
- vmess1
- auto
# direct to another infacename or fwmark, also supported on proxy
- name: en1
type: select
interface-name: en1
routing-mark: 6667
proxies:
- DIRECT
- name: UseProvider
type: select
use:
- provider1
proxies:
- Proxy
- DIRECT
proxy-providers:
provider1:
type: http
url: "url"
interval: 3600
path: ./provider1.yaml
health-check:
enable: true
interval: 600
# lazy: true
url: http://www.gstatic.com/generate_204
test:
type: file
path: /test.yaml
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
tunnels:
# one line config
- tcp/udp,127.0.0.1:6553,114.114.114.114:53,proxy
- tcp,127.0.0.1:6666,rds.mysql.com:3306,vpn
# full yaml config
- network: [tcp, udp]
address: 127.0.0.1:7777
target: target.com
proxy: proxy
rules:
- DOMAIN-SUFFIX,google.com,auto
- DOMAIN-KEYWORD,google,auto
- DOMAIN,google.com,auto
- DOMAIN-SUFFIX,ad.com,REJECT
- SRC-IP-CIDR,192.168.1.201/32,DIRECT
# optional param "no-resolve" for IP rules (GEOIP, IP-CIDR, IP-CIDR6)
- IP-CIDR,127.0.0.0/8,DIRECT
- GEOIP,CN,DIRECT
- DST-PORT,80,DIRECT
- SRC-PORT,7777,DIRECT
- RULE-SET,apple,REJECT # Premium only
- MATCH,auto
如果没有另外指定,Clash 默认读取位于$HOME/.config/clash/config.yaml
. 如果不存在,Clash 将生成默认设置。
您可以使用命令行选项-d
指定配置目录:
$ clash -d . # current directory
$ clash -d /etc/clash
您可以使用命令行选项-f
来指定配置:
$ clash -f ./config.yaml # current directory
$ clash -f /etc/clash/config.yaml
- 关于 ClashDotNetFramework :https://merlinblog.xyz/wiki/ClashDotNetFramework.html
- 关于 ClashA (安卓):https://merlinblog.xyz/wiki/clasha.html
- 关于 Clash for Android :https://merlinblog.xyz/wiki/cfa.html
- 关于 ClashX (Mac) :https://merlinblog.xyz/wiki/ClashX.html
- 关于 Clash for Windows for Mac :https://merlinblog.xyz/wiki/clash-for-windows-for-mac.html
- 关于 ClashWeb・一款轻量化的 Clash for Windows :https://merlinblog.xyz/wiki/clashweb.html
Clash for Android 终于更新了支持 SSR 的新内核!! 至此三大平台的 Clash 客户端都支持了 SSR,可喜可贺 🎉🎉🎉 由于各种原因,需要使用以下客户端才能正常使用:
- Clash for Android (https://github.com/Kr328/ClashForAndroid/releases) v2.1.1 或更高
- Clash for Windows (https://github.com/Fndroid/clash_for_windows_pkg/releases) v0.11.2 或更高
- ClashX (https://github.com/yichengchen/clashX/releases) 1.30.1 或更高
- Clash Core (https://github.com/Dreamacro/clash/releases) v1.1.0 或更高
- https://github.com/Dreamacro/clash/wiki/configuration
- https://lancellc.gitbook.io/clash/clash-config-file/syntax
- https://nekocat.top/clash/
- https://github.com/Dreamacro/clash/wiki
- https://zhuanlan.zhihu.com/p/598337110
- https://kotnt.com/tutorial
贡献: