Merge 2.4.5 from offical codes#22
Merged
Merged
Conversation
…amed to another endpoint address (EasyTier#954)
* reimplement easytier-web dual stack * add protocol check for dual stack listener current only support tcp and udp
…fault to enhance security (EasyTier#929)
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.
…EasyTier#982) Co-authored-by: Sijie.Sun <sunsijie@buaa.edu.cn>
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
avoid connection loss when idle
* add token bucket * remove quinn-proto
Currently implemented for: 1. common.Ipv4Addr 2. common.Ipv6Addr 3. common.UUID
* 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.
# Conflicts: # .github/workflows/ohos.yml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.