diff --git a/react-ui/src/pages/Peer/data.d.ts b/react-ui/src/pages/Peer/data.d.ts
new file mode 100644
index 0000000..f6f711c
--- /dev/null
+++ b/react-ui/src/pages/Peer/data.d.ts
@@ -0,0 +1,17 @@
+/** Peer 信息 */
+export interface BtTorrentPeer {
+  /** Peer Key */
+  peerKey: string;
+  /** IP 地址 */
+  ip: string;
+  /** 端口号 */
+  port: string;
+  /** 已上传量 */
+  uploaded: string;
+  /** 已下载量 */
+  downloaded: string;
+  /** 剩余量 */
+  left: string;
+  /** 最后活跃时间戳 */
+  lastSeen: string;
+}
diff --git a/react-ui/src/pages/Peer/index.tsx b/react-ui/src/pages/Peer/index.tsx
new file mode 100644
index 0000000..dec06ca
--- /dev/null
+++ b/react-ui/src/pages/Peer/index.tsx
@@ -0,0 +1,60 @@
+import React, { useEffect, useState } from 'react';
+import { Table, Spin, Alert } from 'antd';
+import {listBtTorrentPeers} from "@/pages/Peer/service";
+import {BtTorrentPeer} from "@/pages/Peer/data";
+
+
+interface PeerTableProps {
+  torrentId: number;
+}
+
+const PeerTable: React.FC<PeerTableProps> = ({ torrentId }) => {
+  const [loading, setLoading] = useState<boolean>(false);
+  const [peers, setPeers] = useState<BtTorrentPeer[]>([]);
+  const [error, setError] = useState<string | null>(null);
+
+  useEffect(() => {
+    const fetchPeers = async () => {
+      setLoading(true);
+      try {
+        const data = await listBtTorrentPeers();
+
+        setPeers(data.rows);
+      } catch (err) {
+        setError('Failed to load peer data.');
+      } finally {
+        setLoading(false);
+      }
+    };
+
+    fetchPeers();
+  }, [torrentId]);
+
+  const columns = [
+    { title: 'Peer Key', dataIndex: 'peerKey', key: 'peerKey' },
+    { title: 'IP Address', dataIndex: 'ip', key: 'ip' },
+    { title: 'Port', dataIndex: 'port', key: 'port' },
+    { title: 'Uploaded', dataIndex: 'uploaded', key: 'uploaded' },
+    { title: 'Downloaded', dataIndex: 'downloaded', key: 'downloaded' },
+    { title: 'Left', dataIndex: 'left', key: 'left' },
+    { title: 'Last Seen', dataIndex: 'lastSeen', key: 'lastSeen' },
+  ];
+
+  return (
+    <div>
+      {error && <Alert message={error} type="error" />}
+      {loading ? (
+        <Spin size="large" />
+      ) : (
+        <Table<BtTorrentPeer>
+          columns={columns}
+          dataSource={peers}
+          rowKey="peerKey"
+          pagination={false}
+        />
+      )}
+    </div>
+  );
+};
+
+export default PeerTable;
diff --git a/react-ui/src/pages/Peer/service.ts b/react-ui/src/pages/Peer/service.ts
new file mode 100644
index 0000000..27f09a3
--- /dev/null
+++ b/react-ui/src/pages/Peer/service.ts
@@ -0,0 +1,9 @@
+import {BtTorrentPeer} from "@/pages/Peer/data";
+import {request} from "@umijs/max";
+
+/** 查询种子的 Peer 列表 */
+export async function listBtTorrentPeers() {
+  return request<BtTorrentPeer[]>(`/api/peers`, {
+    method: 'get',
+  });
+}
