|
|
|
@ -12,58 +12,58 @@
|
|
|
|
|
<span>{{ data.version }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="BindPort"> |
|
|
|
|
<span>{{ data.bind_port }}</span> |
|
|
|
|
<span>{{ data.bindPort }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="KCP Bind Port" v-if="data.kcp_bind_port != 0"> |
|
|
|
|
<span>{{ data.kcp_bind_port }}</span> |
|
|
|
|
<el-form-item label="KCP Bind Port" v-if="data.kcpBindPort != 0"> |
|
|
|
|
<span>{{ data.kcpBindPort }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item |
|
|
|
|
label="QUIC Bind Port" |
|
|
|
|
v-if="data.quic_bind_port != 0" |
|
|
|
|
v-if="data.quicBindPort != 0" |
|
|
|
|
> |
|
|
|
|
<span>{{ data.quic_bind_port }}</span> |
|
|
|
|
<span>{{ data.quicBindPort }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="Http Port" v-if="data.vhost_http_port != 0"> |
|
|
|
|
<span>{{ data.vhost_http_port }}</span> |
|
|
|
|
<el-form-item label="Http Port" v-if="data.vhostHTTPPort != 0"> |
|
|
|
|
<span>{{ data.vhostHTTPPort }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="Https Port" v-if="data.vhost_https_port != 0"> |
|
|
|
|
<span>{{ data.vhost_https_port }}</span> |
|
|
|
|
<el-form-item label="Https Port" v-if="data.vhostHTTPSPort != 0"> |
|
|
|
|
<span>{{ data.vhostHTTPSPort }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item |
|
|
|
|
label="TCPMux HTTPConnect Port" |
|
|
|
|
v-if="data.tcpmux_httpconnect_port != 0" |
|
|
|
|
v-if="data.tcpmuxHTTPConnectPort != 0" |
|
|
|
|
> |
|
|
|
|
<span>{{ data.tcpmux_httpconnect_port }}</span> |
|
|
|
|
<span>{{ data.tcpmuxHTTPConnectPort }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item |
|
|
|
|
label="Subdomain Host" |
|
|
|
|
v-if="data.subdomain_host != ''" |
|
|
|
|
v-if="data.subdomainHost != ''" |
|
|
|
|
> |
|
|
|
|
<LongSpan :content="data.subdomain_host" :length="30"></LongSpan> |
|
|
|
|
<LongSpan :content="data.subdomainHost" :length="30"></LongSpan> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="Max PoolCount"> |
|
|
|
|
<span>{{ data.max_pool_count }}</span> |
|
|
|
|
<span>{{ data.maxPoolCount }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="Max Ports Per Client"> |
|
|
|
|
<span>{{ data.max_ports_per_client }}</span> |
|
|
|
|
<span>{{ data.maxPortsPerClient }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="Allow Ports" v-if="data.allow_ports_str != ''"> |
|
|
|
|
<LongSpan :content="data.allow_ports_str" :length="30"></LongSpan> |
|
|
|
|
<el-form-item label="Allow Ports" v-if="data.allowPortsStr != ''"> |
|
|
|
|
<LongSpan :content="data.allowPortsStr" :length="30"></LongSpan> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="TLS Only" v-if="data.tls_only === true"> |
|
|
|
|
<span>{{ data.tls_only }}</span> |
|
|
|
|
<el-form-item label="TLS Force" v-if="data.tlsForce === true"> |
|
|
|
|
<span>{{ data.tlsForce }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="HeartBeat Timeout"> |
|
|
|
|
<span>{{ data.heart_beat_timeout }}</span> |
|
|
|
|
<span>{{ data.heartbeatTimeout }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="Client Counts"> |
|
|
|
|
<span>{{ data.client_counts }}</span> |
|
|
|
|
<span>{{ data.clientCounts }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="Current Connections"> |
|
|
|
|
<span>{{ data.cur_conns }}</span> |
|
|
|
|
<span>{{ data.curConns }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
<el-form-item label="Proxy Counts"> |
|
|
|
|
<span>{{ data.proxy_counts }}</span> |
|
|
|
|
<span>{{ data.proxyCounts }}</span> |
|
|
|
|
</el-form-item> |
|
|
|
|
</el-form> |
|
|
|
|
</div> |
|
|
|
@ -87,21 +87,21 @@ import LongSpan from './LongSpan.vue'
|
|
|
|
|
|
|
|
|
|
let data = ref({ |
|
|
|
|
version: '', |
|
|
|
|
bind_port: 0, |
|
|
|
|
kcp_bind_port: 0, |
|
|
|
|
quic_bind_port: 0, |
|
|
|
|
vhost_http_port: 0, |
|
|
|
|
vhost_https_port: 0, |
|
|
|
|
tcpmux_httpconnect_port: 0, |
|
|
|
|
subdomain_host: '', |
|
|
|
|
max_pool_count: 0, |
|
|
|
|
max_ports_per_client: '', |
|
|
|
|
allow_ports_str: '', |
|
|
|
|
tls_only: false, |
|
|
|
|
heart_beat_timeout: 0, |
|
|
|
|
client_counts: 0, |
|
|
|
|
cur_conns: 0, |
|
|
|
|
proxy_counts: 0, |
|
|
|
|
bindPort: 0, |
|
|
|
|
kcpBindPort: 0, |
|
|
|
|
quicBindPort: 0, |
|
|
|
|
vhostHTTPPort: 0, |
|
|
|
|
vhostHTTPSPort: 0, |
|
|
|
|
tcpmuxHTTPConnectPort: 0, |
|
|
|
|
subdomainHost: '', |
|
|
|
|
maxPoolCount: 0, |
|
|
|
|
maxPortsPerClient: '', |
|
|
|
|
allowPortsStr: '', |
|
|
|
|
tlsForce: false, |
|
|
|
|
heartbeatTimeout: 0, |
|
|
|
|
clientCounts: 0, |
|
|
|
|
curConns: 0, |
|
|
|
|
proxyCounts: 0, |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
const fetchData = () => { |
|
|
|
@ -109,50 +109,50 @@ const fetchData = () => {
|
|
|
|
|
.then((res) => res.json()) |
|
|
|
|
.then((json) => { |
|
|
|
|
data.value.version = json.version |
|
|
|
|
data.value.bind_port = json.bind_port |
|
|
|
|
data.value.kcp_bind_port = json.kcp_bind_port |
|
|
|
|
data.value.quic_bind_port = json.quic_bind_port |
|
|
|
|
data.value.vhost_http_port = json.vhost_http_port |
|
|
|
|
data.value.vhost_https_port = json.vhost_https_port |
|
|
|
|
data.value.tcpmux_httpconnect_port = json.tcpmux_httpconnect_port |
|
|
|
|
data.value.subdomain_host = json.subdomain_host |
|
|
|
|
data.value.max_pool_count = json.max_pool_count |
|
|
|
|
data.value.max_ports_per_client = json.max_ports_per_client |
|
|
|
|
if (data.value.max_ports_per_client == '0') { |
|
|
|
|
data.value.max_ports_per_client = 'no limit' |
|
|
|
|
data.value.bindPort = json.bindPort |
|
|
|
|
data.value.kcpBindPort = json.kcpBindPort |
|
|
|
|
data.value.quicBindPort = json.quicBindPort |
|
|
|
|
data.value.vhostHTTPPort = json.vhostHTTPPort |
|
|
|
|
data.value.vhostHTTPSPort = json.vhostHTTPSPort |
|
|
|
|
data.value.tcpmuxHTTPConnectPort = json.tcpmuxHTTPConnectPort |
|
|
|
|
data.value.subdomainHost = json.subdomainHost |
|
|
|
|
data.value.maxPoolCount = json.maxPoolCount |
|
|
|
|
data.value.maxPortsPerClient = json.maxPortsPerClient |
|
|
|
|
if (data.value.maxPortsPerClient == '0') { |
|
|
|
|
data.value.maxPortsPerClient = 'no limit' |
|
|
|
|
} |
|
|
|
|
data.value.allow_ports_str = json.allow_ports_str |
|
|
|
|
data.value.tls_only = json.tls_only |
|
|
|
|
data.value.heart_beat_timeout = json.heart_beat_timeout |
|
|
|
|
data.value.client_counts = json.client_counts |
|
|
|
|
data.value.cur_conns = json.cur_conns |
|
|
|
|
data.value.proxy_counts = 0 |
|
|
|
|
if (json.proxy_type_count != null) { |
|
|
|
|
if (json.proxy_type_count.tcp != null) { |
|
|
|
|
data.value.proxy_counts += json.proxy_type_count.tcp |
|
|
|
|
data.value.allowPortsStr = json.allowPortsStr |
|
|
|
|
data.value.tlsForce = json.tlsForce |
|
|
|
|
data.value.heartbeatTimeout = json.heartbeatTimeout |
|
|
|
|
data.value.clientCounts = json.clientCounts |
|
|
|
|
data.value.curConns = json.curConns |
|
|
|
|
data.value.proxyCounts = 0 |
|
|
|
|
if (json.proxyTypeCount != null) { |
|
|
|
|
if (json.proxyTypeCount.tcp != null) { |
|
|
|
|
data.value.proxyCounts += json.proxyTypeCount.tcp |
|
|
|
|
} |
|
|
|
|
if (json.proxy_type_count.udp != null) { |
|
|
|
|
data.value.proxy_counts += json.proxy_type_count.udp |
|
|
|
|
if (json.proxyTypeCount.udp != null) { |
|
|
|
|
data.value.proxyCounts += json.proxyTypeCount.udp |
|
|
|
|
} |
|
|
|
|
if (json.proxy_type_count.http != null) { |
|
|
|
|
data.value.proxy_counts += json.proxy_type_count.http |
|
|
|
|
if (json.proxyTypeCount.http != null) { |
|
|
|
|
data.value.proxyCounts += json.proxyTypeCount.http |
|
|
|
|
} |
|
|
|
|
if (json.proxy_type_count.https != null) { |
|
|
|
|
data.value.proxy_counts += json.proxy_type_count.https |
|
|
|
|
if (json.proxyTypeCount.https != null) { |
|
|
|
|
data.value.proxyCounts += json.proxyTypeCount.https |
|
|
|
|
} |
|
|
|
|
if (json.proxy_type_count.stcp != null) { |
|
|
|
|
data.value.proxy_counts += json.proxy_type_count.stcp |
|
|
|
|
if (json.proxyTypeCount.stcp != null) { |
|
|
|
|
data.value.proxyCounts += json.proxyTypeCount.stcp |
|
|
|
|
} |
|
|
|
|
if (json.proxy_type_count.sudp != null) { |
|
|
|
|
data.value.proxy_counts += json.proxy_type_count.sudp |
|
|
|
|
if (json.proxyTypeCount.sudp != null) { |
|
|
|
|
data.value.proxyCounts += json.proxyTypeCount.sudp |
|
|
|
|
} |
|
|
|
|
if (json.proxy_type_count.xtcp != null) { |
|
|
|
|
data.value.proxy_counts += json.proxy_type_count.xtcp |
|
|
|
|
if (json.proxyTypeCount.xtcp != null) { |
|
|
|
|
data.value.proxyCounts += json.proxyTypeCount.xtcp |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// draw chart |
|
|
|
|
DrawTrafficChart('traffic', json.total_traffic_in, json.total_traffic_out) |
|
|
|
|
DrawTrafficChart('traffic', json.totalTrafficIn, json.totalTrafficOut) |
|
|
|
|
DrawProxyChart('proxies', json) |
|
|
|
|
}) |
|
|
|
|
.catch(() => { |
|
|
|
|