update common options (#2)

This commit is contained in:
汐殇 2024-08-05 15:31:20 +08:00 committed by pompurin404
parent 179a87d4bf
commit 951cd85c12
No known key found for this signature in database
5 changed files with 48 additions and 2 deletions

View File

@ -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') {

View File

@ -12,12 +12,15 @@ export const defaultControledMihomoConfig: Partial<IMihomoConfig> = {
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

View File

@ -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 = () => {
}}
/>
</SettingItem>
<SettingItem title="日志等级">
<SettingItem title="使用RTT延迟测试" divider>
<Switch
size="sm"
isSelected={delay}
onValueChange={(v) => {
onChange({ 'unified-delay': v })
}}
/>
</SettingItem>
<SettingItem title="日志等级" divider>
<Select
className="w-[100px]"
size="sm"
@ -166,6 +177,20 @@ const Mihomo: React.FC = () => {
<SelectItem key="debug"></SelectItem>
</Select>
</SettingItem>
<SettingItem title="查找进程">
<Select
className="w-[100px]"
size="sm"
selectedKeys={new Set([mode])}
onSelectionChange={(v) => {
onChange({ 'find-process-mode': v.currentKey as FindProcessMode })
}}
>
<SelectItem key="strict"></SelectItem>
<SelectItem key="off"></SelectItem>
<SelectItem key="always"></SelectItem>
</Select>
</SettingItem>
</SettingCard>
</BasePage>
)

View File

@ -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 = () => {
}}
/>
</SettingItem>
{platform === 'linux' && (
<SettingItem title="自动设置TCP重定向" divider>
<Switch
size="sm"
isSelected={values.autoRedirect}
onValueChange={(v) => {
setValues({ ...values, autoRedirect: v })
}}
/>
</SettingItem>
)}
<SettingItem title="自动选择流量出口接口" divider>
<Switch
size="sm"

View File

@ -4,6 +4,7 @@ type SysProxyMode = 'auto' | 'manual'
type MihomoGroupType = 'Selector'
type MihomoProxyType = 'Shadowsocks'
type TunStack = 'gvisor' | 'mixed' | 'system'
type FindProcessMode = 'off' | 'strict' | 'always'
interface IMihomoVersion {
version: string
@ -177,7 +178,9 @@ interface IMihomoConfig {
mode: OutboundMode
'mixed-port': number
'allow-lan': boolean
'unified-delay': boolean
'log-level': LogLevel
'find-process-mode': FindProcessMode
'socks-port'?: number
port?: number
proxies?: []