新增支持隧道和转发选择出口ip

This commit is contained in:
qaq
2025-08-07 13:50:17 +08:00
parent e158e6a0bc
commit 791cde3eb2
19 changed files with 203 additions and 50 deletions
+18
View File
@@ -54,6 +54,7 @@ interface Forward {
inIp: string;
inPort: number;
remoteAddr: string;
interfaceName?: string;
strategy: string;
status: number;
inFlow: number;
@@ -79,6 +80,7 @@ interface ForwardForm {
tunnelId: number | null;
inPort: number | null;
remoteAddr: string;
interfaceName?: string;
strategy: string;
}
@@ -188,6 +190,7 @@ export default function ForwardPage() {
tunnelId: null,
inPort: null,
remoteAddr: '',
interfaceName: '',
strategy: 'fifo'
});
@@ -440,6 +443,7 @@ export default function ForwardPage() {
tunnelId: null,
inPort: null,
remoteAddr: '',
interfaceName: '',
strategy: 'fifo'
});
setSelectedTunnel(null);
@@ -457,6 +461,7 @@ export default function ForwardPage() {
tunnelId: forward.tunnelId,
inPort: forward.inPort,
remoteAddr: forward.remoteAddr.split(',').join('\n'),
interfaceName: forward.interfaceName || '',
strategy: forward.strategy || 'fifo'
});
const tunnel = tunnels.find(t => t.id === forward.tunnelId);
@@ -535,6 +540,7 @@ export default function ForwardPage() {
tunnelId: form.tunnelId,
inPort: form.inPort,
remoteAddr: processedRemoteAddr,
interfaceName: form.interfaceName,
strategy: addressCount > 1 ? form.strategy : 'fifo'
};
res = await updateForward(updateData);
@@ -545,6 +551,7 @@ export default function ForwardPage() {
tunnelId: form.tunnelId,
inPort: form.inPort,
remoteAddr: processedRemoteAddr,
interfaceName: form.interfaceName,
strategy: addressCount > 1 ? form.strategy : 'fifo'
};
res = await createForward(createData);
@@ -1620,6 +1627,17 @@ export default function ForwardPage() {
maxRows={6}
/>
<Input
label="出口网卡名或IP"
placeholder="请输入出口网卡名或IP"
value={form.interfaceName}
onChange={(e) => setForm(prev => ({ ...prev, interfaceName: e.target.value }))}
isInvalid={!!errors.interfaceName}
errorMessage={errors.interfaceName}
variant="bordered"
description="用于多IP服务器指定使用那个IP请求远程地址,不懂的默认为空就行"
/>
{getAddressCount(form.remoteAddr) > 1 && (
<Select
label="负载策略"