IT HAS TCP/UDP OPTIONS

This commit is contained in:
2026-03-21 15:17:29 +02:00
parent 190b8f9990
commit 665c1fcc97

View File

@@ -40,36 +40,21 @@ async function applyRules() {
await opnsenseRequest('POST', '/api/firewall/d_nat/apply'); await opnsenseRequest('POST', '/api/firewall/d_nat/apply');
} }
export function enqueueNatAdd(ip, port, proto = 'tcp') { export function enqueueNatAdd(ip, port, proto = 'tcp/udp') {
enqueue(async () => { enqueue(async () => {
info(`adding rule udp+tcp at ${ip}:${port}`); info(`adding rule udp+tcp at ${ip}:${port}`);
await opnsenseRequest('POST', '/api/firewall/d_nat/addRule', { await opnsenseRequest('POST', '/api/firewall/d_nat/addRule', {
rule: { rule: {
interface: 'wan', interface: 'wan',
protocol: 'tcp', protocol: 'tcp/udp',
destination: { destination: {
network: 'wanip', network: 'wanip',
port: `${port}`, port: `${port}`,
}, },
target: ip, target: ip,
'local-port': `${port}`, 'local-port': `${port}`,
descr: `pelican-${ip}-${port}-tcp`, descr: `pelican-${ip}-${port}`,
disabled: '0',
}
});
await opnsenseRequest('POST', '/api/firewall/d_nat/addRule', {
rule: {
interface: 'wan',
protocol: 'udp',
destination: {
network: 'wanip',
port: `${port}`,
},
target: ip,
'local-port': `${port}`,
descr: `pelican-${ip}-${port}-udp`,
disabled: '0', disabled: '0',
} }
}); });
@@ -79,7 +64,7 @@ export function enqueueNatAdd(ip, port, proto = 'tcp') {
}); });
} }
export function enqueueNatRemove(ip, port, proto = 'tcp') { export function enqueueNatRemove(ip, port, proto = 'tcp/udp') {
enqueue(async () => { enqueue(async () => {
info(`deleting rule udp+tcp at ${ip}:${port}`); info(`deleting rule udp+tcp at ${ip}:${port}`);
@@ -92,10 +77,7 @@ export function enqueueNatRemove(ip, port, proto = 'tcp') {
const rows = result?.rows || []; const rows = result?.rows || [];
for (const rule of rows) { for (const rule of rows) {
if ( if (rule.descr === `pelican-${ip}-${port}`) {
rule.descr === `pelican-${ip}-${port}-udp` ||
rule.descr === `pelican-${ip}-${port}-tcp`
) {
await opnsenseRequest('POST', `/api/firewall/d_nat/delRule/${rule.uuid}`); await opnsenseRequest('POST', `/api/firewall/d_nat/delRule/${rule.uuid}`);
} }
} }