diff --git a/src/pages/proxy.tsx b/src/pages/proxy.tsx
index 2bbcbcc051dc4da3a3829704e846ebb32d5a442e..1c36ca70d3c11f693760fdc4f9edd73f9f144b14 100644
--- a/src/pages/proxy.tsx
+++ b/src/pages/proxy.tsx
@@ -21,11 +21,13 @@ const ProxyPage = () => {
         Proxy Groups
       </Typography>
 
-      <List sx={{ borderRadius: 1, boxShadow: 2 }}>
-        {groups.map((group) => (
-          <ProxyGroup key={group.name} group={group} />
-        ))}
-      </List>
+      {groups.length > 0 && (
+        <List sx={{ borderRadius: 1, boxShadow: 2 }}>
+          {groups.map((group) => (
+            <ProxyGroup key={group.name} group={group} />
+          ))}
+        </List>
+      )}
     </Box>
   );
 };
diff --git a/src/services/proxy.ts b/src/services/proxy.ts
index 452926ea8ae499a22c2c6d188c686b68dd54ba23..6cb06d6c47c216b7e2c4571491994ed0da7de27e 100644
--- a/src/services/proxy.ts
+++ b/src/services/proxy.ts
@@ -34,6 +34,8 @@ export async function getProxyInfo() {
     each.all = each.all?.map((item) => results[item]).filter((e) => e);
   });
 
+  groups.sort((a, b) => b.name.localeCompare(a.name));
+
   return {
     global,
     groups,