diff --git a/webui/src/pages/Routing.jsx b/webui/src/pages/Routing.jsx index 69403e4..b51b996 100644 --- a/webui/src/pages/Routing.jsx +++ b/webui/src/pages/Routing.jsx @@ -1,5 +1,5 @@ import { useState, useEffect } from 'react'; -import { Plus, Trash2, Wifi, Shield, Activity, Settings, Terminal, ArrowRightLeft, RefreshCw } from 'lucide-react'; +import { Plus, Trash2, Wifi, Shield, Activity, Settings, Terminal, ArrowRightLeft, RefreshCw, Info } from 'lucide-react'; import { routingAPI } from '../services/api'; const EMPTY_NAT = { source_network: '', target_interface: 'eth0', masquerade: true, nat_type: 'MASQUERADE', protocol: 'ALL', external_port: '', internal_ip: '', internal_port: '' }; @@ -337,7 +337,7 @@ function Routing() { {showPfForm ? 'Cancel' : 'Add Rule'} } /> -

Forward inbound traffic on a public port to an internal host.

+

Forward inbound traffic on a public port to an internal host. Rules here are stored and re-applied on restart.

{showPfForm && (
@@ -481,9 +481,10 @@ function Routing() { {showPeerForm ? 'Cancel' : 'Add Route'} } /> -

- Add OS-level routes that forward traffic for a network through a specific VPN peer. -

+
+ + OS-level ip route entries stored here. WireGuard per-peer access control (which traffic each peer is allowed) is on the Peers page, not here. +
{showPeerForm && ( @@ -563,9 +564,12 @@ function Routing() { {showFwForm ? 'Cancel' : 'Add Rule'} } /> -

- Custom iptables rules applied on the host. Per-peer VPN access rules are managed on the Peers page. -

+
+ + + This tab only shows rules added here. The Live iptables tab shows all running rules — including per-peer VPN rules (managed on the Peers page) and WireGuard PostUp rules. They are intentionally separate. + +
{showFwForm && ( @@ -668,7 +672,12 @@ function Routing() { Refresh } /> -

Read-only view of actual iptables rules running inside cell-wireguard.

+
+ + + Read-only view of ALL rules running in cell-wireguard. Includes: pic-peer-* rules from the Peers page, MASQUERADE from wg0.conf PostUp, and any rules added via the forms above. Rules here cannot be edited directly. + +
{iptLoading ? (