Optimization
This commit is contained in:
@@ -95,6 +95,7 @@ async function loadServerConfig() {
|
||||
// SSH / general
|
||||
document.getElementById("cfgLimitUp").value = c.default_limit_mbps_up || 0;
|
||||
document.getElementById("cfgLimitDown").value = c.default_limit_mbps_down || 0;
|
||||
document.getElementById("cfgMaxTotalConns").value = c.max_total_connections || 0;
|
||||
document.getElementById("cfgQuiet").checked = !!c.quiet;
|
||||
document.getElementById("cfgUserCount").checked = !!c.user_count;
|
||||
|
||||
@@ -133,6 +134,7 @@ async function loadServerConfig() {
|
||||
const u = c.udpgw || {};
|
||||
document.getElementById("cfgUdpgwListen").value = u.listen || "";
|
||||
document.getElementById("cfgUdpgwMaxConns").value = u.max_client_conns || 0;
|
||||
document.getElementById("cfgUdpgwMaxClients").value = u.max_clients || 0;
|
||||
document.getElementById("cfgUdpgwIdle").value = u.idle_timeout || "";
|
||||
document.getElementById("cfgUdpgwMapTTL").value = u.map_ttl || "";
|
||||
document.getElementById("cfgUdpgwAutoRestart").value = u.auto_restart_interval || "";
|
||||
@@ -175,6 +177,7 @@ async function saveServerConfig() {
|
||||
admin_dir: "/opt/sshpanel/admin",
|
||||
default_limit_mbps_up: parseInt(document.getElementById("cfgLimitUp").value || "0", 10),
|
||||
default_limit_mbps_down: parseInt(document.getElementById("cfgLimitDown").value || "0", 10),
|
||||
max_total_connections: parseInt(document.getElementById("cfgMaxTotalConns").value || "0", 10),
|
||||
quiet: document.getElementById("cfgQuiet").checked,
|
||||
user_count: document.getElementById("cfgUserCount").checked,
|
||||
banner: document.getElementById("cfgBanner").value,
|
||||
@@ -204,6 +207,7 @@ async function saveServerConfig() {
|
||||
udpgw: document.getElementById("cfgUdpgwEnabled").checked ? {
|
||||
listen: document.getElementById("cfgUdpgwListen").value.trim(),
|
||||
max_client_conns: parseInt(document.getElementById("cfgUdpgwMaxConns").value || "0", 10),
|
||||
max_clients: parseInt(document.getElementById("cfgUdpgwMaxClients").value || "0", 10),
|
||||
idle_timeout: document.getElementById("cfgUdpgwIdle").value.trim(),
|
||||
map_ttl: document.getElementById("cfgUdpgwMapTTL").value.trim(),
|
||||
auto_restart_interval: document.getElementById("cfgUdpgwAutoRestart").value.trim(),
|
||||
|
||||
@@ -976,6 +976,10 @@
|
||||
<label>Default Download Limit (Mbps)</label>
|
||||
<input type="number" id="cfgLimitDown" min="0" placeholder="0 = unlimited"/>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Max Total SSH Connections <span class="hint">0 = default (10000) · -1 = unlimited</span></label>
|
||||
<input type="number" id="cfgMaxTotalConns" min="-1" placeholder="10000" title="Global cap across all users. New connections past this are rejected before the SSH handshake, so a surge cannot exhaust memory/CPU. Raise it if the server has resources for more; set -1 to remove the cap entirely."/>
|
||||
</div>
|
||||
</div>
|
||||
<div style="display:flex;gap:16px;margin-top:8px;flex-wrap:wrap;">
|
||||
<label style="font-size:.73rem;display:flex;align-items:center;gap:5px;cursor:pointer;">
|
||||
@@ -1104,6 +1108,10 @@
|
||||
<label>Max UDP Sessions Per Client <span class="hint">(not total server users)</span></label>
|
||||
<input type="number" id="cfgUdpgwMaxConns" min="0" placeholder="10" title="Per connected client. This is not the total number of UDPGW users allowed on the server."/>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Max Total Clients <span class="hint">0 = default (10000)</span></label>
|
||||
<input type="number" id="cfgUdpgwMaxClients" min="0" placeholder="10000" title="Total concurrent UDPGW client connections allowed on the server. New clients past this are rejected. Raise it if the server has resources for more."/>
|
||||
</div>
|
||||
<div class="field">
|
||||
<label>Idle Timeout</label>
|
||||
<input type="text" id="cfgUdpgwIdle" placeholder="2m"/>
|
||||
|
||||
Reference in New Issue
Block a user