feat: convert ssh tunnels into a plugin

This commit is contained in:
LukeGus committed 2026-09-23 17:27:28 -05:00
1 parent c85c1fdb86
commit 1682861853
220 files changed
+36928 -11374

No files matched your search

+3 -130
View File
@@ -671,7 +671,6 @@
"home": "首页",
"terminal": "终端",
"localTerminal": "本地终端",
"tunnels": "隧道",
"fileManager": "文件管理器",
"serverStats": "主机指标",
"admin": "管理",
@@ -714,7 +713,6 @@
"macros": "宏",
"hostManager": "主机管理器",
"credentials": "凭据",
"portForwarding": "转发",
"connections": "连接",
"serial": "串口",
"keepSideMenuOpen": "保持菜单打开",
@@ -765,7 +763,6 @@
"tabTerminal": "终端",
"tabRdp": "RDP",
"tabVnc": "VNC",
"tabTunnels": "隧道",
"tabStats": "主机指标",
"tabTelnet": "Telnet",
"tabSharing": "共享",
@@ -1071,31 +1068,8 @@
"startupSnippetLabel": "启动代码片段",
"keepaliveIntervalLabel": "保活间隔(秒)",
"maxKeepaliveMisses": "最大保活失败次数",
"tunnelSettings": "隧道设置",
"enableTunneling": "启用隧道",
"enableTunnelingDesc": "为此主机启用 SSH 隧道功能",
"serverTunnelsSection": "服务器隧道",
"addTunnelBtn": "添加隧道",
"noTunnelsConfigured": "未配置隧道。",
"tunnelLabel": "隧道 {{number}}",
"tunnelType": "隧道类型",
"tunnelModeLocalDesc": "将本地端口转发到远程服务器(或可从其访问的主机)上的端口。",
"tunnelModeRemoteDesc": "将远程服务器上的端口转发回您机器上的本地端口。",
"tunnelModeDynamicDesc": "在本地端口上创建 SOCKS5 代理,用于动态端口转发。",
"sameHost": "此主机(直接隧道)",
"endpointHost": "端点主机",
"endpointHostPlaceholder": "相同主机、SSH 主机或可访问的主机/IP",
"endpointPort": "端点端口",
"bindHost": "绑定主机",
"sourcePort": "源端口",
"maxRetries": "最大重试次数",
"retryIntervalS": "重试间隔(秒)",
"autoStartLabel": "自动启动",
"autoStartDesc": "主机加载时自动连接此隧道",
"tunnelConnecting": "隧道连接中...",
"tunnelDisconnected": "隧道已断开连接",
"failedToConnectTunnel": "连接失败",
"failedToDisconnectTunnel": "断开连接失败",
"enableTmuxMonitor": "启用 Tmux 监控",
"enableTmuxMonitorDesc": "在 Tmux 监控中显示此主机,并将其 tmux 操作添加到侧边栏",
"enableTerminalToolbar": "启用终端工具栏",
@@ -1326,12 +1300,9 @@
"refreshBtn": "刷新",
"addTag": "添加标签...",
"deleteConfirmBtn": "删除",
"tunnelRequirementsText": "SSH 服务器必须在 /etc/ssh/sshd_config 中设置 GatewayPorts yes、AllowTcpForwarding yes 和 PermitRootLogin yes。",
"deleteHostConfirm": "删除 \"{{name}}\"?",
"enableAtLeastOneProtocol": "请至少启用上述一种协议以配置认证和连接设置。",
"keyPassphrase": "密钥密码",
"connectBtn": "连接",
"disconnectBtn": "断开",
"basicInformation": "基本信息",
"authDetailsSection": "认证详情",
"credTypeLabel": "类型",
@@ -1952,100 +1923,26 @@
"transferFailedRetryHint": "部分数据已保留在目标位置。连接恢复后重试将继续。"
},
"tunnels": {
"noSshTunnels": "无 SSH 隧道",
"createFirstTunnelMessage": "您尚未创建任何 SSH 隧道。在主机管理器中配置隧道连接以开始使用。",
"connected": "已连接",
"disconnected": "已断开",
"connecting": "连接中...",
"error": "错误",
"canceling": "取消中...",
"connect": "连接",
"disconnect": "断开",
"cancel": "取消",
"port": "端口",
"localPort": "本地端口",
"remotePort": "远程端口",
"destinationPort": "目的港",
"currentHostPort": "当前主机端口",
"endpointPort": "端点端口",
"bindIp": "本地 IP",
"localAddress": "本地地址",
"remoteAddress": "远程地址",
"destinationAddress": "目的地地址",
"remoteBindAddress": "远程绑定地址",
"intermediateHost": "中间宿主",
"endpointSshConfig": "端点 SSH 配置",
"endpointSshHost": "端点 SSH 主机",
"endpointSshHostPlaceholder": "选择已配置的主机",
"endpointSshHostRequired": "为每个客户端隧道选择一个端点 SSH 主机。",
"attempt": "尝试 {{current}}/{{max}}",
"nextRetryIn": "{{seconds}} 秒后重试",
"clientTunnels": "客户端隧道",
"clientTunnel": "客户端隧道",
"addClientTunnel": "添加客户端隧道",
"noClientTunnels": "此桌面未配置客户端隧道。",
"tunnelName": "隧道名称",
"remoteHost": "远程主机",
"autoStart": "自动启动",
"clientAutoStartDesc": "在此桌面客户端打开时启动并保持连接。",
"clientManualStartDesc": "从此行使用启动和停止。Termix 不会自动启动它。",
"clientRemoteServerNote": "远程转发可能需要在端点 SSH 服务器上设置 AllowTcpForwarding 和 GatewayPorts。此桌面断开连接时远程端口将关闭。",
"clientTunnelStarted": "客户端隧道已启动",
"clientTunnelStopped": "客户端隧道已停止",
"tunnelTestSucceeded": "隧道测试成功",
"tunnelTestFailed": "隧道测试失败",
"localSaved": "客户端隧道已保存",
"localSaveError": "保存本地客户端隧道失败",
"invalidBindIp": "本地 IP 必须是有效的 IPv4 地址。",
"invalidLocalTargetIp": "本地目标 IP 必须是有效的 IPv4 地址。",
"invalidRemoteAddress": "需要远程地址。",
"invalidLocalPort": "本地端口必须在 1 到 65535 之间。",
"invalidRemotePort": "远程端口必须在 1 到 65535 之间。",
"invalidLocalTargetPort": "本地目标端口必须在 1 到 65535 之间。",
"invalidEndpointPort": "端点端口必须在 1 到 65535 之间。",
"duplicateAutoStartBind": "只有一个自启动客户端隧道可以使用 {{bind}}。",
"manualControlError": "更新隧道状态失败。",
"active": "活跃",
"start": "启动",
"stop": "停止",
"test": "测试",
"type": "隧道类型",
"typeLocal": "本地 (-L)",
"typeRemote": "远程 (-R)",
"typeDynamic": "动态 (-D)",
"typeServerLocalDesc": "当前主机至端点。",
"typeServerRemoteDesc": "端点回连至当前主机。",
"typeClientLocalDesc": "本地计算机至端点。",
"typeClientRemoteDesc": "端点回连至本地计算机。",
"typeClientDynamicDesc": "本地计算机上的 SOCKS。",
"typeDynamicDesc": "通过 SSH 转发 SOCKS5 CONNECT 流量",
"forwardDescriptionServerLocal": "当前主机 {{sourcePort}} → 端点 {{endpointPort}}。",
"forwardDescriptionServerRemote": "端点 {{endpointPort}} → 当前主机 {{sourcePort}}。",
"forwardDescriptionServerDynamic": "当前主机上的 SOCKS {{sourcePort}}。",
"forwardDescriptionClientLocal": "本地 {{sourcePort}} → 远程 {{endpointPort}}。",
"forwardDescriptionClientRemote": "远程 {{sourcePort}} → 本地 {{endpointPort}}。",
"forwardDescriptionClientDynamic": "本地端口 {{sourcePort}} 上的 SOCKS。",
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} 经由 {{endpoint}}",
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} 在 {{endpoint}} → {{localHost}}:{{localPort}}",
"summaryClientDynamic": "{{localHost}}:{{localPort}} → SOCKS 通过 {{endpoint}}",
"autoNameClientLocal": "本地 {{localPort}} → {{endpoint}} {{remotePort}}",
"autoNameClientRemote": "{{endpoint}} {{remotePort}} → 本地 {{localPort}}",
"autoNameClientDynamic": "SOCKS {{localPort}} 通过 {{endpoint}}",
"route": "路由:",
"lastStarted": "最后启动",
"lastTested": "最后测试",
"lastError": "最后错误",
"maxRetries": "最大重试次数",
"maxRetriesDescription": "最大重试尝试次数。",
"retryInterval": "重试间隔(秒)",
"retryIntervalDescription": "重试间隔等待时间。",
"local": "本地",
"remote": "远程",
"destination": "目标",
"host": "主机",
"mode": "模式",
"noHostSelected": "未选择主机",
"working": "处理中..."
"remote": "远程"
},
"cardGrid": {
"dragToMove": "拖动以移动",
@@ -2175,37 +2072,13 @@
},
"profile": {
"c2sTunnelConfigDesc": "本地桌面隧道目标为已配置的 SSH 主机。",
"c2sTunnelPresets": "客户端隧道预设",
"c2sTunnelPresetsDesc": "将本桌面客户端的本地隧道列表保存为命名服务器预设,或将预设加载回此客户端。",
"c2sTunnelPresetsUnavailable": "客户端隧道预设仅在桌面客户端中可用。",
"c2sPresetName": "预设名称",
"c2sPresetNamePlaceholder": "客户端预设名称",
"c2sPresetToLoad": "要加载的预设",
"c2sNoPresetSelected": "未选择预设",
"c2sNoPresets": "无保存的预设",
"c2sLoadPreset": "加载",
"c2sCurrentLocalConfig": "此桌面上已配置 {{count}} 条本地客户端隧道。",
"c2sPresetSyncNote": "预设是显式快照;加载预设将替换此桌面客户端的本地客户端隧道列表。",
"c2sPresetSaved": "客户端隧道预设已保存",
"c2sPresetLoaded": "客户端隧道预设已在本地加载",
"c2sPresetRenamed": "客户端隧道预设已重命名",
"c2sPresetDeleted": "客户端隧道预设已删除",
"c2sPresetLoadError": "加载客户端隧道预设失败"
"c2sTunnelPresetsDesc": "将本桌面客户端的本地隧道列表保存为命名服务器预设,或将预设加载回此客户端。"
},
"placeholders": {
"maxRetries": "3",
"retryInterval": "10",
"language": "语言",
"keyPassword": "密钥密码",
"pastePrivateKey": "在此粘贴您的私钥...",
"localListenerHost": "127.0.0.1 (本地监听)",
"localTargetHost": "127.0.0.1 (此计算机上的目标)",
"remoteTargetHost": "127.0.0.1(来自端点的目标)",
"remoteBindHost": "127.0.0.1(监听端点)",
"socksListenerHost": "127.0.0.1(SOCKS 监听器)",
"enterPassword": "输入您的密码",
"defaultPort": "22",
"defaultEndpointPort": "224"
"enterPassword": "输入您的密码"
},
"dashboard": {
"title": "仪表盘",