diff --git a/extensions/Servers/Proxmox/views/components/layout.blade.php b/extensions/Servers/Proxmox/views/components/layout.blade.php index 276efa50a..dfcd021ae 100644 --- a/extensions/Servers/Proxmox/views/components/layout.blade.php +++ b/extensions/Servers/Proxmox/views/components/layout.blade.php @@ -12,8 +12,7 @@ $pollAttribute = $statusPolling ? 'wire:poll' . $pollSuffix . '="loadVmStatus"' : ''; @endphp -
Live bandwidth • Updates every 30 seconds<\/p> + <\/div> -
Total Out<\/p> +
0 MB<\/p> + <\/div> + <\/div> + <\/div> `; }; @@ -1608,10 +1608,10 @@
No network data available
-No network data available<\/p> + <\/div> `; return; } @@ -1879,11 +1879,11 @@
Failed to load network data
-${error.message}
-Failed to load network data<\/p> +
${error.message}<\/p> + <\/div> `; } } finally { @@ -2200,4 +2200,4 @@ @endonce - \ No newline at end of file + diff --git a/extensions/Servers/Proxmox/views/statistics.blade.php b/extensions/Servers/Proxmox/views/statistics.blade.php index 07a2cc4f4..745ebf042 100644 --- a/extensions/Servers/Proxmox/views/statistics.blade.php +++ b/extensions/Servers/Proxmox/views/statistics.blade.php @@ -4121,25 +4121,25 @@ const formatStateDescription = (overview, meaning, scenarios, notes = null) => { let html = '
${overview}
${overview}<\/p><\/div>`; } if (meaning) { - html += `
${meaning}
${meaning}<\/p><\/div>`; } if (scenarios) { - html += `
${notes}
${notes}<\/p><\/div>`; } - html += '
Unknown direction
Unknown direction<\/p><\/div>'; } const directionUpper = direction.toUpperCase(); @@ -4147,12 +4147,12 @@ 'INBOUND': formatStateDescription( 'Inbound traffic represents network connections coming TO your server. This means data is being sent from an external source (another computer, device, or service) and arriving at your server.', 'All directions are shown from your server\'s perspective. "Inbound" means the connection is coming IN to your server - external clients or services are connecting to your server.', - '
Inbound connections typically include:
Inbound connections typically include:<\/p>
Outbound connections typically include:
Outbound connections typically include:<\/p>
Common uses include:
Common uses include:<\/p>
Common uses include:
Common uses include:<\/p>
Common uses include:
Common uses include:<\/p>
Key features include:
Key features include:<\/p>
Common uses include:
Common uses include:<\/p>
Common uses include:
Common uses include:<\/p>
Common uses include:
Common uses include:<\/p>
Common uses include:
Common uses include:<\/p>
Common uses include:
Common uses include:<\/p>
Common uses include:
Common uses include:<\/p>
Key features include:
Key features include:<\/p>
Key features include:
Key features include:<\/p>
0:0 indicates that there is no state level data for this connection. This state is typically only found on ICMP (Internet Control Message Protocol) states, since ICMP does not have state levels like other protocols (TCP, UDP, etc.).
-0:0 indicates that there is no state level data for this connection. This state is typically only found on ICMP (Internet Control Message Protocol) states, since ICMP does not have state levels like other protocols (TCP, UDP, etc.).<\/p> + <\/div>
ICMP is a stateless protocol used for diagnostic and control purposes such as ping (echo request/reply), traceroute, or error reporting. The "0:0" format means there is no connection state tracking because ICMP packets are connectionless and don't establish sessions like TCP connections do.
-ICMP is a stateless protocol used for diagnostic and control purposes such as ping (echo request/reply), traceroute, or error reporting. The "0:0" format means there is no connection state tracking because ICMP packets are connectionless and don't establish sessions like TCP connections do.<\/p> + <\/div>
Yes, this is completely normal for ICMP traffic and simply indicates the protocol's stateless nature. ICMP connections will always show 0:0 since they don't use connection states.
-Yes, this is completely normal for ICMP traffic and simply indicates the protocol's stateless nature. ICMP connections will always show 0:0 since they don't use connection states.<\/p> + <\/div> + <\/div>`; } // Handle colon-separated states (e.g., "TIME_WAIT:TIME_WAIT" or "SINGLE:MULTIPLE") @@ -4286,27 +4286,27 @@ (primaryState === 'MULTIPLE' && secondaryState === 'SINGLE')) { return `
SINGLE:MULTIPLE (or MULTIPLE:SINGLE) is commonly observed with DNS queries and other UDP-based services. According to pfSense documentation, this pattern indicates asymmetric state tracking for UDP connections.
-SINGLE:MULTIPLE (or MULTIPLE:SINGLE) is commonly observed with DNS queries and other UDP-based services. According to pfSense documentation, this pattern indicates asymmetric state tracking for UDP connections.<\/p> + <\/div>
This pattern typically occurs when a single request packet was sent, but the response came in multiple packets. This is very common with DNS queries where a small query packet is sent, but the response with DNS records is larger and may be split into multiple packets.
-This pattern typically occurs when a single request packet was sent, but the response came in multiple packets. This is very common with DNS queries where a small query packet is sent, but the response with DNS records is larger and may be split into multiple packets.<\/p> + <\/div>
For UDP and other connectionless protocols, the firewall tracks state separately for each direction since UDP has no formal connection establishment like TCP does. This is completely normal for UDP connections.
-For UDP and other connectionless protocols, the firewall tracks state separately for each direction since UDP has no formal connection establishment like TCP does. This is completely normal for UDP connections.<\/p> + <\/div> + <\/div>`; } // If both parts are the same (e.g., "TIME_WAIT:TIME_WAIT", "ESTABLISHED:ESTABLISHED") @@ -4316,88 +4316,88 @@ 'ESTABLISHED': formatStateDescription( 'ESTABLISHED means a TCP connection is considered fully established by this side. According to pfSense documentation, this indicates the connection handshake (three-way handshake) has been completed and this side is actively exchanging data.', 'When you see ESTABLISHED:ESTABLISHED, it means both sides have a fully established two-way TCP connection. This is the normal, healthy state for active network sessions. Both directions are synchronized and actively communicating.', - '
Common examples include:
Common examples include:<\/p>
When you see SYN_SENT:CLOSED, it means the side showing SYN_SENT has sent a TCP SYN packet but no response has been received from the far side. This often occurs when:
When you see SYN_SENT:CLOSED, it means the side showing SYN_SENT has sent a TCP SYN packet but no response has been received from the far side. This often occurs when:<\/p>
This state typically appears:
The connection handshake is almost complete and should quickly transition to ESTABLISHED once the final acknowledgment is received from the initiating side.
' + 'This state typically appears:<\/p>
The connection handshake is almost complete and should quickly transition to ESTABLISHED once the final acknowledgment is received from the initiating side.<\/p>' ), 'FIN_WAIT_1': formatStateDescription( 'FIN_WAIT_1 means a TCP connection is in the process of closing. According to pfSense documentation, TIME_WAIT/FIN_WAIT indicates a TCP connection is in the process of closing and finishing up.', 'FIN_WAIT_1 specifically means this side has sent a FIN (finish) packet to request closing the connection and is waiting for an acknowledgment (ACK) from the remote endpoint. This is the first step in the graceful connection termination process.', - '
This state appears during normal connection shutdown sequences. The connection is being closed, but the remote side has not yet acknowledged the close request.
' + 'This state appears during normal connection shutdown sequences. The connection is being closed, but the remote side has not yet acknowledged the close request.<\/p>' ), 'FIN_WAIT_2': formatStateDescription( 'FIN_WAIT_2 means a TCP connection is in the process of closing.', 'This side\'s FIN packet has been acknowledged by the remote endpoint, but the remote endpoint has not yet sent its own FIN packet to close the connection. The connection is partially closed from this side\'s perspective - it has signaled it wants to close and received acknowledgment, but is waiting for the remote side to also signal its intention to close.', - '
This is a transitional state during connection termination where one side has initiated closure. The connection remains in this state until the remote endpoint sends its own FIN packet to complete the closure.
' + 'This is a transitional state during connection termination where one side has initiated closure. The connection remains in this state until the remote endpoint sends its own FIN packet to complete the closure.<\/p>' ), 'TIME_WAIT': formatStateDescription( 'TIME_WAIT means a TCP connection is in the process of closing and finishing up.', 'The connection has been closed, but this side is keeping it in a waiting state for a period of time (typically 2-4 minutes) before fully releasing the connection resources.', - '
This ensures that any delayed, out-of-order, or duplicate packets from the recently closed connection can be properly handled and discarded before a new connection potentially reuses the same port and sequence numbers.
This is a normal part of TCP connection cleanup and helps prevent issues where old packets from a closed connection could interfere with new connections.
' + 'This ensures that any delayed, out-of-order, or duplicate packets from the recently closed connection can be properly handled and discarded before a new connection potentially reuses the same port and sequence numbers.<\/p>
This is a normal part of TCP connection cleanup and helps prevent issues where old packets from a closed connection could interfere with new connections.<\/p>' ), 'CLOSE_WAIT': formatStateDescription( 'CLOSE_WAIT means this side has received a FIN packet from the remote endpoint (meaning the remote side wants to close the connection), and this side is waiting for the local application to finish processing and send its own FIN packet to complete the closure.', 'This state appears when the remote endpoint initiates the connection closure.', - '
The local application needs to:
The local application needs to:<\/p>
This is relatively uncommon but can occur when both sides decide to close the connection at nearly the same time. The connection is in the process of closing from both directions simultaneously, with both sides having signaled their intention to close.
' + 'This is relatively uncommon but can occur when both sides decide to close the connection at nearly the same time. The connection is in the process of closing from both directions simultaneously, with both sides having signaled their intention to close.<\/p>' ), 'LAST_ACK': formatStateDescription( 'LAST_ACK means this side has sent a FIN packet and received an acknowledgment, but is waiting for the final acknowledgment (ACK) from the remote endpoint to complete the connection termination process.', 'This is the final stage of closing a connection.', - '
Once this final ACK is received, the connection will transition to CLOSED and all resources will be fully released. This state indicates the connection is almost completely closed and just awaiting final confirmation.
' + 'Once this final ACK is received, the connection will transition to CLOSED and all resources will be fully released. This state indicates the connection is almost completely closed and just awaiting final confirmation.<\/p>' ), 'LISTEN': formatStateDescription( 'LISTEN means this side is waiting for incoming connection requests on a specific port.', 'This state appears on servers that are ready to accept new connections from clients. The service is actively listening and waiting for clients to initiate connections.', - '
Common examples include:
This is normal for server applications that need to accept incoming connections.
' + 'Common examples include:<\/p>
This is normal for server applications that need to accept incoming connections.<\/p>' ), 'CLOSED': formatStateDescription( 'CLOSED means, for TCP connections, the side with this status considers the connection closed, or the firewall has not received any traffic matching this state.', 'According to pfSense documentation, this indicates either the connection was never established, has been fully closed, or no packets have been observed.', - '
All connection resources have been released, and the connection can no longer be used for data exchange. This is the final state after a connection has been completely closed, or the initial state before a connection is established.
' + 'All connection resources have been released, and the connection can no longer be used for data exchange. This is the final state after a connection has been completely closed, or the initial state before a connection is established.<\/p>' ), 'NEW': formatStateDescription( 'NEW means a new connection has been detected but is not yet fully established.', 'This state appears during the very initial phase of connection setup, typically after the first packet is received but before the connection handshake is completed or recognized.', - '
It\'s a transitional state that should quickly move to:
Connections should not remain in NEW state for long periods. If they do, it may indicate an issue with connection establishment.
' + 'It\'s a transitional state that should quickly move to:<\/p>
Connections should not remain in NEW state for long periods. If they do, it may indicate an issue with connection establishment.<\/p>' ), 'RELATED': formatStateDescription( 'RELATED means this connection is associated with an existing connection, often used by firewalls for state tracking and security purposes.', 'The firewall marks these connections as RELATED so they can be properly managed together, allowing the firewall to recognize that the connection is legitimate and related to an established primary connection.', - '
This commonly appears with protocols like FTP that use multiple connections:
This helps maintain security while allowing complex protocols that require multiple connections to function properly.
' + 'This commonly appears with protocols like FTP that use multiple connections:<\/p>
This helps maintain security while allowing complex protocols that require multiple connections to function properly.<\/p>' ), 'INVALID': formatStateDescription( 'INVALID means the connection state does not conform to standard TCP/IP connection state machine rules, or it has been explicitly marked as invalid by the firewall due to policy violations or security concerns.', 'This indicates that the connection has violated protocol rules or security policies.', - '
This may indicate:
This may indicate:<\/p>
This is common when you see SINGLE:NO_TRAFFIC, where one side sent a packet (SINGLE) but received no response (NO_TRAFFIC). According to pfSense, this is similar to SYN_SENT:CLOSED but for UDP and other connectionless protocols - no response has been received from the destination side.
This could indicate:
This is common when you see SINGLE:NO_TRAFFIC, where one side sent a packet (SINGLE) but received no response (NO_TRAFFIC). According to pfSense, this is similar to SYN_SENT:CLOSED but for UDP and other connectionless protocols - no response has been received from the destination side.<\/p>
This could indicate:<\/p>
Common patterns:
This pattern is normal for UDP connections, especially DNS queries where the query is small but the response with DNS records is larger.
' + 'Common patterns:<\/p>
This pattern is normal for UDP connections, especially DNS queries where the query is small but the response with DNS records is larger.<\/p>' ), 'MULTIPLE': formatStateDescription( 'MULTIPLE means the firewall has observed multiple packets on this state from this side. According to pfSense documentation, this indicates several packets have been seen from this direction.', 'For UDP and other connectionless protocols, this means multiple packets have been observed, indicating ongoing communication.', - '
When you see MULTIPLE:MULTIPLE, according to pfSense documentation, there are multiple packets in both directions, which is normal for a fully operational UDP connection.
This suggests active, ongoing bidirectional communication between both endpoints and indicates a healthy UDP-based service interaction.
' + 'When you see MULTIPLE:MULTIPLE, according to pfSense documentation, there are multiple packets in both directions, which is normal for a fully operational UDP connection.<\/p>
This suggests active, ongoing bidirectional communication between both endpoints and indicates a healthy UDP-based service interaction.<\/p>' ), }; @@ -4405,15 +4405,15 @@ if (state.includes(':') && primaryState === secondaryState && stateDescriptions[stateUpper]) { const baseDescription = stateDescriptions[stateUpper]; const formatNote = `
The state "${state}" shows the same state for both directions (${primaryState}:${secondaryState}). The colon (:) separates:
+The state "${state}" shows the same state for both directions (${primaryState}:${secondaryState}). The colon (:) separates:<\/p>
When both parts are identical, it indicates both directions are synchronized in the same state, which is typical for TCP connections.
-When both parts are identical, it indicates both directions are synchronized in the same state, which is typical for TCP connections.<\/p> + <\/div>`; + return baseDescription.replace('<\/div>', formatNote + '<\/div>'); } // Handle asymmetric states (e.g., SYN_SENT:CLOSED, SINGLE:NO_TRAFFIC) @@ -4423,7 +4423,7 @@ return formatStateDescription( 'SYN_SENT:CLOSED is a common pairing according to pfSense documentation.', 'The side showing SYN_SENT has sent a TCP SYN packet to initiate a connection, but no response has been received from the far side (hence CLOSED).', - '
According to pfSense documentation, this often occurs when:
According to pfSense documentation, this often occurs when:<\/p>
This commonly occurs when:
This commonly occurs when:<\/p>
Source → Destination (${primaryState}):
-${primarySummary}
-Source → Destination (${primaryState}):<\/p> +
${primarySummary}<\/p> + <\/div>
Destination → Source (${secondaryState}):
-${secondarySummary}
-Destination → Source (${secondaryState}):<\/p> +
${secondarySummary}<\/p> + <\/div> + <\/div>`, 'Each direction may be at a different stage of connection establishment, maintenance, or termination. This is common during connection setup, closure, or when one side is not responding.' ); } @@ -4473,7 +4473,7 @@ return formatStateDescription( `The "${primaryState || state}" state represents the current phase of the network connection lifecycle.`, 'This connection is in a state that indicates how it is being established, maintained, or terminated between your server and the remote endpoint.', - '
The state format uses a colon (:) to separate the state for each direction when both directions are tracked.
' + 'The state format uses a colon (:) to separate the state for each direction when both directions are tracked.<\/p>' ); }; @@ -6024,4 +6024,4 @@ window.lifecycleEventsExportData = @json($lifecycleEventsExportRows ?? []); - \ No newline at end of file +