Github 链接: https://github.com/bjzhou/clash_meta_gateway
以下所有功能都由 Clash Meta 内核实现:
实际上 docker 里只做了一件事,就是启动 clash meta
这里贴几段我觉得有意思的配置
rules:
- GEOIP,private,DIRECT
- GEOSITE,private,DIRECT
- GEOSITE,apple,DIRECT
- GEOSITE,microsoft@cn,DIRECT
- GEOSITE,category-games@cn,DIRECT
- GEOSITE,CN,DIRECT
- GEOIP,CN,DIRECT
这里创建了一个 direct.yaml 文件
然后在主配置文件里引入
rule-providers:
direct:
type: file
behavior: classical
path: "./direct.yaml"
配置 DNS ,默认走海外 DNS ,匹配 direct 规则的走国内 DNS
dns:
enable: true
listen: 0.0.0.0:53
ipv6: false
enhanced-mode: redir-host
prefer-h3: true
nameserver:
- https://dns.cloudflare.com/dns-query
- tls://8.8.8.8:853
- tls://1.1.1.1:853
nameserver-policy:
"rule-set:direct":
- https://dns.alidns.com/dns-query
- 119.29.29.29
- 223.5.5.5
default-nameserver:
- 223.5.5.5
主配置文件规则匹配
rules:
- RULE-SET,direct,DIRECT
- GEOSITE,netflix,NETFLIX
- GEOSITE,openai,AI 服务
- GEOSITE,anthropic,AI 服务
- NOT,((DST-PORT,80/8080/443/8443)),非常用端口
- MATCH,默认
这样做保证了 DNS 分流和规则分流的统一
另外这配置里有个非常用端口,部分机场或者中转流量会导致非常用端口无法连接,可以在这里选择直连或自建机场
另外再分享一个给自己用的 VPS 一键部署脚本: https://github.com/bjzhou/xray-server-setup
脚本功能:
1
bao3 2023-08-23 12:16:06 +08:00
牛啊,实现了我一直想要的。
|
2
emtry 2023-08-23 13:01:26 +08:00
请问国内 dns 可以设置走自建 ADG 吗
|
3
bbbb 2023-08-23 13:20:40 +08:00 via iPhone
学习一下
|
4
customsshen 2023-08-23 13:28:32 +08:00
docker 启动后再关闭会导致宿主机无法上网,重启可解决
请问是重启宿主机还是 docker 镜像? |
5
bjzhou1990 OP @customsshen 重启宿主机
|
6
bjzhou1990 OP @emtry 可以在/data/config.yaml 里自己修改
|
7
emtry 2023-08-23 23:57:25 +08:00
bug1:网卡默认 eth0 ,不是自动匹配,其他网卡直接起不来
|
8
emtry 2023-08-23 23:58:30 +08:00
bug2:订阅地址出现&,替换错误,订阅不了
|
9
bjzhou1990 OP @emtry #8 好的
|
10
msn1983aa 2023-08-24 13:09:06 +08:00
还需要楼主打磨一下,bug 少一点了来试试,目前都是用虚拟机跑 openwrt
|
11
EvineDeng 2023-08-24 13:48:14 +08:00
你要不用 ADD ,这镜像压缩后体积还能再减小至少 18MiB 。
|
12
ylsf 2023-08-24 14:05:14 +08:00 via Android
mark ,有空试试
|
13
bjzhou1990 OP @emtry #8 两个问题都更新了,但是未做测试
|
14
bjzhou1990 OP @EvineDeng 用不用 ADD 文件都会拷到镜像里去的,我把 clash 二进制文件和其他需要的文件打成一个压缩包了,体积减少了一点
|
15
emtry 2023-08-24 23:06:35 +08:00
eth0 还是没自动换到 ens
|
16
mikewang 2023-08-25 00:28:58 +08:00
这种情况使用 Docker 可能会有一些问题:
比如 alpine 的 iptables 其实是 iptables-legacy ,如果主机系统使用的是 iptables-nft ( nftables ),docker 内的 iptables 会打乱主机的网络。 另外一个建议是 shell 脚本可以 trap 一下 SIGTERM ,这样 docker stop 的时候就可以自动执行清理工作。 |
17
Navee 2023-08-25 17:19:29 +08:00
宿主机网卡不需要开混杂模式吗
|
18
8675bc86 2023-08-25 19:46:25 +08:00
感觉简单的问题复杂化,clash 哪需要 docker 跑。
|
19
bjzhou1990 OP 更新改用 TUN 模式,DNS 默认开启 fake ip, 不再依赖 iptables, 顺便写了个不使用 docker 的一键部署脚本
|
20
BaseException 2023-09-12 14:49:56 +08:00
有技术有实践,感谢楼主的项目,回去试试看。我最近使用 OpenWRT 中的 Sha.dow.socksR Plus+ 总是遇到 ERR_NAME_NOT_RESOLVED 的问题,有一天晚上过后,第二天早上起来手机断开了 wifi 无法连上 wifi 。登录进路由器发现有网 但是是 ssr plus+导致的 wifi 无法连接,最终把这货关掉了……
OP 可以帮我分析一下吗 |
21
bjzhou1990 OP @BaseException DNS 解析有问题,试试改一下 ssrp 的 DNS 设置,或者用 chinadns, mosdns 之类的 dns 插件
|
22
BaseException 2023-09-12 16:34:12 +08:00
@bjzhou1990 #21 我有修改 dns 配置,几个内置的 dns 策略都切换过。另外只用了 dnsmasq ,没有使用 chinadns mosdns 的插件
|