Skip to content

Merge 2.4.5 from offical codes#22

Merged
Zhao-Michael merged 168 commits into
mainfrom
dev
Oct 8, 2025
Merged

Merge 2.4.5 from offical codes#22
Zhao-Michael merged 168 commits into
mainfrom
dev

Conversation

@Zhao-Michael
Copy link
Copy Markdown
Owner

No description provided.

thezzisu and others added 30 commits June 7, 2025 08:19
* reimplement easytier-web dual stack
* add protocol check for dual stack listener current only support tcp and udp
sometimes route table may not be updated in time, so some dead nodes are still showing in the peer list.
when generating ipv4-peer table, we should avoid these dead devices overrides the entry of healthy nodes.
- **fix deadlock in ospf route introducd by EasyTier#958 **
- **use random peer id for foreign network entry, because ospf route algo need peer id change after peer info version reset. this may interfere route propagation and cause node residual**
- **allow multiple nodes broadcast same network ranges for subnet proxy**
- **bump version to v2.3.2**
* 将web和gui允许多网络实例逻辑抽离到NetworkInstanceManager中

* easytier-core支持多配置文件

* FFI复用instance manager

* 添加instance manager 单元测试
- **support mapping subproxy network cidr**
- **add command line option for proxy network mapping**
- **fix Instance leak in tests.
QUIC proxy works like kcp proxy, it can proxy TCP streams and transfer data with QUIC.
QUIC has better congestion algorithm (BBR) for network with both high loss rate and high bandwidth. 
QUIC proxy can be enabled by passing `--enable-quic-proxy` to easytier in the client side. The proxy status can be viewed by `easytier-cli proxy`.
…ce configuration experience (EasyTier#990)

* add method to create NetworkConfig from TomlConfigLoader
* allow web export/import toml config file and gui edit toml config
* Extract the configuration file dialog into a separate component and allow direct editing of the configuration file on the web
* add token bucket
* remove quinn-proto
Currently implemented for:
1. common.Ipv4Addr
2. common.Ipv6Addr
3. common.UUID
KKRainbow and others added 29 commits September 17, 2025 09:52
* listen both v4 and v6 for wireguard portal
* fix panic when getting udp local addr

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* impl logger rpc
* use size based appender
* add log args
EasyTier#1397)

* refactor(config): unify runtime configuration management via ConfigRpc
* feat(tests): add config patch test and fix problem
To resolve issue EasyTier#1419, DNS request packets are read directly and responses are sent back internally instead of being forwarded to the listening port.

The DNS service on fake_ip (100.100.100.101) no longer supports DNS-over-TCP.

Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
This change introduces a major refactoring of the RPC service layer to improve modularity, unify the API, and simplify the overall architecture.

Key changes:
- Replaced per-network-instance RPC services with a single global RPC server, reducing resource usage and simplifying management.
- All clients (CLI, Web UI, etc.) now interact with EasyTier core through a unified RPC entrypoint, enabling consistent authentication and control.
- RPC implementation logic has been moved to `easytier/src/rpc_service/` and organized by functionality (e.g., `instance_manage.rs`, `peer_manage.rs`, `config.rs`) for better maintainability.
- Standardized Protobuf API definitions under `easytier/src/proto/` with an `api_` prefix (e.g., `cli.proto` → `api_instance.proto`) to provide a consistent interface.
- CLI commands now require explicit `--instance-id` or `--instance-name` when multiple network instances are running; the parameter is optional when only one instance exists.

BREAKING CHANGE:  
RPC portal configuration (`rpc_portal` and `rpc_portal_whitelist`) has been removed from per-instance configs and the Web UI. The RPC listen address must now be specified globally via the `--rpc-portal` command-line flag or the `ET_RPC_PORTAL` environment variable, as there is only one RPC service for the entire application.
Co-authored-by: niuhuan <20847533+niuhuan@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
…Tier-main

# Conflicts:
#	.envrc
#	.github/origin_wfs/core.yml
#	.github/origin_wfs/docker.yml
#	.github/origin_wfs/release.yml
#	.github/workflows/ohos.yml
#	.gitignore
#	Cargo.lock
#	EasyTier.code-workspace
#	README.md
#	README_CN.md
#	easytier-contrib/easytier-ffi/src/lib.rs
#	easytier-contrib/easytier-magisk/module.prop
#	easytier-contrib/easytier-ohrs/Cargo.lock
#	easytier-contrib/easytier-ohrs/Cargo.toml
#	easytier-contrib/easytier-ohrs/build.rs
#	easytier-contrib/easytier-ohrs/src/lib.rs
#	easytier-contrib/easytier-ohrs/src/native_log.rs
#	easytier-gui/package.json
#	easytier-gui/src-tauri/Cargo.toml
#	easytier-gui/src-tauri/src/lib.rs
#	easytier-gui/src-tauri/tauri.conf.json
#	easytier-web/Cargo.toml
#	easytier-web/frontend-lib/src/components/Config.vue
#	easytier-web/frontend-lib/src/easytier-frontend-lib.ts
#	easytier-web/frontend-lib/src/locales/cn.yaml
#	easytier-web/frontend-lib/src/locales/en.yaml
#	easytier-web/frontend-lib/src/types/network.ts
#	easytier-web/frontend/package.json
#	easytier-web/frontend/src/components/ConfigGenerator.vue
#	easytier-web/src/main.rs
#	easytier-web/src/restful/network.rs
#	easytier/Cargo.toml
#	easytier/locales/app.yml
#	easytier/src/arch/windows.rs
#	easytier/src/common/acl_processor.rs
#	easytier/src/common/config.rs
#	easytier/src/common/global_ctx.rs
#	easytier/src/common/ifcfg/darwin.rs
#	easytier/src/common/ifcfg/win/luid.rs
#	easytier/src/common/ifcfg/win/types.rs
#	easytier/src/common/ifcfg/windows.rs
#	easytier/src/common/mod.rs
#	easytier/src/common/stats_manager.rs
#	easytier/src/common/stun.rs
#	easytier/src/connector/udp_hole_punch/mod.rs
#	easytier/src/easytier-cli.rs
#	easytier/src/easytier-core.rs
#	easytier/src/gateway/icmp_proxy.rs
#	easytier/src/gateway/kcp_proxy.rs
#	easytier/src/gateway/quic_proxy.rs
#	easytier/src/gateway/socks5.rs
#	easytier/src/gateway/tcp_proxy.rs
#	easytier/src/instance/dns_server/tests.rs
#	easytier/src/instance/instance.rs
#	easytier/src/instance/virtual_nic.rs
#	easytier/src/instance_manager.rs
#	easytier/src/launcher.rs
#	easytier/src/lib.rs
#	easytier/src/peer_center/instance.rs
#	easytier/src/peers/acl_filter.rs
#	easytier/src/peers/foreign_network_manager.rs
#	easytier/src/peers/peer_manager.rs
#	easytier/src/peers/peer_map.rs
#	easytier/src/peers/peer_ospf_route.rs
#	easytier/src/peers/route_trait.rs
#	easytier/src/peers/rpc_service.rs
#	easytier/src/proto/acl.proto
#	easytier/src/proto/api_instance.proto
#	easytier/src/proto/cli.rs
#	easytier/src/proto/common.proto
#	easytier/src/proto/common.rs
#	easytier/src/proto/mod.rs
#	easytier/src/proto/peer_rpc.proto
#	easytier/src/proto/web.proto
#	easytier/src/tests/three_node.rs
#	easytier/src/tunnel/common.rs
#	easytier/src/tunnel/quic.rs
#	easytier/src/utils.rs
#	easytier/src/vpn_portal/wireguard.rs
#	easytier/src/web_client/controller.rs
#	easytier/src/web_client/mod.rs
#	flake.lock
#	flake.nix
#	pnpm-lock.yaml
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
@Zhao-Michael Zhao-Michael merged commit 233e9d8 into main Oct 8, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.