From c2f535ead4b9de45eccacd1c8fb77711e07255e5 Mon Sep 17 00:00:00 2001 From: kevin Date: Wed, 12 Mar 2025 23:19:56 +0800 Subject: [PATCH] import/export network config for web (#676) * import/export network config for web * add socks5 config for web --- .../frontend-lib/src/components/Config.vue | 20 ++++++- easytier-web/frontend-lib/src/locales/cn.yaml | 7 +++ easytier-web/frontend-lib/src/locales/en.yaml | 7 +++ .../frontend-lib/src/types/network.ts | 7 +++ .../src/components/ConfigGenerator.vue | 6 +- .../src/components/DeviceManagement.vue | 58 +++++++++++++++++++ easytier/src/launcher.rs | 14 +++++ easytier/src/proto/web.proto | 3 + 8 files changed, 118 insertions(+), 4 deletions(-) diff --git a/easytier-web/frontend-lib/src/components/Config.vue b/easytier-web/frontend-lib/src/components/Config.vue index ca42e314..e682268d 100644 --- a/easytier-web/frontend-lib/src/components/Config.vue +++ b/easytier-web/frontend-lib/src/components/Config.vue @@ -154,6 +154,7 @@ const bool_flags: BoolFlag[] = [ { field: 'relay_all_peer_rpc', help: 'relay_all_peer_rpc_help' }, { field: 'multi_thread', help: 'multi_thread_help' }, { field: 'proxy_forward_by_system', help: 'proxy_forward_by_system_help' }, + { field: 'disable_encryption', help: 'disable_encryption_help' }, ] @@ -162,7 +163,7 @@ const bool_flags: BoolFlag[] = [
-
+
@@ -345,6 +346,23 @@ const bool_flags: BoolFlag[] = [
+
+
+
+ + +
+ +
+
+ +
+
+
+
+
diff --git a/easytier-web/frontend-lib/src/locales/cn.yaml b/easytier-web/frontend-lib/src/locales/cn.yaml index cfa293da..a50b4497 100644 --- a/easytier-web/frontend-lib/src/locales/cn.yaml +++ b/easytier-web/frontend-lib/src/locales/cn.yaml @@ -106,6 +106,9 @@ multi_thread_help: 使用多线程运行时 proxy_forward_by_system: 系统转发 proxy_forward_by_system_help: 通过系统内核转发子网代理数据包,禁用内置NAT +disable_encryption: 禁用加密 +disable_encryption_help: 禁用对等节点通信的加密,默认为false,必须与对等节点相同 + relay_network_whitelist: 网络白名单 relay_network_whitelist_help: | 仅转发白名单网络的流量,支持通配符字符串。多个网络名称间可以使用英文空格间隔。 @@ -115,6 +118,10 @@ relay_network_whitelist_help: | manual_routes: 自定义路由 manual_routes_help: 手动分配路由CIDR,将禁用子网代理和从对等节点传播的wireguard路由。例如:192.168.0.0/16 +socks5: socks5服务器 +socks5_help: | + 启用 socks5 服务器,允许 socks5 客户端访问虚拟网络. 格式: <端口>,例如:1080 + exit_nodes: 出口节点列表 exit_nodes_help: 转发所有流量的出口节点,虚拟IPv4地址,优先级由列表顺序决定 diff --git a/easytier-web/frontend-lib/src/locales/en.yaml b/easytier-web/frontend-lib/src/locales/en.yaml index 5e0266df..b6f6bf55 100644 --- a/easytier-web/frontend-lib/src/locales/en.yaml +++ b/easytier-web/frontend-lib/src/locales/en.yaml @@ -105,6 +105,9 @@ multi_thread_help: Use multi-thread runtime proxy_forward_by_system: System Forward proxy_forward_by_system_help: Forward packet to proxy networks via system kernel, disable internal nat for network proxy +disable_encryption: Disable Encryption +disable_encryption_help: Disable encryption for peers communication, default is false, must be same with peers + relay_network_whitelist: Network Whitelist relay_network_whitelist_help: | Only forward traffic from the whitelist networks, supporting wildcard strings, multiple network names can be separated by spaces. @@ -115,6 +118,10 @@ manual_routes: Manual Route manual_routes_help: | Assign routes cidr manually, will disable subnet proxy and wireguard routes propagated from peers. e.g.:192.168.0.0/16 +socks5: Socks5 Server +socks5_help: | + Enable socks5 server, allow socks5 client to access virtual network. format: , e.g.: 1080 + exit_nodes: Exit Nodes exit_nodes_help: Exit nodes to forward all traffic to, a virtual ipv4 address, priority is determined by the order of the list diff --git a/easytier-web/frontend-lib/src/types/network.ts b/easytier-web/frontend-lib/src/types/network.ts index dd508dee..e7350d8e 100644 --- a/easytier-web/frontend-lib/src/types/network.ts +++ b/easytier-web/frontend-lib/src/types/network.ts @@ -46,6 +46,7 @@ export interface NetworkConfig { relay_all_peer_rpc?: boolean multi_thread?: boolean proxy_forward_by_system?: boolean + disable_encryption?: boolean enable_relay_network_whitelist?: boolean relay_network_whitelist: string[] @@ -54,6 +55,9 @@ export interface NetworkConfig { routes: string[] exit_nodes: string[] + + enable_socks5?: boolean + socks5_port: number } export function DEFAULT_NETWORK_CONFIG(): NetworkConfig { @@ -99,11 +103,14 @@ export function DEFAULT_NETWORK_CONFIG(): NetworkConfig { relay_all_peer_rpc: false, multi_thread: true, proxy_forward_by_system: false, + disable_encryption: false, enable_relay_network_whitelist: false, relay_network_whitelist: [], enable_manual_routes: false, routes: [], exit_nodes: [], + enable_socks5: false, + socks5_port: 1080, } } diff --git a/easytier-web/frontend/src/components/ConfigGenerator.vue b/easytier-web/frontend/src/components/ConfigGenerator.vue index 3c870f73..2b79884f 100644 --- a/easytier-web/frontend/src/components/ConfigGenerator.vue +++ b/easytier-web/frontend/src/components/ConfigGenerator.vue @@ -27,11 +27,11 @@ const generateConfig = (config: NetworkTypes.NetworkConfig) => {