diff --git a/src/main/core/manager.ts b/src/main/core/manager.ts index aa21757..f80f840 100644 --- a/src/main/core/manager.ts +++ b/src/main/core/manager.ts @@ -977,7 +977,10 @@ async function getOriginDNS(): Promise { async function setDNS(dns: string): Promise { const service = await getDefaultService() const execPromise = promisify(exec) - await execPromise(`networksetup -setdnsservers "${service}" ${dns}`) + // networksetup 需要 root 权限,通过 osascript 请求管理员权限执行 + const shell = `networksetup -setdnsservers "${service}" ${dns}` + const command = `do shell script "${shell}" with administrator privileges` + await execPromise(`osascript -e '${command}'`) } async function setPublicDNS(): Promise {