diff --git a/src/components/setting/mods/clash-core-viewer.tsx b/src/components/setting/mods/clash-core-viewer.tsx
index ecef0a66ded22953dcce9aa51291c7ad9969967a..f0436847acf9cb94983d83a23e82e1a8e5a75e08 100644
--- a/src/components/setting/mods/clash-core-viewer.tsx
+++ b/src/components/setting/mods/clash-core-viewer.tsx
@@ -59,6 +59,8 @@ export const ClashCoreViewer = forwardRef<DialogRef>((props, ref) => {
   const onGrant = useLockFn(async (core: string) => {
     try {
       await grantPermission(core);
+      // 自动重启
+      if (core === clash_core) await restartSidecar();
       Notice.success(`Successfully grant permission to ${core}`, 1000);
     } catch (err: any) {
       Notice.error(err?.message || err.toString());