AutoProxy

{{ t('menu_' + currentView) }}

{{ t('stats_total_queries') }}

{{ formatNumber(stats.total_queries) }}

CN
{{ formatNumber(stats.total_cn) }}
Overseas
{{ formatNumber(stats.total_overseas) }}

{{ t('stats_memory') }}

{{ stats.memory_usage_mb?.toFixed(1) }} MB

QPS {{ formatQPS(stats.qps) }} req/s

{{ t('stats_uptime') }}

{{ formatUptime(stats.uptime_seconds) }}

Started At
{{ getStartTime(stats.uptime_seconds) }}

{{ t('stats_ports') }}

TCP {{ formatListenPort(stats.listen_dns_tcp) }} {{ t('not_listening') }}
UDP {{ formatListenPort(stats.listen_dns_udp) }} {{ t('not_listening') }}
DoH {{ formatListenPort(stats.listen_doh) }} {{ t('not_listening') }}
DoT {{ formatListenPort(stats.listen_dot) }} {{ t('not_listening') }}
DoQ {{ formatListenPort(stats.listen_doq) }} {{ t('not_listening') }}

{{ t('stats_traffic_distribution') }}

CN (Domestic) {{ stats.total_cn }}
{{ getPercentage(stats.total_cn, stats.total_queries) }}%
Overseas {{ stats.total_overseas }}
{{ getPercentage(stats.total_overseas, stats.total_queries) }}%

{{ t('stats_upstream_perf') }}

{{ t('table_server') }} {{ t('table_group') }} {{ t('table_queries') }} {{ t('table_errors') }} {{ t('table_canceled') }} {{ t('table_avg_time') }}
{{ s.address }} {{ s.protocol }} {{ s.group }} {{ s.total_queries }} {{ s.total_errors > 0 ? s.total_errors : '-' }} {{ s.total_canceled > 0 ? s.total_canceled : '-' }} {{ s.avg_duration_ms }} ms

{{ t('top_clients') }}

  • {{ idx + 1 }} {{ client[0] }}
    {{ client[1] }}

{{ t('top_domains') }}

  • {{ idx + 1 }} {{ domain[0] }}
    {{ domain[1] }}
{{ t('logs_title') }}
{{ t('log_time') }} {{ t('log_client') }} {{ t('log_domain') }} {{ t('log_type') }} {{ t('log_answer') }} {{ t('log_upstream') }} {{ t('log_status') }} {{ t('log_duration') }}
{{ formatTime(log.time) }}
{{ log.client_ip }}
ECS {{ log.downstream_ecs }}
{{ log.domain }} {{ log.type }} {{ log.answer }} {{ formatUpstreamLabel(log.upstream) }} {{ getLogStatusText(log) }} {{ log.duration_ms }}ms

{{ t('no_logs') }}

Showing {{ (logsPage - 1) * 15 + 1 }} to {{ Math.min(logsPage * 15, logsTotal) }} of {{ logsTotal }} results

WebUI Settings

Allow viewing dashboard without login. Login required for changes.

{{ t('setting_querylog') }}

Defaults to 'query.log' if empty.

{{ t('setting_listen') }}

{{ t('listen_address_help') }}

{{ t('setting_bootstrap') }}

{{ t('setting_tls_certs') }}

{{ t('setting_upstreams') }}

{{ t('setting_hosts') }}

IP Domain
{{ h.ip }} {{ h.domain }}
{{ t('no_records') }}
Total: {{ hostsTotal }}
{{ hostsPage }}

{{ t('setting_rules') }}

{{ t('rule_help') }}

{{ t('no_records') }}

Geo Data

Auto Certificate (ACME)

AutoProxy

System Dashboard

{{ t('saving') }}

{{ t('saved_msg') }}

{{ t('testing') }}

Address Protocol Group Status Latency
{{ res.address }} {{ res.protocol }} {{ res.group }} {{ res.status }} {{ res.latency }}
{{ t('log_time') }} {{ formatTime(modal.log.time) }}
{{ t('log_client') }} {{ modal.log.client_ip }}
{{ t('log_downstream_ecs') }} {{ modal.log.downstream_ecs || '-' }}
{{ t('log_domain') }} {{ modal.log.domain }}
{{ t('log_type') }} {{ modal.log.type }}
{{ t('log_duration') }} {{ modal.log.duration_ms }}ms
{{ t('log_status') }} {{ getLogStatusText(modal.log) }} {{ t('raw_status') }} {{ modal.log.status }}
{{ t('log_upstream') }} {{ formatUpstreamLabel(modal.log.upstream) }}
{{ t('query_interpretation') }}

{{ getLogExplanation(modal.log) }}

{{ t('resolution_chain') }}

Question

{{ modal.log.domain }}

{{ rec.type }} TTL {{ rec.ttl }}

{{ rec.data }}

{{ getLogAnswerSummary(modal.log) }}