diff --git a/src/pages/settings.tsx b/src/pages/settings.tsx index 38b058f..ce56260 100644 --- a/src/pages/settings.tsx +++ b/src/pages/settings.tsx @@ -151,6 +151,9 @@ function SettingsForm({ ...initialConfig, TCPListen: toAddrString(initialConfig.TCPListen), UDPListen: toAddrString(initialConfig.UDPListen), + webListen: + initialConfig.webListen ?? + (initialConfig.webPort ? `http://0.0.0.0:${initialConfig.webPort}` : 'http://0.0.0.0:4665'), })) const [tunEnabled, setTunEnabled] = useState(() => initialConfig.enableTUN ?? @@ -209,9 +212,19 @@ function SettingsForm({ form.denyConnectionBroadcast ?? form.denyLineTableBroadcast ?? false + const webListen = form.webListen?.trim() || 'http://0.0.0.0:4665' + let webPort = 4665 + try { + const parsedPort = new URL(webListen).port + if (parsedPort) webPort = parseInt(parsedPort, 10) + } catch { + // Java backend validates the canonical listen address. + } const updatedConfig: Record = { ...form, + webListen, + webPort, externalEndpoints: updatedExternalEndpoints, openConnections: updatedExternalEndpoints, autoConnections: updatedAutoConnections, @@ -485,23 +498,21 @@ function SettingsForm({ )} - Web 控制台端口 + Web API 监听地址 setForm((prev) => ({ ...prev, - webPort: parseInt(e.target.value) || 4665, + webListen: e.target.value, })) } /> - Web API 与前端仪表盘托管监听端口(默认 4665) + Web API 与前端仪表盘托管监听地址(默认 http://0.0.0.0:4665) diff --git a/src/types/api.ts b/src/types/api.ts index d6a7fc9..086dc19 100644 --- a/src/types/api.ts +++ b/src/types/api.ts @@ -109,6 +109,7 @@ export interface KLALBControllerConfig { enableTUN?: boolean TUNName?: string | null webUI?: boolean + webListen?: string webPort?: number nogui?: boolean TCPListen?: string