clash
约 5 分钟阅读
Dreamacro/clashGitHubDreamacro/clashDreamacro/clash · GPLv3, Golang · rule-based tunnel · 于 2023-11-02 删库, Clash.Meta 只是 Archive · https://github.com/net4people/bbs/issues/303笔记:clash- GPLv3, Golang
- rule-based tunnel
- 于 2023-11-02 删库, Clash.Meta笔记mihomoMetaCubeX/mihomo · GPLv3 · fork 自 clash · Clash.Meta -> mihomo · 参考 · MetaCubeX/metacubexd · 前端 · | flag | env | for | · | | CLASHCONFIGSTRING | base64-encoded 配置内容 |打开:/notes/service/network/proxy/mihomo 只是 Archive
- net4people/bbs#303GitHub Issuenet4people/bbs#303
- 参考
- juewuy/ShellClashGitHubjuewuy/ShellClashDreamacro/clash · GPLv3, Golang · rule-based tunnel · 于 2023-11-02 删库, Clash.Meta 只是 Archive · https://github.com/net4people/bbs/issues/303笔记:clash
- clash.gitbook.io/doc
- vernesong/OpenClashGitHubvernesong/OpenClashDreamacro/clash · GPLv3, Golang · rule-based tunnel · 于 2023-11-02 删库, Clash.Meta 只是 Archive · https://github.com/net4people/bbs/issues/303笔记:clash
- LoyalsoldierGitHub 组织Loyalsoldier
- eycorsican/leafGitHubeycorsican/leaf
- eycorsican/go-tun2socksGitHubeycorsican/go-tun2socks
- EAimTY/tuicGitHubEAimTY/tuicEAimTY/tuic · GPLv3, Rust · Delicately-TUICed 0-RTT proxy protocol · https://github.com/EAimTY/tuic/issues/186笔记:tuic
- HyNetwork/hysteriaGitHubHyNetwork/hysteria
- Premium - 闭源
- 发布历史GitHubDreamacro/clash/releases/tag/premium
- Premium-Core-FeaturesGitHubDreamacro/clash/wiki/Premium-Core-Features
- tun,script,tracing
- rule-providers
- type: http,file - 指向 yaml
- yaml 包含
{payload:[]}
- ebpf - redirect-to-tun
- auto-redir - 配合 tun 替代 redir-port
# golang build from source
go install github.com/Dreamacro/clash@latest
# macOS
brew install clash
# Docker
# https://hub.docker.com/r/dreamacro/clash
# https://github.com/Dreamacro/clash/blob/master/Dockerfile
docker run --rm -it --name clash dreamacro/clash
# Linux
# ==========
curl -LO https://github.com/Dreamacro/clash/releases/download/v1.14.0/clash-linux-amd64-v3-v1.14.0.gz
gzip -d clash-linux-amd64-v3-v1.14.0.gz
chmod +x clash-linux-amd64-v3-v1.14.0
mv clash-linux-amd64-v3-v1.14.0 clash
cp clash /usr/local/bin/clash
mkdir -p /var/lib/clash/ /etc/clash/
# https://echo.wener.cc/github.com/Dreamacro/maxmind-geoip/releases/download/20230312/Country.mmdb
curl -o /var/lib/clash/Country.mmdb https://cdn.jsdelivr.net/gh/Dreamacro/maxmind-geoip@release/Country.mmdb
clash -t -d /var/lib/clash/ -f /etc/clash/config.yaml
# 同步本地到服务器
scp ~/.config/clash/config.yaml admin@server:/etc/clash/config.yaml
rsync -avP --exclude config.yaml ~/.config/clash/ admin@server:/var/lib/clash/Awesome
- Dreamacro/clashGitHubDreamacro/clashDreamacro/clash · GPLv3, Golang · rule-based tunnel · 于 2023-11-02 删库, Clash.Meta 只是 Archive · https://github.com/net4people/bbs/issues/303笔记:clash
- Client
- vernesong/OpenClashGitHubvernesong/OpenClashDreamacro/clash · GPLv3, Golang · rule-based tunnel · 于 2023-11-02 删库, Clash.Meta 只是 Archive · https://github.com/net4people/bbs/issues/303笔记:clash
- OpenWRT Client
- Fndroid/clash_for_windows_pkgGitHubFndroid/clash_for_windows_pkg
- ClashDotNetframeworkGitHubClashDotNetframework/ClashDotNetframework
- DotNet, Windows
- yichengchen/clashXGitHubyichengchen/clashX
- macOS
- WhoJave/clashXGitHub 文件WhoJave/clashX/tree/master
- Kr328/ClashForAndroidGitHubKr328/ClashForAndroid
- WhoJave/ClashAGitHubWhoJave/ClashA
- ccg2018/ClashAGitHubccg2018/ClashA
- iOS
- apps.apple.com/app/choc/id1582542227
- 收费,不一定可用
- apps.apple.com/app/choc/id1582542227
- SpongeNobody/ClashyGitHubSpongeNobody/Clashy
- vernesong/OpenClashGitHubvernesong/OpenClashDreamacro/clash · GPLv3, Golang · rule-based tunnel · 于 2023-11-02 删库, Clash.Meta 只是 Archive · https://github.com/net4people/bbs/issues/303笔记:clash
- 链接转换
- Dreamacro/clash-tracingGitHubDreamacro/clash-tracing
- Dashboard
- haishanh/yacdGitHubhaishanh/yacd
- MIT, Typescript
- yacd.haishan.me
- Dreamacro/clash-dashboardGitHubDreamacro/clash-dashboard
- MIT, Typescript
- clash.razord.top
- Docker 内置
- haishanh/yacdGitHubhaishanh/yacd
# Dreamacro/clash-dashboard
curl -LO https://github.com/Dreamacro/clash-dashboard/archive/gh-pages.zip
unzip gh-pages.zip
mv clash-dashboard-gh-pages/ ~/.config/clash/
# haishanh/yacd
curl -LO https://github.com/haishanh/yacd/archive/gh-pages.zip
unzip gh-pages.zip
mv yacd-gh-pages/ ~/.config/clash/external-controller: 0.0.0.0:9090
secret: external-controller-secret
# 默认目录 ~/.config/clash
# http://{{external-controller}}/ui
# yacd-gh-pages
external-ui: clash-dashboard-gh-pagesAPI
# reload 重载配置
curl -X PUT 127.0.0.1:9090/configs --json "{}"
# 配置 Secret 后
curl -X PUT -H "Authorization: Bearer secret" 127.0.0.1:9090/configs --json "{}"- Dreamacro/clash/wiki/external-controller-API-referenceGitHubDreamacro/clash/wiki/external-controller-API-reference
TProxy
sysctl -w net.ipv4.ip_forward=1
# 新的路由表
ip rule add fwmark 666 lookup 666
ip route add local 0.0.0.0/0 dev lo table 666
# clash
# ==================
# clash 链负责处理转发流量
iptables -t mangle -N clash
# DIRECT Private
iptables -t mangle -A clash -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A clash -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A clash -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A clash -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A clash -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A clash -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A clash -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A clash -d 240.0.0.0/4 -j RETURN
# Proxy
iptables -t mangle -A clash -p tcp -j TPROXY --on-port 7893 --tproxy-mark 666
iptables -t mangle -A clash -p udp -j TPROXY --on-port 7893 --tproxy-mark 666
# 转发所有 DNS 查询到 1053 端口
# 此操作会导致所有 DNS 请求全部返回虚假 IP(fake ip 198.18.0.1/16)
iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to 1053
# 如果想要 dig 等命令可用, 可以只处理 DNS SERVER 设置为当前内网的 DNS 请求
#iptables -t nat -I PREROUTING -p udp --dport 53 -d 192.168.0.0/16 -j REDIRECT --to 1053
# 最后让所有流量通过 clash 链进行处理
iptables -t mangle -A PREROUTING -j clash
# clash_local
# ==================
# clash_local 链负责处理网关本身发出的流量
iptables -t mangle -N clash_local
# nerdctl 容器流量重新路由
#iptables -t mangle -A clash_local -i nerdctl2 -p udp -j MARK --set-mark 666
#iptables -t mangle -A clash_local -i nerdctl2 -p tcp -j MARK --set-mark 666
# 跳过内网流量
iptables -t mangle -A clash_local -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A clash_local -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A clash_local -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A clash_local -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A clash_local -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A clash_local -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A clash_local -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A clash_local -d 240.0.0.0/4 -j RETURN
# 为本机发出的流量打 mark
iptables -t mangle -A clash_local -p tcp -j MARK --set-mark 666
iptables -t mangle -A clash_local -p udp -j MARK --set-mark 666
# 跳过 clash 程序本身发出的流量, 防止死循环(clash 程序需要使用 "clash" 用户启动)
iptables -t mangle -A OUTPUT -p tcp -m owner --uid-owner clash -j RETURN
iptables -t mangle -A OUTPUT -p udp -m owner --uid-owner clash -j RETURN
# 让本机发出的流量跳转到 clash_local
# clash_local 链会为本机流量打 mark, 打过 mark 的流量会重新回到 PREROUTING 上
iptables -t mangle -A OUTPUT -j clash_local
# 修复 ICMP(ping)
# 这并不能保证 ping 结果有效(clash 等不支持转发 ICMP), 只是让它有返回结果而已
# --to-destination 设置为一个可达的地址即可
sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -A PREROUTING -p icmp -d 198.18.0.0/16 -j DNAT --to-destination 127.0.0.1- 参考配置
openrc
nano /etc/init.d/clash
chmod +x /etc/init.d/clash
service clash checkconfig#!/sbin/openrc-run
supervisor=supervise-daemon
name="Clash"
description="A rule-based tunnel in Go."
description_reload="Reload configuration without exiting"
clash_config="${clash_config:-/etc/clash/config.yaml}"
command=/usr/local/bin/clash
command_args="-d /var/lib/clash/ -f ${clash_config}"
extra_commands="checkconfig"
extra_started_commands="reload"
clash_log="${clash_log:-/var/log/${RC_SVCNAME}.log}"
output_log="${clash_log}"
error_log="${clash_log}"
depend() {
use logger dns
need net
}
checkconfig() {
ebegin "Checking ${clash_config}"
if [ ! -f "${clash_config}" ]; then
eerror "No clash config.yaml"
return 1
fi
${command} -d /var/lib/clash/ -f ${clash_config} -t
return 0
}
reload() {
ebegin "Reloading configuration"
curl -X PUT -H "Authorization: Bearer $(yq .secret $clash_config)" -sf $(yq .external-controller $clash_config)/configs --json "{}"
eend $?
}Premium
curl -OL https://release.dreamacro.workers.dev/latest/clash-linux-amd64-latest.gz
gzip -d clash-linux-amd64-latest.gz
mv clash-linux-amd64-latest clash
chmod +x clash# 出口
interface-name: eth0
tun:
enable: true
stack: system # gvisor
# dns-hijack:
# - 8.8.8.8:53
# - tcp://8.8.8.8:53
# - any:53
# - tcp://any:53
auto-route: true # 设置全局代理
# auto-detect-interface: true # 自动检测 interface-name- Dreamacro/clash/wiki/Clash-Premium-FeaturesGitHubDreamacro/clash/wiki/Clash-Premium-Features
- Dreamacro/clash/releases/tag/premiumGitHubDreamacro/clash/releases/tag/premium
- www.wintun.net
- wintun.dll
FAQ
Start TProxy server error: operation not permitted
sudo setcap cap_net_bind_service,cap_net_admin+ep $(which clash)关联信息
反向链接、本文链接的其他页面和外部资料。
反向链接
- mihomo笔记 · clash
MetaCubeX/mihomo · GPLv3 · fork 自 clash · Clash.Meta -> mihomo · 参考 · MetaCubeX/metacubexd · 前端 · | flag | env | for | · | | CLASHCONFIGSTRING | base64-encoded 配置内容 |
- Proxy Awesome笔记 · clash
Note · 建议基于 overlay 组件内部 proxy,更安全,更好跨网。 · 对外暴露甚至选择 · | protocol | transport | UDP | Note | · | socks4 | tcp | ❌ | · | socks5 | tcp | ✅ |
站内链接
- mihomo笔记 · Clash.Meta
MetaCubeX/mihomo · GPLv3 · fork 自 clash · Clash.Meta -> mihomo · 参考 · MetaCubeX/metacubexd · 前端 · | flag | env | for | · | | CLASHCONFIGSTRING | base64-encoded 配置内容 |
参考资料
GitHub26 条
- Dreamacro/clashgithub.com/Dreamacro/clash
- Dreamacro/clash/releases/tag/premiumgithub.com/Dreamacro/clash/releases/tag/premium
- vernesong/OpenClashgithub.com/vernesong/OpenClash
- ccg2018/ClashAgithub.com/ccg2018/ClashA
- ClashDotNetframework/ClashDotNetframeworkgithub.com/ClashDotNetframework/ClashDotNetframework
- Dreamacro/clash-dashboardgithub.com/Dreamacro/clash-dashboard
- Dreamacro/clash-tracinggithub.com/Dreamacro/clash-tracing
- Dreamacro/clash/wiki/Clash-Premium-Featuresgithub.com/Dreamacro/clash/wiki/Clash-Premium-Features
- Dreamacro/clash/wiki/external-controller-API-referencegithub.com/Dreamacro/clash/wiki/external-controller-API-reference
- Dreamacro/clash/wiki/Premium-Core-Featuresgithub.com/Dreamacro/clash/wiki/Premium-Core-Features
- EAimTY/tuicgithub.com/EAimTY/tuic
- eycorsican/go-tun2socksgithub.com/eycorsican/go-tun2socks
- eycorsican/leafgithub.com/eycorsican/leaf
- Fndroid/clash_for_windows_pkggithub.com/Fndroid/clash_for_windows_pkg
- haishanh/yacdgithub.com/haishanh/yacd
- HyNetwork/hysteriagithub.com/HyNetwork/hysteria
- juewuy/ShellClashgithub.com/juewuy/ShellClash
- Kr328/ClashForAndroidgithub.com/Kr328/ClashForAndroid
- Loyalsoldiergithub.com/Loyalsoldier
- Loyalsoldier/geoipgithub.com/Loyalsoldier/geoip
- net4people/bbs#303github.com/net4people/bbs/issues/303
- SpongeNobody/Clashygithub.com/SpongeNobody/Clashy
- springzfx/cgproxy/readme.md#known-issuesgithub.com/springzfx/cgproxy/blob/aaa628a76b2911018fc93b2e3276c177e85e0861/readme.md
- WhoJave/ClashAgithub.com/WhoJave/ClashA
- WhoJave/clashX/tree/mastergithub.com/WhoJave/clashX/tree/master
- yichengchen/clashXgithub.com/yichengchen/clashX
其他外链7 条
- apps.apple.com/app/choc/id1582542227apps.apple.com/app/choc/id1582542227
- clash.gitbook.io/docclash.gitbook.io/doc
- clash.razord.topclash.razord.top/
- gist.github.com/phlinhng/38a141862de775b10c613f7f2c6ade99gist.github.com/phlinhng/38a141862de775b10c613f7f2c6ade99
- sites.google.com/view/honven/首页/机场链接转换sites.google.com/view/honven/%E9%A6%96%E9%A1%B5/%E6%9C%BA%E5%9C%BA%E9%93%BE%E6%8E%A5%E8%BD%AC%E6%8D%A2
- www.wintun.netwww.wintun.net/
- yacd.haishan.meyacd.haishan.me/