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": "텔넷",
"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": "현재 호스트 {{sourcePort}}에서 SOCKS.",
"forwardDescriptionClientLocal": "로컬 {{sourcePort}} → 원격 {{endpointPort}}.",
"forwardDescriptionClientRemote": "원격 {{sourcePort}} → 로컬 {{endpointPort}}.",
"forwardDescriptionClientDynamic": "로컬 포트 {{sourcePort}}에서 SOCKS.",
"summaryClientLocal": "{{localHost}}:{{localPort}} → {{remoteHost}}:{{remotePort}} (경유: {{endpoint}})",
"summaryClientRemote": "{{remoteHost}}:{{remotePort}} on {{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": "대시보드",