diff --git a/src/main/core/manager.ts b/src/main/core/manager.ts index 4250129..7736a9e 100644 --- a/src/main/core/manager.ts +++ b/src/main/core/manager.ts @@ -75,7 +75,7 @@ export function grantCorePermition(corePath: string): void { try { if (process.platform === 'linux') { execSync( - `echo "${password}" | sudo -S setcap cap_net_bind_service,cap_net_admin,cap_dac_override,cap_net_raw=+ep ${corePath}` + `echo "${password}" | sudo -S setcap cap_net_bind_service,cap_net_admin,cap_sys_ptrace,cap_dac_read_search,cap_dac_override,cap_net_raw=+ep ${corePath}` ) } if (process.platform === 'darwin') { diff --git a/src/main/utils/template.ts b/src/main/utils/template.ts index 786bd48..3ff283a 100644 --- a/src/main/utils/template.ts +++ b/src/main/utils/template.ts @@ -12,12 +12,15 @@ export const defaultControledMihomoConfig: Partial = { mode: 'rule', 'mixed-port': 7890, 'allow-lan': false, + 'unified-delay': false, 'log-level': 'info', + 'find-process-mode': 'strict', tun: { enable: false, device: 'Mihomo', stack: 'mixed', 'auto-route': true, + 'auto-redirect': false, 'auto-detect-interface': true, 'dns-hijack': ['any:53'], mtu: 1500 diff --git a/src/renderer/src/pages/mihomo.tsx b/src/renderer/src/pages/mihomo.tsx index f9e7087..5c6b6e4 100644 --- a/src/renderer/src/pages/mihomo.tsx +++ b/src/renderer/src/pages/mihomo.tsx @@ -21,7 +21,9 @@ const Mihomo: React.FC = () => { 'external-controller': externalController, secret, 'log-level': level = 'info', + 'find-process-mode': mode = 'strict', 'allow-lan': lan, + 'unified-delay': delay, 'mixed-port': mixedPort = 7890 } = controledMihomoConfig || {} @@ -150,7 +152,16 @@ const Mihomo: React.FC = () => { }} /> - + + { + onChange({ 'unified-delay': v }) + }} + /> + + + + + ) diff --git a/src/renderer/src/pages/tun.tsx b/src/renderer/src/pages/tun.tsx index decd0ca..abed48d 100644 --- a/src/renderer/src/pages/tun.tsx +++ b/src/renderer/src/pages/tun.tsx @@ -4,6 +4,7 @@ import SettingCard from '@renderer/components/base/base-setting-card' import SettingItem from '@renderer/components/base/base-setting-item' import { useControledMihomoConfig } from '@renderer/hooks/use-controled-mihomo-config' import { restartCore } from '@renderer/utils/ipc' +import { platform } from '@renderer/utils/init' import React, { Key, useState } from 'react' const Tun: React.FC = () => { @@ -13,6 +14,7 @@ const Tun: React.FC = () => { device = 'Mihomo', stack = 'mixed', 'auto-route': autoRoute = true, + 'auto-redirect': autoRedirect = false, 'auto-detect-interface': autoDetectInterface = true, 'dns-hijack': dnsHijack = ['any:53'], 'strict-route': strictRoute = false, @@ -23,6 +25,7 @@ const Tun: React.FC = () => { device, stack, autoRoute, + autoRedirect, autoDetectInterface, dnsHijack, strictRoute, @@ -47,6 +50,7 @@ const Tun: React.FC = () => { device: values.device, stack: values.stack, 'auto-route': values.autoRoute, + 'auto-redirect': values.autoRedirect, 'auto-detect-interface': values.autoDetectInterface, 'dns-hijack': values.dnsHijack, 'strict-route': values.strictRoute, @@ -100,6 +104,17 @@ const Tun: React.FC = () => { }} /> + {platform === 'linux' && ( + + { + setValues({ ...values, autoRedirect: v }) + }} + /> + + )}