Luna Yao
78b2afb785
config: add DNS import/export policies
...
config: move ID generation to ZoneConfig
config: serde fixes
2026-04-06 11:54:01 +02:00
Luna Yao
3f3aec8edd
add DnsConfig and ZoneConfig with proto definitions
2026-04-06 11:54:01 +02:00
Luna Yao
55a0e5952c
chore: use cfg_aliases for mobile ( #2033 )
2026-03-30 16:38:39 +08:00
KKRainbow
1dff388717
bump version to v2.6.0 ( #2039 )
2026-03-30 15:50:07 +08:00
Luna Yao
d4c1b0e867
fix: read X-Forwarded-For from HTTP header of WS/WSS ( #2019 )
2026-03-28 22:20:46 +08:00
Luna Yao
b5f475cd4c
filter overlapped proxy cidr ( #2024 )
2026-03-28 09:40:05 +08:00
Luna Yao
e2684a93de
refactor: use strum on EncryptionAlgorithm, use Xor as default when AesGcm not available ( #1923 )
2026-03-25 18:42:34 +08:00
Luna Yao
77966916c4
cargo: add used features for windows-sys ( #1924 )
2026-03-17 14:10:50 +08:00
KKRainbow
330659e449
feat(web): full-power RPC access + typed JSON proxy endpoint ( #1983 )
...
- extend web controller bindings to cover full RPC service set
- update rpc_service API wiring and session/controller integration
- generate trait-level json_call_method in rpc codegen
- route restful proxy-rpc requests via scoped typed clients
- add json-call regression tests and required Sync bound fixes~
2026-03-11 20:32:37 +08:00
Luna Yao
5f31583a84
refactor: 使用 tracing 输出日志 ( #1856 )
...
* change all println to tracing
2026-03-04 09:52:23 +08:00
hello
73291a3a1c
feat: Update Cargo.toml to add support for tls1.2 when use wss ( #1917 )
2026-02-20 18:01:21 +08:00
Chenx Dust
7a26640c26
feat: support macOS Network Extension ( #1902 )
...
* feat: support macOS Network Extension
* fix: disable macOS NE feature in cargo hack check
2026-02-14 14:54:36 +08:00
KKRainbow
c58140fb47
update rust to 1.93 ( #1865 )
2026-02-04 09:48:43 +08:00
Chenx Dust
e1cbd07d1f
feat: separate zstd and faketcp into features ( #1861 )
...
* feat: separate faketcp into a feature
* fix: no need to initialize out_len
* feat: separate zstd into a feature
* clippy: remove unnecessary cast, because for unix size_t always equals usize
2026-02-03 11:12:33 +08:00
Luna Yao
cd2cf56358
refactor: handle quic proxy internally instead of use external udp port ( #1743 )
...
* deprecate quic_listen_port, add disable_relay_quic and enable_relay_foreign_network_quic
* add set_src_modified to TcpProxyForWrappedSrcTrait
* prioritize quic over kcp
2026-02-02 11:53:40 +08:00
Luna Yao
cdedaf3f63
refactor(quic): remove quinn encryption ( #1831 )
...
* use quinn-plaintext
* remove server_cert in QUICTunnelListener
* remove some customized transport config
* leave max_concurrent_bidi_streams as default
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-30 10:21:59 +08:00
Chenx Dust
ccc684a9ab
Fix: Fixed compilation issue after partially removing the feature flag ( #1835 )
2026-01-28 21:38:34 +08:00
fanyang
977e502150
feat(cli): add column truncation controls ( #1838 )
...
- drop low-priority columns when tables exceed terminal width
- truncate optional columns to fit remaining width
- add --no-trunc flag to disable truncation
- compute column widths using unicode display width
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2026-01-28 14:50:14 +08:00
KKRainbow
101f416268
Introduce secure mode (part 1) ( #1808 )
...
Use noise protocol on handshake. Check peer's public key if needed. Also support rekey and replay attack prevention.
E2EE and temporary password will be implemented based on this.
2026-01-25 20:16:51 +08:00
KKRainbow
53264f67bf
fix peer establish direct conn with subnet proxy to one of local interface ( #1782 )
...
* fix peer establish direct conn with subnet proxy to one of local interface
* fix peer mgr ref loop
2026-01-15 01:00:32 +08:00
Copilot
bd8f01fb26
Add Nushell completion script generation support ( #1756 )
...
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com >
2026-01-11 18:41:02 +08:00
Chenx Dust
48c5c23f9b
feat: support compile for iOS ( #1777 )
2026-01-11 16:36:58 +08:00
KKRainbow
39b056c87a
bump version to v2.5.0 ( #1715 )
2025-12-28 23:19:30 +08:00
KKRainbow
ca9b4c58b1
fix windivert cause stack overflow ( #1711 )
2025-12-27 19:31:42 +08:00
KKRainbow
28cd6da502
Add fake tcp tunnel (experimental) ( #1673 )
...
support faketcp to avoid tcp-over-tcp problem.
linux/macos/windows are supported.
better to be used in internet env, the maximum
performance is majorly limited by windivert/raw socket.
2025-12-25 00:10:32 +08:00
KKRainbow
838b6101b9
Make ospf route more effiencient ( #1512 )
...
Avoid iterate all peer info and conn list when building sync request.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com >
2025-12-08 13:14:47 +08:00
datasone
2a656d6a0c
fix(core): Fix sleep-wake reconnect by resetting alive_conn_urls ( #1593 )
...
Co-authored-by: sijie.sun <sijie.sun@smartx.com >
2025-12-05 14:31:08 +08:00
Mg Pig
53f279f5ff
feat(core): Support environment variable parsing in config files ( #1640 )
2025-12-02 17:54:31 +08:00
Mg Pig
1f2517c731
feat(gui): add service and remote mode support ( #1578 )
...
This PR fundamentally restructures the EasyTier GUI, introducing support for service mode and remote mode, transforming it from a simple desktop application into a powerful network management terminal. This change allows users to persistently run the EasyTier core as a background service or remotely manage multiple EasyTier instances, greatly improving deployment flexibility and manageability.
2025-11-25 13:59:27 +08:00
Sijie.Sun
b50744690e
easytier-web and uptime use mimalloc as allocator ( #1559 )
2025-11-08 11:07:33 +08:00
Sijie.Sun
3ffa6214ca
fix subnet proxy deadloop ( #1492 )
...
* use LPM to determine subnet proxy dst.
* never allow subnet proxy traffic sending to self.
2025-10-19 15:46:51 +08:00
Sijie.Sun
cc8f35787e
release dashmap memory ( #1485 )
2025-10-18 12:48:04 +08:00
编程小白
70dddeace3
Fix support for Chinese domain names ( #1462 )
2025-10-15 21:00:05 +08:00
sijie.sun
c0d2045e52
bump version to v2.4.5
2025-09-26 00:48:10 +08:00
Sijie.Sun
7035a3fef4
fix firewall rule not specify interface ( #1407 )
2025-09-25 00:11:26 +08:00
Sijie.Sun
1a1be8138a
bump version to v2.4.4 ( #1386 )
2025-09-18 19:49:10 +08:00
Sijie.Sun
e06e8a9e8a
allow enable log with cli, limit log size ( #1384 )
...
* impl logger rpc
* use size based appender
* add log args
2025-09-18 16:35:12 +08:00
Sijie.Sun
5c90431876
fix smoltcp attempt to subtract sequence numbers with underflow ( #1360 )
2025-09-13 15:03:04 +08:00
fanyang
ae704d1d5f
Fix jemalloc warning on macOS ( #1344 )
...
fix:
```
-> % easytier-core
<jemalloc>: option background_thread currently supports pthread only
```
Reference: https://github.com/apache/arrow/pull/5729
2025-09-08 21:53:40 +08:00
Sijie.Sun
719a1fe7cf
bump version to 2.4.3 ( #1296 )
2025-08-26 12:22:08 +08:00
Mg Pig
08a92a53c3
feat(acl): add group-based ACL rules and related structures ( #1265 )
...
* feat(acl): add group-based ACL rules and related structures
* refactor(acl): optimize group handling with Arc and improve cache management
* refactor(acl): clippy
* feat(tests): add performance tests for generate_with_proof and verify methods
* feat: update group_trust_map to use HashMap for more secure group proofs
* refactor: refactor the logic of the trusted group getting and setting
* feat(acl): support kcp/quic use group acl
* feat(proxy): optimize group retrieval by IP in Kcp and Quic proxy handlers
* feat(tests): add group-based ACL tree node test
* always allow quic proxy traffic
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn >
Co-authored-by: sijie.sun <sijie.sun@smartx.com >
2025-08-22 22:25:00 +08:00
fanyang
df7eb47593
Support tokio-console ( #1259 )
2025-08-21 11:41:42 +08:00
Sijie.Sun
1eec27b5ff
bump version to 2.4.2 ( #1218 )
2025-08-11 09:03:13 +08:00
Sijie.Sun
e43537939a
clippy all codes ( #1214 )
...
1. clippy code
2. add fmt and clippy check in ci
2025-08-10 22:56:41 +08:00
CyiceK
0087ac3ffc
feat(encrypt): Add XOR and ChaCha20 encryption with low-end device optimization and openssl support. ( #1186 )
...
Add ChaCha20 XOR algorithm, extend AES-GCM-256 capabilities, and integrate OpenSSL support.
---------
Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn >
2025-08-09 18:53:55 +08:00
Sijie.Sun
6d14e9e441
fix jemalloc prof feature ( #1201 )
2025-08-08 17:54:39 +08:00
sijie.sun
84bfac144c
bump version to 2.4.1
2025-08-02 10:48:17 +08:00
Tunglies
b1b2421561
fix: compiling with socket2::Type::RAW not found on macOS #1168 ( #1169 )
2025-07-30 00:33:38 +08:00
Sijie.Sun
1f6a715939
releases/v2.4.0 ( #1145 )
...
* bump version to v2.4.0
* update tauri.
* allow try direct connect to public server
2025-07-25 00:16:15 +08:00
Sijie.Sun
8e7a8de5e5
Implement ACL ( #1140 )
...
1. get acl stats
```
./easytier-cli acl stats
AclStats:
Global:
CacheHits: 4
CacheMaxSize: 10000
CacheSize: 5
DefaultAllows: 3
InboundPacketsAllowed: 2
InboundPacketsTotal: 2
OutboundPacketsAllowed: 7
OutboundPacketsTotal: 7
PacketsAllowed: 9
PacketsTotal: 9
RuleMatches: 2
ConnTrack:
[src: 10.14.11.1:57444, dst: 10.14.11.2:1000, proto: Tcp, state: New, pkts: 1, bytes: 60, created: 2025-07-24 10:13:39 +08:00, last_seen: 2025-07-24 10:13:39 +08:00]
Rules:
[name: 'tcp_whitelist', prio: 1000, action: Allow, enabled: true, proto: Tcp, ports: ["1000"], src_ports: [], src_ips: [], dst_ips: [], stateful: true, rate: 0, burst: 0] [pkts: 2, bytes: 120]
```
2. use tcp/udp whitelist to block unexpected traffic.
`sudo ./easytier-core -d --tcp-whitelist 1000`
3. use complete acl ability with config file:
```
[[acl.acl_v1.chains]]
name = "inbound_whitelist"
chain_type = 1
description = "Auto-generated inbound whitelist from CLI"
enabled = true
default_action = 2
[[acl.acl_v1.chains.rules]]
name = "tcp_whitelist"
description = "Auto-generated TCP whitelist rule"
priority = 1000
enabled = true
protocol = 1
ports = ["1000"]
source_ips = []
destination_ips = []
source_ports = []
action = 1
rate_limit = 0
burst_limit = 0
stateful = true
```
2025-07-24 22:13:45 +08:00