Commit graph

303 commits

Author SHA1 Message Date
Dreamacro
5b07d7b776 Feature: add tunnels 2022-11-20 21:30:55 +08:00
wwqgtxx
dc3e144b6a Merge branch 'dev' of https://github.com/Dreamacro/clash into Alpha 2022-11-12 20:43:48 +08:00
cubemaze
d78b2b1cfb
Merge pull request #256 from Skimmle/Alpha
featrue: DoH and DoQ are implemented using AdGuardTeam/dnsProxy
2022-11-12 11:19:04 +08:00
Skimmle
3e20912339 featrue: DoH and DoQ are implemented using AdGuardTeam/dnsProxy, DoH support perfer and force http3 2022-11-12 11:14:51 +08:00
wwqgtxx
b2d7149a95 chore: support IN-PORT rule 2022-11-11 23:36:06 +08:00
wwqgtxx
68b28ed530 chore: shadowsocks listener support old cipher 2022-11-11 22:44:44 +08:00
wwqgtxx
3eacce9a66 chore: add vmess, shadowsocks, tcptun and udptun listener 2022-11-11 20:56:08 +08:00
wwqgtxx
6dadc2357a chore: remove AddrType on Metadata 2022-11-11 09:19:50 +08:00
wwqgtxx
ae08d13de4 chore: support wireguard outbound 2022-11-09 18:44:06 +08:00
wwqgtxx
19b7c7f52a
Fix: a shared fastSingle.Do() may cause providers untouched (#2378) 2022-11-04 13:11:01 +08:00
wwqgtxx
972d3f1d39 fix: UrlTest's torch not work
close #232
2022-10-31 16:45:14 +08:00
wwqgtxx
b9d8b69889 fix: lazy check 2022-10-30 23:08:18 +08:00
wwqgtxx
a46436f61a chore: parse user's hosts before remoteDial 2022-10-29 09:03:00 +08:00
wwqgtxx
77a3c1c3ae fix: tun stack shown 2022-10-10 19:02:57 +08:00
adlyq
9b89ff9f2d feat: support sub-rule, eg.
rules:
  - SUB-RULE,(AND,((NETWORK,TCP),(DOMAIN-KEYWORD,google))),TEST2
  - SUB-RULE,(GEOIP,!CN),TEST1
  - MATCH,DIRECT

sub-rules:
  TEST2:
    - MATCH,Proxy
  TEST1:
    - RULE-SET,Local,DIRECT,no-resolve
    - GEOSITE,CN,Domestic
    - GEOIP,CN,Domestic
    - MATCH,Proxy
2022-09-06 17:30:35 +08:00
Skyxim
99effb051b feat: add ip-version param 2022-08-28 13:41:43 +08:00
metacubex
02933ae568 Fix: nil pointer 2022-08-12 12:49:35 +08:00
metacubex
4ca2d4146b Merge remote-tracking branch 'origin/Alpha' into Alpha 2022-08-12 03:36:15 +08:00
metacubex
65a289e16f Chore: clean code 2022-08-12 03:04:58 +08:00
metacubex
637707e58f Chore: Migration 1.19 2022-08-12 00:07:13 +08:00
Skyxim
473d0f74bd fix: remove extra and the actual original IDNA domain name is no longer stored, for reduce memory 2022-08-11 21:50:16 +08:00
Dreamacro
50105f0559 Migration: go1.19 2022-08-07 21:45:50 +08:00
zhudan
31f4d20477 support ebpf 2022-07-29 09:08:35 +08:00
Skyxim
6a4063af0d refactor: optimize nodes caching 2022-07-20 08:53:54 +08:00
Dreamacro
aaf08dadff
Change: remove AddrType on Metadata (#2199) 2022-07-05 20:26:43 +08:00
adlyq
ed17a1bf23 fix: group filter touch provider 2022-06-07 17:19:25 +08:00
世界
35a6666a84
feat: add hysteria 2022-06-07 13:46:54 +08:00
Skyxim
298ca42369 chore: 启动参数v,查看版本同时打印使用的tags 2022-06-03 20:23:53 +08:00
adlyq
04e5d02ab9 feat: IP-SUFFIX
eg. IP-SUFFIX,0.0.0.124/6,匹配ip二进制后四位(IP-CIDR的倒序),支持ipv6
2022-06-02 12:53:19 +08:00
adlyq
4092a7c84b feat: proxies group URLTest api 2022-05-30 22:07:09 +08:00
Skyxim
72fb153fe0 refactor: 优化UDP远程目标获取 2022-05-26 23:41:09 +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
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
c4408612b3 chore: 暴露数据给前端 2022-05-17 16:47:21 +08:00
Skyxim
0742f7db26 refactor: 重构StickySessions 2022-05-17 13:28:54 +08:00
CHIZI-0618
5bd5f1bfda chore: remove Script mode residual code. 2022-05-14 13:00:33 +08:00
Skyxim
fb58595d44 feat: Expose remote destination (udp proxy maybe domain of node) 2022-05-04 16:57:08 +08:00
adlyq
d617b0f447 style: uid log tidy 2022-05-02 19:52:34 +08:00
MetaCubeX
0cf539fb82 chore: adjust sniffer constant 2022-05-02 08:49:18 +08:00
Meta
658f1f5cda
fix code mistake 2022-05-02 05:34:20 +08:00
MetaCubeX
6d704b9cd1 feat: sniffer support http 2022-05-02 05:10:18 +08:00
wwqgtxx
861205dbbe support udp in relay if last proxy could udp-over-tcp 2022-04-30 11:36:42 +08:00
adlyq
b9f270162a refactor: field name 2022-04-28 23:10:08 +08:00
adlyq
f1dab9e9ce refactor: optimize the performance of filter in proxy-group 2022-04-28 19:01:13 +08:00
adlyq
47568051bf fix: problems caused when uid is 0 2022-04-28 11:51:40 +08:00
adlyq
2f95d56a12 pref: uid style in log 2022-04-23 17:37:50 +08:00
adlyq
b8d5321615 feat: cache uid 2022-04-23 12:11:26 +08:00
adlyq
de4341c8cd Revert: "fix: proxy-groups filter logic"
This reverts commit 8a85c63b08.
2022-04-22 18:56:35 +08:00
adlyq
8a85c63b08 fix: proxy-groups filter logic 2022-04-22 17:27:55 +08:00
adlyq
3d6aea4c1e feat: support uid rule
eg. UID,1000/5000-6000,Proxy
2022-04-22 16:27:51 +08:00
adlyq
0cb5270452 Merge remote-tracking branch 'origin/Alpha' into Alpha 2022-04-22 15:58:57 +08:00
yaling888
f91d106cdf Chore: fix typos 2022-04-22 12:42:20 +08:00
adlyq
e98dcc4267 [fix] logic 2022-04-21 18:56:33 +08:00
yaling888
7ca1a03d73 Refactor: metadata use netip.Addr 2022-04-20 22:52:05 +08:00
Meta
815a060309
Update metadata.go
revet commit 13012a9
2022-04-10 00:47:22 +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
91e48b707b Merge remote-tracking branch 'yaling888/with-tun' into Alpha 2022-04-05 14:44:40 +08:00
fishg
93d2cfa091 fix: when ssh connect to a ip, if this ip map to a domain in clash, change ip to host may redirect to a diffrent ip 2022-04-05 03:26:23 +08:00
MetaCubeX
611ce5f5f1 [commit]
[Feat] add Pass type for support temporary skip rule set
2022-03-27 23:44:51 +08:00
Meta
b5f6f26de4
Update version.go
[BUILD TEST]
2022-03-22 01:39:00 +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
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
MetaCubeX
acc249495d [Build test] 1.18 2022-03-16 23:30:29 +08:00
yaling888
b8d635a4b3 Migration: go 1.18 2022-03-16 22:00:20 +08:00
yaling888
346d817dba Chore: Merge branch 'ogn-dev' into with-tun 2022-03-16 20:16:30 +08:00
MetaCubeX
0f2123179a [build test] 2022-03-16 17:29:09 +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
yaling888
20b66d9550 Style: code style 2022-03-15 02:55:06 +08:00
MetaCubeX
68fccfacc0 [Skip CI] 2022-03-15 02:20:19 +08:00
MetaCubeX
cf52fbed65 [Skip CI] 2022-03-15 02:06:57 +08:00
yaling888
46b9a1092d Chore: embed the RuleExtra into Base 2022-03-13 01:22:05 +08:00
Kr328
b866f06414
Chore: move find connection process to tunnel (#2016) 2022-03-12 19:07:53 +08:00
yaling888
8333815e95 Chore: refactor TUN 2022-03-09 05:08:35 +08:00
admin
06942c67fd Fix the filter under proxy-group to filter other groups 2022-02-23 16:17:29 +08:00
yaling888
2f234cf6bc Feature: process condition for rules 2022-02-23 14:01:53 +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
Clash-Mini
4a446c4e31 [build] 2022-02-06 01:59:35 +08:00
Clash-Mini
35b19c3d7f Merge branch 'Dev' into Feature
# Conflicts:
#	Makefile
2022-02-04 18:44:35 +08:00
Skyxim
90e6ed4612 [Fixed] Fixed clash process name is Clash.Meta 2022-02-04 17:38:06 +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
25e115d042 Feature: process condition for rules 2022-01-28 22:52:35 +08:00
Clash-Mini
9e4e1482d9 [chore] Replace Country.mmdb with GeoIP.dat 2022-01-26 12:01:14 +08:00
Clash-Mini
a5ce62db33 Merge branch 'clash-dev' into Dev 2022-01-25 15:05:24 +08:00
Skyxim
8595d6c2e9 [Feature]
1.Add Network rule, match network type(TCP/UDP)
2.Add logic rules(NOT,OR,AND)
-AND,((DOMAIN,baidu.com),(NETWORK,UDP)),REJECT

(cherry picked from commit d7092e2e37f2c48282c878edea1b2ebc2912b09a)
2022-01-22 22:37:07 +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
yaling888
daae846db3 Merge from remote branch 2022-01-18 09:51:20 +08:00
thank243
9732efe938
Fix: tls handshake requires a timeout (#1893) 2022-01-15 19:33:21 +08:00
Clash-Mini
a15d2535f1 升级版本号 2022-01-05 11:41:17 +08:00
yaling888
c14dd79e69 Merge from remote branch 2022-01-05 01:46:37 +08:00
Clash-Mini
9475799615 make tun config compatible with premium 2022-01-05 00:33:42 +08:00
Maze.tsz
3bb32d12e0 Merge remote-tracking branch 'clash/dev' into Meta
# Conflicts:
#	.github/workflows/docker.yml
#	dns/server.go
#	go.mod
#	go.sum
#	hub/executor/executor.go
#	test/go.mod
#	test/go.sum
2022-01-04 17:31:07 +08:00
HamsterReserved
8679968ab0
Fix: multiple port string parsing overflow (#1868)
Ports in TCP and UDP should be parsed as an unsigned integer,
otherwise ports > 32767 get truncated to 32767. As this is
the case with Metadata.UDPAddr(), this fundamentally breaks
UDP connections where demand for high port numbers is high.

This commit fixes all known cases where ParseInt is used for ports,
and has been verified to fix Discord voice connections on port
50001~50004.

Fixes: d40e5e4fe6

Co-authored-by: Hamster Tian <haotia@gmail.com>
2022-01-02 01:09:29 +08:00
yaling888
5657aa50cf Merge from remote branch 2021-12-09 21:38:24 +08:00
bobo liu
78e105f3b2
Chore: builtin right mime of .js (#1808) 2021-12-08 13:38:25 +08:00
maze.y2b@gmail.com
eb999b3bf1 fix AutoIptables 2021-12-04 19:59:41 +08:00
Maze.tsz
8580ee8898 [style] 2021-12-04 17:41:13 +08:00
maze.y2b@gmail.com
edf1bb476d test 2021-12-03 20:38:40 +08:00
Skyxim
c6f923041f Feature:Supported Rule-Set 2021-12-02 22:56:17 +08:00
maze.y2b@gmail.com
c7b257b188 [style] 2021-12-01 19:25:32 +08:00
Maze.tsz
35cf39e415 Revert "[test] rule providers"
This reverts commit 078389f4f6.
2021-11-26 00:57:41 +08:00
Maze.tsz
340efef2d8 Revert "[test] rule providers"
This reverts commit 14af94205c.
2021-11-26 00:57:36 +08:00
Maze.tsz
0f2b87497b Revert "[fix]code"
This reverts commit 06e9243fda.
2021-11-26 00:57:29 +08:00
Maze.tsz
06e9243fda [fix]code 2021-11-26 00:27:00 +08:00
maze.y2b@gmail.com
14af94205c [test] rule providers 2021-11-25 23:20:08 +08:00
maze.y2b@gmail.com
078389f4f6 [test] rule providers 2021-11-25 23:14:31 +08:00
beyondkmp
1401a82bb0
Feature: add filter on proxy provider (#1511) 2021-11-20 23:38:49 +08:00
Mazeorz
223de1f3fd [update]version 2021-11-18 23:54:20 +08:00
Mazeorz
900e852525 [test] 2021-11-17 16:03:47 +08:00
yaling888
6bd186d3c0 Merge from remote branch 2021-11-09 21:11:38 +08:00
yaling888
4c6bb7178b Feature: resolve ip with proxy adapter 2021-11-09 19:44:16 +08:00
Dreamacro
d40e5e4fe6 Fix: codeql alerts 2021-11-08 00:32:21 +08:00
Dreamacro
1a7830f18e
Feature: dial different NIC for all proxies (#1714) 2021-11-07 16:48:51 +08:00
yaling888
2680e8ffa3 Merge from remote branch 2021-10-28 11:36:11 +08:00
yaling888
2953772a0e Style: format code 2021-10-28 00:06:55 +08:00
yaling888
5a27df899f Chore: script built 2021-10-27 23:10:11 +08:00
yaling888
4b614090f8 Merge remote branch 2021-10-21 22:37:30 +08:00
Dreamacro
81d5da51a3 Fix: unexpected proxy dial behavior on mapping mode 2021-10-18 21:08:27 +08:00
Dreamacro
68753b4ae1 Chore: contexify ProxyAdapter ListenPacket 2021-10-15 21:44:53 +08:00
yaling888
c0e9d69163 Feature: add mode script 2021-10-15 14:11:14 +08:00
Dreamacro
537b672fcf Change: use bbolt as cache db 2021-10-04 19:20:11 +08:00
yaling888
4cc16e0136 Feature: add source ipcidr condition for all rules 2021-08-31 21:46:04 +08:00
yaling888
83c9664c17
Merge from remote branch 2021-08-05 00:49:17 +08:00
Dreamacro
1bfebd0d03 Fix: listener patch diff 2021-08-01 00:35:37 +08:00
yaling888
ba2fd00f01 Merge from remote branch 2021-07-28 22:13:21 +08:00
xᴊᴀsᴏɴʟʏᴜ
3705996974
Chore: split SOCKS version inbound metadata type (#1513) 2021-07-27 13:58:29 +08:00
Dreamacro
46f4f84442 Chore: use iife replace init in some cases 2021-07-11 19:43:25 +08:00
yaling888
5852245045
Merge from remote branch 2021-07-07 03:53:32 +08:00
Dreamacro
d755383e39 Chore: move provider interface to constant 2021-07-06 00:31:13 +08:00
yaling888
d7732f6ebc Code: refresh code 2021-07-01 22:49:29 +08:00
Dreamacro
045edc188c Style: code style 2021-06-10 14:05:56 +08:00
Dreamacro
807d53c1e7 Chore: Clarify the definition of StreamConn and DialContext 2021-03-22 23:26:20 +08:00
Dreamacro
14bbf6eedc Feature: support store group selected node to cache (enable by default) 2021-02-18 23:41:50 +08:00
Dreamacro
f4de055aa1 Refactor: make inbound request contextual 2021-01-23 14:58:09 +08:00
maskedeken
83efe2ae57
Feature: add TCP TPROXY support (#1049) 2020-11-09 10:46:10 +08:00
kongminhao
8c3e2a7559
Chore: fix typo (#1017) 2020-10-14 19:56:02 +08:00
Dreamacro
78c3034158 Chore: rename NoResolveIP to ShouldResolveIP 2020-07-27 11:57:55 +08:00
goomadao
33a6579a3a
Feature: add ssr support (#805)
* Refactor ssr stream cipher to expose iv and key

References:
https://github.com/Dreamacro/go-shadowsocks2
https://github.com/sh4d0wfiend/go-shadowsocksr2

* Implement ssr obfs

Reference:
https://github.com/mzz2017/shadowsocksR

* Implement ssr protocol

References:
https://github.com/mzz2017/shadowsocksR
https://github.com/shadowsocksRb/shadowsocksr-libev
https://github.com/shadowsocksr-backup/shadowsocksr
2020-07-22 23:02:15 +08:00
Dreamacro
ae1e1dc9f6 Feature: support PROCESS-NAME on macOS 2020-07-19 13:18:23 +08:00
Dreamacro
59bda1d547 Change: local resolve DNS in UDP request due to TURN failed 2020-06-12 23:39:03 +08:00
Dreamacro
2dece02df6 Chore: code adjustments 2020-06-07 16:54:41 +08:00
duama
752f87a8dc
Feature: support proxy-group in relay (#597) 2020-05-07 21:42:52 +08:00
Dreamacro
1825535abd Improve: recycle buffer after packet used 2020-04-16 18:19:36 +08:00
duama
c0a2473160
Feature: support relay (proxy chains) (#539) 2020-03-21 23:46:49 +08:00
Dreamacro
b562f28c1b Feature: support trojan 2020-03-19 20:26:53 +08:00
Dreamacro
7b48138ad0 Fix: vmess udp crash 2020-02-17 17:34:19 +08:00
Dreamacro
dcf97ff5b4 Fix: should prehandle metadata before resolve 2020-02-07 20:53:43 +08:00
Dreamacro
19bb0b655c Fix: match log display 2020-01-31 14:58:54 +08:00
Dreamacro
26ce3e8814 Improve: udp NAT type 2020-01-31 14:43:54 +08:00