From e25cd9be370ca4de9e65ec6b3ea44506edde64d7 Mon Sep 17 00:00:00 2001 From: "Sijie.Sun" Date: Sat, 19 Jul 2025 11:07:57 +0800 Subject: [PATCH] add disable ipv6 option to gui/web (#1127) --- easytier-web/frontend-lib/src/components/Config.vue | 1 + easytier-web/frontend-lib/src/locales/cn.yaml | 3 +++ easytier-web/frontend-lib/src/locales/en.yaml | 3 +++ easytier-web/frontend-lib/src/types/network.ts | 2 ++ easytier/src/launcher.rs | 6 ++++++ easytier/src/proto/web.proto | 1 + 6 files changed, 16 insertions(+) diff --git a/easytier-web/frontend-lib/src/components/Config.vue b/easytier-web/frontend-lib/src/components/Config.vue index 73ac0fb..75a2971 100644 --- a/easytier-web/frontend-lib/src/components/Config.vue +++ b/easytier-web/frontend-lib/src/components/Config.vue @@ -145,6 +145,7 @@ interface BoolFlag { const bool_flags: BoolFlag[] = [ { field: 'latency_first', help: 'latency_first_help' }, { field: 'use_smoltcp', help: 'use_smoltcp_help' }, + { field: 'disable_ipv6', help: 'disable_ipv6_help' }, { field: 'enable_kcp_proxy', help: 'enable_kcp_proxy_help' }, { field: 'disable_kcp_input', help: 'disable_kcp_input_help' }, { field: 'enable_quic_proxy', help: 'enable_quic_proxy_help' }, diff --git a/easytier-web/frontend-lib/src/locales/cn.yaml b/easytier-web/frontend-lib/src/locales/cn.yaml index 3e4001c..cc7a96d 100644 --- a/easytier-web/frontend-lib/src/locales/cn.yaml +++ b/easytier-web/frontend-lib/src/locales/cn.yaml @@ -83,6 +83,9 @@ latency_first_help: 忽略中转跳数,选择总延迟最低的路径 use_smoltcp: 使用用户态协议栈 use_smoltcp_help: 使用用户态 TCP/IP 协议栈,避免操作系统防火墙问题导致无法子网代理 / KCP代理。 +disable_ipv6: 禁用IPv6 +disable_ipv6_help: 禁用此节点的IPv6功能,仅使用IPv4进行网络通信。 + enable_kcp_proxy: 启用 KCP 代理 enable_kcp_proxy_help: 将 TCP 流量转为 KCP 流量,降低传输延迟,提升传输速度。 diff --git a/easytier-web/frontend-lib/src/locales/en.yaml b/easytier-web/frontend-lib/src/locales/en.yaml index f8cd25f..7b4aabc 100644 --- a/easytier-web/frontend-lib/src/locales/en.yaml +++ b/easytier-web/frontend-lib/src/locales/en.yaml @@ -82,6 +82,9 @@ latency_first_help: Ignore hop count and select the path with the lowest total l use_smoltcp: Use User-Space Protocol Stack use_smoltcp_help: Use a user-space TCP/IP stack to avoid issues with operating system firewalls blocking subnet or KCP proxy functionality. +disable_ipv6: Disable IPv6 +disable_ipv6_help: Disable IPv6 functionality for this node, only use IPv4 for network communication. + enable_kcp_proxy: Enable KCP Proxy enable_kcp_proxy_help: Convert TCP traffic to KCP traffic to reduce latency and boost transmission speed. diff --git a/easytier-web/frontend-lib/src/types/network.ts b/easytier-web/frontend-lib/src/types/network.ts index 6487fc7..e1722db 100644 --- a/easytier-web/frontend-lib/src/types/network.ts +++ b/easytier-web/frontend-lib/src/types/network.ts @@ -37,6 +37,7 @@ export interface NetworkConfig { dev_name: string use_smoltcp?: boolean + disable_ipv6?: boolean enable_kcp_proxy?: boolean disable_kcp_input?: boolean enable_quic_proxy?: boolean @@ -105,6 +106,7 @@ export function DEFAULT_NETWORK_CONFIG(): NetworkConfig { dev_name: '', use_smoltcp: false, + disable_ipv6: false, enable_kcp_proxy: false, disable_kcp_input: false, enable_quic_proxy: false, diff --git a/easytier/src/launcher.rs b/easytier/src/launcher.rs index 1c8c5a5..0398592 100644 --- a/easytier/src/launcher.rs +++ b/easytier/src/launcher.rs @@ -678,6 +678,10 @@ impl NetworkConfig { flags.use_smoltcp = use_smoltcp; } + if let Some(disable_ipv6) = self.disable_ipv6 { + flags.enable_ipv6 = !disable_ipv6; + } + if let Some(enable_kcp_proxy) = self.enable_kcp_proxy { flags.enable_kcp_proxy = enable_kcp_proxy; } @@ -853,6 +857,7 @@ impl NetworkConfig { result.latency_first = Some(flags.latency_first); result.dev_name = Some(flags.dev_name.clone()); result.use_smoltcp = Some(flags.use_smoltcp); + result.disable_ipv6 = Some(!flags.enable_ipv6); result.enable_kcp_proxy = Some(flags.enable_kcp_proxy); result.disable_kcp_input = Some(flags.disable_kcp_input); result.enable_quic_proxy = Some(flags.enable_quic_proxy); @@ -1096,6 +1101,7 @@ mod tests { flags.latency_first = rng.gen_bool(0.5); flags.dev_name = format!("etun{}", rng.gen_range(0..10)); flags.use_smoltcp = rng.gen_bool(0.3); + flags.enable_ipv6 = rng.gen_bool(0.8); flags.enable_kcp_proxy = rng.gen_bool(0.5); flags.disable_kcp_input = rng.gen_bool(0.3); flags.enable_quic_proxy = rng.gen_bool(0.5); diff --git a/easytier/src/proto/web.proto b/easytier/src/proto/web.proto index d290251..195047a 100644 --- a/easytier/src/proto/web.proto +++ b/easytier/src/proto/web.proto @@ -42,6 +42,7 @@ message NetworkConfig { optional string dev_name = 20; optional bool use_smoltcp = 21; + optional bool disable_ipv6 = 47; optional bool enable_kcp_proxy = 22; optional bool disable_kcp_input = 23; optional bool disable_p2p = 24;