Commit Graph

388 Commits

Author SHA1 Message Date
Skyxim
cfd03a99c2 feat: nameserver-policy support use rule-providers and reduce domain-set memory 2023-04-01 11:53:39 +08:00
Larvan2
2fef329319 fix: upgrade backup 2023-03-29 13:59:36 +00:00
wwqgtxx
2c7153cd7a chore: clean up code 2023-03-29 16:19:26 +08:00
Larvan2
d730feecb4 chore: use inner for upgrade core 2023-03-29 06:03:13 +00:00
Larvan2
545cbeeec0 chore: skip restart when update error 2023-03-27 00:49:47 +08:00
Larvan2
4d30788738 chore: clean up code 2023-03-25 22:56:24 +08:00
Larvan2
e4364cc985 chore: update for testing the updater 2023-03-23 21:04:04 +08:00
Larvan2
99ede63a9a feat: add upgrade api
example: curl -X POST -H "Authorization: Bearer 123456" http://ip:port/upgrade
2023-03-23 20:48:20 +08:00
wwqgtxx
998d407d44 Feat: support set tun file-descriptor in config file
Co-authored-by: DuFoxit <DuFoxit@users.noreply.github.com>
2023-03-15 23:43:58 +08:00
wwqgtxx
68d7a6da7f fix: ensure restart api return ok 2023-03-14 22:38:59 +08:00
Skyxim
09c53e7cb7 chore: Chore: adjust the loading order, and then load the resource at last 2023-03-14 22:37:07 +08:00
wwqgtxx
0f24c2f849 chore: add /restart to restful api 2023-03-14 22:19:12 +08:00
Skyxim
7f588935ea
feta: add hosts support domain and mulitple ip (#439)
* feat: host support domain and multiple ips

* chore: append local address via `clash`

* chore: update hosts demo

* chore: unified parse mixed string and array

* fix: flatten cname

* chore: adjust logic

* chore: reuse code

* chore: use cname in tunnel

* chore: try use domain mapping when normal dns

* chore: format code
2023-03-12 15:00:59 +08:00
Skyxim
07f3cd2ae5 chore: exposure ipv6 wait time 2023-03-10 23:38:16 +08:00
wwqgtxx
545a79d406 chore: cleanup dialer's code 2023-03-06 23:23:05 +08:00
Skyxim
97e14337e3 refactor: tcp dial (#412)
Non-concurrent support to try to connect in turn

fix: serial dual stack dial
2023-02-26 12:12:25 +08:00
Skyxim
f565edd76d chore: add custom ca trust 2023-02-25 22:01:20 +08:00
wwqgtxx
880664c6ab fix: tunnel's inboundTFO missing 2023-02-24 14:19:50 +08:00
Skyxim
a1d008e6f0 chore: add pprof api, when log-level is debug 2023-02-23 23:30:53 +08:00
Skyxim
b72bd5bb37 chore: adjust the configuration loading order 2023-02-23 14:13:27 +08:00
Skyxim
7fecd20a1d chore: adjust the configuration loading order 2023-02-22 23:45:18 +08:00
wwqgtxx
fc50392ec7 chore: cleanup natTable's api 2023-02-18 13:16:07 +08:00
yaling888
03520e0d6f Fix: dns api panic on disable dns section (#2498) 2023-01-28 00:55:30 +08:00
Dreamacro
a6a72a5b54 Feature: add dns query json api 2023-01-28 00:55:24 +08:00
Skyxim
df1f6e2b99 feat: better config for sniffer 2023-01-23 13:16:25 +08:00
Skyxim
d426db43ec chore: adjust log 2023-01-23 11:14:45 +08:00
Skyxim
3bace07948 fix: ipv6 logic 2023-01-21 22:31:07 +08:00
Larvan2
8a7027e8d6 Fix: Remove EnableProcess from config.go and enable-process from config.yaml.
Fix: FindProcess is now enabled by default when the rule set contains process-name rules.
2023-01-20 16:29:08 +08:00
Skyxim
b6b6413d04 refactor: replace experimental.fingerprints with custom-certificates and Change the fingerprint verification logic to SSL pinning 2023-01-14 21:08:06 +08:00
chain710
b4503908df fix #322: add option general.find-process-mode, user can turn off findProcess feature in router
findProcess slow down connection due to repeat call to FindProcessName in router environment
this option has 3 values: always, strict, off
- always, equal to enable-process: true. Just try to merge all process related option into one
- strict, as default value, behavior remains unchanged
- off, turn off findProcess, useful in router environment
2023-01-09 19:48:39 +08:00
wwqgtxx
cd99b2e795 fix: config code merge 2022-12-06 10:13:05 +08:00
wwqgtxx
b5b06ea49c fix: config crash 2022-12-06 09:04:30 +08:00
wwqgtxx
62226e8b3d chore: rebuild InboundListener 2022-12-04 21:53:13 +08:00
wwqgtxx
8144373725 chore: support skip the same config Listeners' Close and Listen 2022-12-04 17:20:24 +08:00
Skyxim
e9d8dd09ac fix: close linstener 2022-12-04 15:15:23 +08:00
wwqgtxx
6fc62da7ae chore: change C.PacketAdapter from a struct to an interface 2022-12-04 14:37:52 +08:00
Skyxim
4f75201a98 feat: add linsters 2022-12-04 13:37:14 +08:00
Skyxim
ba884c29bd refactor: adjust config 2022-12-03 14:14:15 +08:00
Skyxim
2fe271f19f feat: add tls port for RESTful api and external controller 2022-12-03 12:25:10 +08:00
wwqgtxx
b4b9ef2362 Merge branch 'dev' of https://github.com/Dreamacro/clash into Alpha 2022-11-28 20:04:56 +08:00
wwqgtxx
01e382285d chore: tuic-server support restful api patch 2022-11-28 18:53:09 +08:00
wwqgtxx
551283c16e chore: add tuic-server listener 2022-11-28 17:09:25 +08:00
Dreamacro
5b07d7b776 Feature: add tunnels 2022-11-20 21:30:55 +08:00
wwqgtxx
1880a485f8 chore: better tfo inbound code 2022-11-16 10:43:16 +08:00
wwqgtxx
dc3e144b6a Merge branch 'dev' of https://github.com/Dreamacro/clash into Alpha 2022-11-12 20:43:48 +08:00
wwqgtxx
3eacce9a66 chore: add vmess, shadowsocks, tcptun and udptun listener 2022-11-11 20:56:08 +08:00
wwqgtxx
90f6cc233c fix: correct yaml config name 2022-11-04 17:38:24 +08:00
wwqgtxx
e20d01a679 chore: try to let tun's restful patch api work 2022-11-04 08:52:30 +08:00
wwqgtxx
9a5c0a4b6d chore: better tun config passing 2022-11-03 18:56:03 +08:00
wwqgtxx
023e3d0c41 chore: add parse-pure-ip in sniffer 2022-10-14 08:42:28 +08:00
wwqgtxx
0da49bd92b chore: add force-dns-mapping in sniffer 2022-10-14 07:46:33 +08:00
metacubex
d3b88d1b4f fix: ebpf support 2022-08-22 23:17:41 +08:00
zhudan
97270dcbe0 rm EBpf tun && disable android ebpf 2022-08-08 10:21:16 +08:00
Dreamacro
50105f0559 Migration: go1.19 2022-08-07 21:45:50 +08:00
Skyxim
5391425123 Merge branch 'dev' into Alpha 2022-08-01 22:13:46 +08:00
Skyxim
1e7af0bbc7 fix: repeat set http status 2022-08-01 22:12:36 +08:00
zhudan
31f4d20477 support ebpf 2022-07-29 09:08:35 +08:00
MetaCubeX
dec32da262 clean code 2022-07-24 01:07:30 +08:00
Skyxim
38e6b81d07
Merge pull request #129 from zhudan/Alpha
入站增加TFO支持(默认不开启)
2022-07-22 06:32:34 -04:00
zhudan
143c5de51d inbound tfo 2022-07-22 15:16:09 +08:00
Skyxim
3e424dea7b refactor: DoH use fragment setting params 2022-07-21 21:40:28 +08:00
Skyxim
850c52d07c chore: log level should be setting after launched 2022-07-16 13:33:27 +08:00
Skyxim
ab8e9e7d7a fix: skip-cert-verify not work 2022-07-11 12:37:27 +08:00
Skyxim
fef9f95e65 feat: add fingerprint for tls verify 2022-07-10 20:44:24 +08:00
Skyxim
59ab2083aa feat: try h3 connect DOH, failed will fall back h2; turn on with dns.prefer-h3: true 2022-07-03 21:59:47 +08:00
Skyxim
10383e2701 Merge branch 'dev' into Alpha 2022-06-26 21:53:03 +08:00
Skyxim
2cdf4a0532 chore: RESTful test group use request context 2022-06-25 08:53:11 +08:00
mrFq1
637f1b5aed
ClashX hack. (#102) 2022-06-24 20:08:33 +08:00
Skyxim
21098d2627 feat: RESTful api add interface-name field on patch config 2022-06-18 17:29:19 +08:00
Skyxim
2e6bdc5636 feat: add param general.enable-process, it will always find process or uid, default value is false 2022-06-14 23:08:07 +08:00
Skyxim
be298cfa16 refactor: finding process and uid should to find with match process or uid rule, reduce memory allocation 2022-06-14 22:52:56 +08:00
Dreamacro
fbb27b84d1 Chore: add redir-host deprecated warnning 2022-06-14 11:26:04 +08:00
adlyq
4092a7c84b feat: proxies group URLTest api 2022-05-30 22:07:09 +08:00
adlyq
2ebc0383b5 feat: RESTful API support set tcp-concurrent 2022-05-26 19:49:12 +08:00
adlyq
7431001ed6 feat: RESTful API support update Geo file
and can set update url by user, eg.
geox-url:
  geoip: "http://xxxx/gepip.dat"
  mmdb: "http://xxxx/country.mmdb"
  geosite: "http://xxxx/geosite.dat"
2022-05-24 15:04:13 +08:00
adlyq
149b4b5b43 feat: RESTful API support disable sniffer 2022-05-24 13:44:52 +08:00
adlyq
c0eb9aac1c feat: fallback can be select by user 2022-05-24 10:17:44 +08:00
adlyq
3ab82849d4 feat: IN-TYPE rule support
eg. IN-TYPE,SOCKS/REDIR/INNER,Proxy
support list: HTTP HTTPS SOCKS SOCKS4 SOCKS5 REDIR TPROXY TUN INNER
2022-05-20 23:17:16 +08:00
adlyq
cc1c1340a3 feat: 安卓恢复进程规则,可通过enable-process开关,默认true 2022-05-19 20:44:09 +08:00
adlyq
c787bbe0e5 fix: 热重载Tun配置 2022-05-19 19:19:19 +08:00
adlyq
c4408612b3 chore: 暴露数据给前端 2022-05-17 16:47:21 +08:00
Skyxim
891c2fe899 fix: 当dns被禁用时,dns将根据general ipv6设置解析dns 2022-05-17 09:01:41 +08:00
CHIZI-0618
5bd5f1bfda chore: remove Script mode residual code. 2022-05-14 13:00:33 +08:00
Skyxim
463101aec1 fix: limit load provider concurrent size 2022-05-08 22:52:46 +08:00
Skyxim
55811dae32 fix: Adjust the timing of loading proxy selection 2022-05-08 07:58:26 +08:00
Skyxim
2fbbf7519f fix: provider auto update 2022-05-08 00:04:16 +08:00
Skyxim
b3295262c1 chore: Initialize provider ahead of time 2022-05-05 21:14:46 +08:00
MetaCubeX
5c6f2694c7 chore: sniffer param skip-sni renamed to ship-domain, old param will be removed in the release version 2022-05-03 23:10:59 +08:00
adlyq
eca7615f08 fix: patch update support tun 2022-05-03 19:31:00 +08:00
Skyxim
b401da5eba refactor: provider init order 2022-05-02 16:47:48 +08:00
Skyxim
b2605a9012 fix: tun dns 2022-05-02 14:21:37 +08:00
Skyxim
9d8cd036ff refactor: remove dns and tun relationship, the enabled of dns module should be decided by user 2022-05-01 09:41:27 +08:00
Skyxim
22c1e05e1c fix: rule provider http api crash 2022-04-28 09:44:29 +08:00
Skyxim
a38b2bcb6d Merge remote-tracking branch 'meta/Alpha' into Alpha 2022-04-28 08:56:00 +08:00
Skyxim
2e74986fe4 refactor: adjust provider loading order, remove meaningless pointers 2022-04-28 08:55:45 +08:00
Skyxim
96a32f5038 refactor: tcp concurrent 2022-04-27 21:37:20 +08:00
Dreamacro
aef4dd3fe7 Fix: make log api unblocked 2022-04-26 22:36:10 +08:00
yaling888
4fd7d0f707 Chore: use generics as possible 2022-04-25 13:18:30 +08:00
adlyq
ce663a7b96 fix: ipv6 enable logic 2022-04-23 14:21:58 +08:00
adlyq
bd3c493c9f fix: ipv6 enable logic 2022-04-23 02:03:10 +08:00
Skyxim
81b5543b0d feat: support tcp concurrent, Separate dialing and dns resolver ipv6
tcp-concurrent:true
2022-04-23 00:27:22 +08:00
Skyxim
bee1bddceb feat: add sniffer port whitelist, when empty will add all ports 2022-04-21 07:06:08 -07:00
yaling888
0ca10798ea Chore: fix typo 2022-04-19 22:38:20 +08:00
yaling888
3ea3653d7a Chore: persistence fakeip pool state 2022-04-19 22:37:47 +08:00
Skyxim
48a01adb7a refactor: sniffer param force and reverses deprecated, will be removed when release version, replace force-domain and skip-sni,
force-domain add '+' equivalent to force is true
sniffer:
  enable: true
  force-domain:
    - "google.com"
  skip-sni:
    - www.baidu.com
  sniffing:
    - tls
2022-04-17 20:02:13 +08:00
Skyxim
7c23fa2bd4 fix: sniffer npe 2022-04-16 08:45:18 +08:00
Skyxim
0658ecadd3 fix: adjust loading timing 2022-04-16 08:29:38 +08:00
Skyxim
80764217c2 feat: add domain list for sniffer, reverse force logic
when force is false, if domain in the list, will force replace
when force is true, if sniff domain in the list, will skip it
2022-04-16 08:21:31 +08:00
Meta
ce96ac35fb chore:merge & adjust code 2022-04-12 20:20:04 +08:00
Skyxim
544e0f137d feat: sniffer support
sniffer:
  enable: true
  force: false # Overwrite domain
  sniffing:
    - tls
2022-04-09 22:30:36 +08:00
MetaCubeX
81c5a65f23 Merge remote-tracking branch 'Pro-Plus/with-tun' into Alpha
# Conflicts:
#	README.md
#	adapter/outbound/trojan.go
#	adapter/outbound/vless.go
#	transport/trojan/trojan.go
2022-03-30 13:15:45 +08:00
yaling888
8df8f8cb08 Chore: adjust gVisor stack 2022-03-28 03:25:55 +08:00
yaling888
4502776513 Refactor: MainResolver 2022-03-28 00:44:13 +08:00
Adlyq
6c64164bee [skip ci] [Fix] ban auto set iptables when tun is enabled 2022-03-23 20:37:46 +08:00
MetaCubeX
7a54d616c4 [SKIP CI]
Merge remote-tracking branch 'Pro-Plus/with-tun' into Alpha

# Conflicts:
#	README.md
#	hub/route/server.go
2022-03-23 13:23:34 +08:00
Adlyq
f19b67fe9d bypass support for auto-iptables 2022-03-23 11:36:13 +08:00
MetaCubeX
a375b85fa0 [skip ci]
# Conflicts:
#	.github/workflows/linter.yml
#	.github/workflows/release.yml
#	config/config.go
#	go.mod
#	go.sum
#	hub/executor/executor.go
2022-03-23 01:41:42 +08:00
yaling888
ef915c94dc Feature: flush fakeip pool 2022-03-23 01:05:43 +08:00
yaling888
ac4cde1411 Refactor: iptables auto config, disabled by default 2022-03-22 05:38:42 +08:00
Meta
e068563b58
Merge pull request #22 from Adlyq/Alpha-pr
[skip ci]
[Fix] skip when country code not found in GeoIP.dat
2022-03-22 00:33:02 +08:00
admin
e0040b7e5d [Fix] do not monitor when auto-iptables is false 2022-03-21 20:29:07 +08:00
admin
3beb71b6e1 auto change interface for tproxy 2022-03-21 19:51:27 +08:00
admin
668d29d91f init sequence adjustment 2022-03-21 19:47:21 +08:00
MetaCubeX
5b7f46bc97 [skip ci][内容]
1.调整部分代码
2022-03-20 02:39:48 +08:00
MetaCubeX
9270d3c475 [内容]
1.autoIptables 开关
2.go.mod 调整
3.processName 调整
4.makefile 调整
5.Tun模块 部分代码调整
2022-03-19 01:11:27 +08:00
MetaCubeX
df78ba8fa6 update 2022-03-18 00:24:38 +08:00
MetaCubeX
435bee0ca2 update 2022-03-17 23:24:07 +08:00
MetaCubeX
30f1b29257 Merge remote-tracking branch 'yaling888/with-tun' into Alpha
# Conflicts:
#	.github/workflows/codeql-analysis.yml
#	.github/workflows/linter.yml
#	.github/workflows/release.yml
#	Makefile
#	README.md
#	adapter/outbound/vless.go
#	component/geodata/memconservative/cache.go
#	component/geodata/router/condition.go
#	component/geodata/router/condition_geoip.go
#	component/geodata/standard/standard.go
#	component/geodata/utils.go
#	config/config.go
#	config/initial.go
#	constant/metadata.go
#	constant/path.go
#	constant/rule.go
#	constant/rule_extra.go
#	dns/client.go
#	dns/filters.go
#	dns/resolver.go
#	go.mod
#	go.sum
#	hub/executor/executor.go
#	hub/route/configs.go
#	listener/listener.go
#	listener/tproxy/tproxy_linux_iptables.go
#	listener/tun/dev/dev.go
#	listener/tun/dev/dev_darwin.go
#	listener/tun/dev/dev_linux.go
#	listener/tun/dev/dev_windows.go
#	listener/tun/dev/wintun/config.go
#	listener/tun/dev/wintun/dll_windows.go
#	listener/tun/dev/wintun/session_windows.go
#	listener/tun/dev/wintun/wintun_windows.go
#	listener/tun/ipstack/commons/dns.go
#	listener/tun/ipstack/gvisor/tun.go
#	listener/tun/ipstack/gvisor/tundns.go
#	listener/tun/ipstack/gvisor/utils.go
#	listener/tun/ipstack/stack_adapter.go
#	listener/tun/ipstack/system/dns.go
#	listener/tun/ipstack/system/tcp.go
#	listener/tun/ipstack/system/tun.go
#	listener/tun/tun_adapter.go
#	main.go
#	rule/common/base.go
#	rule/common/domain.go
#	rule/common/domain_keyword.go
#	rule/common/domain_suffix.go
#	rule/common/final.go
#	rule/common/geoip.go
#	rule/common/geosite.go
#	rule/common/ipcidr.go
#	rule/common/port.go
#	rule/parser.go
#	rule/process.go
#	test/go.mod
#	test/go.sum
#	transport/vless/xtls.go
#	tunnel/tunnel.go
2022-03-17 17:41:02 +08:00
yaling888
8d0ae4284d Chore: use gateway address of fake ip pool as the TUN device address 2022-03-17 07:41:18 +08:00
MetaCubeX
609d69191a Merge remote-tracking branch 'clash/dev' into Alpha
# Conflicts:
#	.github/workflows/docker.yml
#	adapter/outboundgroup/fallback.go
#	adapter/outboundgroup/loadbalance.go
#	adapter/outboundgroup/relay.go
#	adapter/outboundgroup/selector.go
#	adapter/outboundgroup/urltest.go
#	config/config.go
#	go.mod
#	go.sum
#	main.go
#	test/go.mod
#	test/go.sum
2022-03-17 01:41:51 +08:00
yaling888
346d817dba Chore: Merge branch 'ogn-dev' into with-tun 2022-03-16 20:16:30 +08:00
Dreamacro
6a661bff0c Migration: go 1.18 2022-03-16 12:10:13 +08:00
MetaCubeX
f01ac69654 Merge remote-tracking branch 'clash/dev' into Alpha
# Conflicts:
#	.github/workflows/codeql-analysis.yml
#	.github/workflows/docker.yml
#	.github/workflows/linter.yml
#	.github/workflows/stale.yml
#	Makefile
#	component/dialer/dialer.go
#	config/config.go
#	constant/metadata.go
#	constant/rule.go
#	rule/common/domain.go
#	rule/common/domain_keyword.go
#	rule/common/domain_suffix.go
#	rule/common/final.go
#	rule/common/ipcidr.go
#	rule/geoip.go
#	rule/parser.go
#	rule/port.go
#	rule/process.go
2022-03-15 23:13:41 +08:00
MetaCubeX
68fccfacc0 [Skip CI] 2022-03-15 02:20:19 +08:00
yaling888
8b4f9a35f6 Chore: bump to go1.18rc1, use netip.Addr to replace net.IP with system TUN stack 2022-03-12 02:16:13 +08:00
yaling888
8333815e95 Chore: refactor TUN 2022-03-09 05:08:35 +08:00
yaling888
ba7bcce895 Chore: code style 2022-03-09 00:32:21 +08:00
yaling888
17c53b92b9 Fix: iptables routing mark init 2022-03-03 05:02:17 +08:00
yaling888
cd3b139c3f Chore: use "-m mark --mark" instead of "-m owner --uid-owner" 2022-02-23 14:19:59 +08:00
yaling888
d876d6e74c Feature: resolve ip with a proxy adapter 2022-02-23 02:38:50 +08:00
yaling888
b192238699 Merge from remote branch 2022-02-23 01:00:27 +08:00
Dreamacro
a0221bf897 Fix: routing-mark should effect on root 2022-02-17 14:23:47 +08:00
Clash-Mini
4a446c4e31 [build] 2022-02-06 01:59:35 +08:00
Clash-Mini
28a1475f66 [FEAT] Add geodata loader mode switch 2022-02-05 02:42:49 +08:00
Clash-Mini
c28f42d823 [FEAT] Add geodata loader mode switch 2022-02-05 00:51:06 +08:00
Clash-Mini
3b277aa8ec [Feat]
update gvisor
Chore: use "-m mark --mark" instead of "-m owner --uid-owner"
2022-02-04 06:11:24 +08:00
Clash-Mini
176eb3926b Merge remote-tracking branch 'pro-plus/plus-pro' into Feature
# Conflicts:
#	.github/workflows/Alpha.yml
#	.github/workflows/codeql-analysis.yml
#	.github/workflows/docker.yml
#	.github/workflows/linter.yml
#	.github/workflows/stale.yml
#	Makefile
#	README.md
#	adapter/outbound/vless.go
#	component/dialer/dialer.go
#	component/geodata/geodata.go
#	component/geodata/router/condition.go
#	config/config.go
#	config/initial.go
#	constant/metadata.go
#	constant/path.go
#	constant/rule.go
#	constant/rule_extra.go
#	dns/filters.go
#	go.mod
#	go.sum
#	hub/executor/executor.go
#	hub/route/configs.go
#	listener/listener.go
#	listener/tun/dev/dev.go
#	listener/tun/dev/dev_darwin.go
#	listener/tun/dev/dev_linux.go
#	listener/tun/dev/dev_windows.go
#	listener/tun/dev/dev_windows_extra.go
#	listener/tun/dev/wintun/dll_windows.go
#	listener/tun/dev/wintun/session_windows.go
#	listener/tun/ipstack/gvisor/tun.go
#	listener/tun/ipstack/gvisor/tundns.go
#	listener/tun/ipstack/stack_adapter.go
#	listener/tun/ipstack/system/tun.go
#	listener/tun/tun_adapter.go
#	main.go
#	rule/base.go
#	rule/common/process.go
#	rule/geoip.go
#	rule/parser.go
#	rule/port.go
#	test/go.mod
#	test/go.sum
#	test/vless_test.go
#	transport/vless/xtls.go
#	tunnel/tunnel.go
2022-02-04 05:30:21 +08:00
yaling888
f1157d0a09 Chore: use "-m mark --mark" instead of "-m owner --uid-owner" 2022-02-02 21:59:44 +08:00
Skyxim
daf83eb6f7 [Fixed] select group crash 2022-01-21 22:38:02 +08:00
Skyxim
b15344ec78 [Refactor]
1.allow maybe empty group
2.use COMPATIBLE(DIRECT alias) when proxy group is empty
3.http provider pass through tunnel
2022-01-18 21:09:36 +08:00