+
+
+ {{ t('peer_count') }}
-
-
-
- {{ t('upload') }}
-
-
- {{ txRate }}/s
-
-
-
-
-
- {{ t('download') }}
-
-
- {{ rxRate }}/s
-
+
+ {{ peerCount }}
-
+
-
-
+
+
{{ t('peer_info') }}
-
-
-
-
-
-
- {{
- slotProps.data.route.hostname }}
-
-
-
- {{ t('status.server') }}
-
-
- {{ t('status.relay') }}
-
-
-
-
-
-
-
-
-
-
-
- {{ version(slotProps.data) }}
-
-
-
-
-
+
+
+
+
+
+ {{
+ slotProps.data.route.hostname }}
+
+
+
+ {{ t('status.server') }}
+
+
+ {{ t('status.relay') }}
+
+
+
+
+
+
+
+
+
+
+
+ {{ version(slotProps.data) }}
+
+
+
+
diff --git a/easytier-web/frontend-lib/src/locales/cn.yaml b/easytier-web/frontend-lib/src/locales/cn.yaml
index 67a8339..cfa293d 100644
--- a/easytier-web/frontend-lib/src/locales/cn.yaml
+++ b/easytier-web/frontend-lib/src/locales/cn.yaml
@@ -92,6 +92,32 @@ bind_device_help: 仅使用物理网卡,避免 EasyTier 通过其他虚拟网
no_tun: 无 TUN 模式
no_tun_help: 不使用 TUN 网卡,适合无管理员权限时使用。本节点仅允许被访问。访问其他节点需要使用 SOCK5
+enable_exit_node: 启用出口节点
+enable_exit_node_help: 允许此节点成为出口节点
+
+relay_all_peer_rpc: 转发RPC包
+relay_all_peer_rpc_help: |
+ 允许转发所有对等节点的RPC数据包,即使对等节点不在转发网络白名单中。
+ 这可以帮助白名单外网络中的对等节点建立P2P连接。
+
+multi_thread: 启用多线程
+multi_thread_help: 使用多线程运行时
+
+proxy_forward_by_system: 系统转发
+proxy_forward_by_system_help: 通过系统内核转发子网代理数据包,禁用内置NAT
+
+relay_network_whitelist: 网络白名单
+relay_network_whitelist_help: |
+ 仅转发白名单网络的流量,支持通配符字符串。多个网络名称间可以使用英文空格间隔。
+ 如果该参数为空,则禁用转发。默认允许所有网络。
+ 例如:'*'(所有网络),'def*'(以def为前缀的网络),'net1 net2'(只允许net1和net2)
+
+manual_routes: 自定义路由
+manual_routes_help: 手动分配路由CIDR,将禁用子网代理和从对等节点传播的wireguard路由。例如:192.168.0.0/16
+
+exit_nodes: 出口节点列表
+exit_nodes_help: 转发所有流量的出口节点,虚拟IPv4地址,优先级由列表顺序决定
+
status:
version: 内核版本
local: 本机
diff --git a/easytier-web/frontend-lib/src/locales/en.yaml b/easytier-web/frontend-lib/src/locales/en.yaml
index c157d4d..5e0266d 100644
--- a/easytier-web/frontend-lib/src/locales/en.yaml
+++ b/easytier-web/frontend-lib/src/locales/en.yaml
@@ -91,6 +91,33 @@ bind_device_help: Use only the physical network interface to prevent EasyTier fr
no_tun: No TUN Mode
no_tun_help: Do not use a TUN interface, suitable for environments without administrator privileges. This node is only accessible; accessing other nodes requires SOCKS5.
+enable_exit_node: Enable Exit Node
+enable_exit_node_help: Allow this node to be an exit node
+
+relay_all_peer_rpc: Relay RPC Packets
+relay_all_peer_rpc_help: |
+ Relay all peer rpc packets, even if the peer is not in the relay network whitelist.
+ This can help peers not in relay network whitelist to establish p2p connection.
+
+multi_thread: Multi Thread
+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
+
+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.
+ If this parameter is empty, forwarding is disabled. By default, all networks are allowed.
+ e.g.: '*' (all networks), 'def*' (networks with the prefix 'def'), 'net1 net2' (only allow net1 and net2)
+
+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
+
+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
+
status:
version: Version
local: Local
diff --git a/easytier-web/frontend-lib/src/style.css b/easytier-web/frontend-lib/src/style.css
index 7923211..6df9818 100644
--- a/easytier-web/frontend-lib/src/style.css
+++ b/easytier-web/frontend-lib/src/style.css
@@ -51,4 +51,8 @@
background-color: #0000005d;
}
+}
+
+.v-popper__inner {
+ white-space: pre-wrap;
}
\ No newline at end of file
diff --git a/easytier-web/frontend-lib/src/types/network.ts b/easytier-web/frontend-lib/src/types/network.ts
index b79a29a..dd508de 100644
--- a/easytier-web/frontend-lib/src/types/network.ts
+++ b/easytier-web/frontend-lib/src/types/network.ts
@@ -42,6 +42,18 @@ export interface NetworkConfig {
disable_p2p?: boolean
bind_device?: boolean
no_tun?: boolean
+ enable_exit_node?: boolean
+ relay_all_peer_rpc?: boolean
+ multi_thread?: boolean
+ proxy_forward_by_system?: boolean
+
+ enable_relay_network_whitelist?: boolean
+ relay_network_whitelist: string[]
+
+ enable_manual_routes: boolean
+ routes: string[]
+
+ exit_nodes: string[]
}
export function DEFAULT_NETWORK_CONFIG(): NetworkConfig {
@@ -83,6 +95,15 @@ export function DEFAULT_NETWORK_CONFIG(): NetworkConfig {
disable_p2p: false,
bind_device: true,
no_tun: false,
+ enable_exit_node: false,
+ relay_all_peer_rpc: false,
+ multi_thread: true,
+ proxy_forward_by_system: false,
+ enable_relay_network_whitelist: false,
+ relay_network_whitelist: [],
+ enable_manual_routes: false,
+ routes: [],
+ exit_nodes: [],
}
}
diff --git a/easytier-web/frontend/src/components/DeviceList.vue b/easytier-web/frontend/src/components/DeviceList.vue
index 91cee28..50c36be 100644
--- a/easytier-web/frontend/src/components/DeviceList.vue
+++ b/easytier-web/frontend/src/components/DeviceList.vue
@@ -102,7 +102,7 @@ const selectedDeviceHostname = computed
(() => {
+ class="w-3/5 min-w-96">
diff --git a/easytier-web/frontend/src/components/DeviceManagement.vue b/easytier-web/frontend/src/components/DeviceManagement.vue
index d60ad36..cf594bc 100644
--- a/easytier-web/frontend/src/components/DeviceManagement.vue
+++ b/easytier-web/frontend/src/components/DeviceManagement.vue
@@ -1,5 +1,5 @@