将 maxConnsPerUser 从硬编码常量(3)改为数据库动态配置项,管理员可在 /admin/vpn 隧道设置中调整,保存后对新连接立即生效。 - model/vpn.go: VpnSetting 新增 MaxConnsPerUser 字段,gorm default:30 - db/db.go: 种子数据设默认 30;旧库回填 0 值为 30 - vpn/tunnel.go: 删除 maxConnsPerUser 常量,改读 VPN.Settings(),兜底 30 - handler/vpn.go: API 响应/请求结构体新增字段,校验范围 1-1000 - VpnView.vue: 隧道设置表单新增"每用户最大连接数"输入框 - zh.ts/en.ts: 新增 maxConnsPerUser 文案,更新首页多设备描述 - docs/client-development.md: 更新常量表为可配置项
184 lines
6.3 KiB
TypeScript
184 lines
6.3 KiB
TypeScript
export default {
|
|
common: {
|
|
cancel: '取消',
|
|
confirm: '确定',
|
|
save: '保存',
|
|
saving: '保存中...',
|
|
delete: '删除',
|
|
deleting: '删除中...',
|
|
edit: '编辑',
|
|
loading: '加载中...',
|
|
loadFailed: '加载失败',
|
|
saveFailed: '保存失败',
|
|
createFailed: '创建失败',
|
|
deleteFailed: '删除失败',
|
|
role: '角色',
|
|
status: '状态',
|
|
admin: '管理员',
|
|
normalUser: '普通用户',
|
|
enabled: '启用',
|
|
disabled: '禁用',
|
|
username: '用户名',
|
|
password: '密码',
|
|
createdAt: '创建时间',
|
|
actions: '操作',
|
|
id: 'ID',
|
|
},
|
|
nav: {
|
|
home: '首页',
|
|
about: '关于',
|
|
profile: '用户信息',
|
|
admin: '管理后台',
|
|
logout: '退出',
|
|
login: '登录',
|
|
},
|
|
language: {
|
|
label: '语言',
|
|
zh: '中文',
|
|
en: 'English',
|
|
},
|
|
login: {
|
|
title: 'LmVPN 登录',
|
|
enterUsernamePassword: '请输入用户名和密码',
|
|
enterUsername: '请输入用户名',
|
|
enterPassword: '请输入密码',
|
|
loginFailed: '登录失败',
|
|
loggingIn: '登录中...',
|
|
loginButton: '登录',
|
|
passwordChanged: '密码已修改,请重新登录',
|
|
},
|
|
profile: {
|
|
title: '用户信息',
|
|
basicInfo: '基本信息',
|
|
usernameLabel: '用户名:',
|
|
roleLabel: '角色:',
|
|
changePassword: '修改密码',
|
|
oldPassword: '原密码',
|
|
newPassword: '新密码',
|
|
confirmNewPassword: '确认新密码',
|
|
enterOldAndNewPassword: '请填写原密码和新密码',
|
|
passwordsDoNotMatch: '两次输入的新密码不一致',
|
|
passwordChangeFailed: '密码修改失败',
|
|
},
|
|
about: {
|
|
title: '关于 LmVPN',
|
|
description:
|
|
'LmVPN 是一款基于 WebSocket 隧道与 TUN 虚拟网卡的轻量级三层 VPN 系统,采用 Go + Vue 3 构建。支持多用户管理、IPv4/IPv6 双栈、静态 IP 预留与流量统计,提供点对点与点对站点网络连接方案。',
|
|
},
|
|
admin: {
|
|
title: '管理后台',
|
|
uptime: '运行时长',
|
|
activeDevices: '活跃设备',
|
|
todayTraffic: '今日流量',
|
|
onlineNodes: '在线节点',
|
|
totalUsers: '用户总数',
|
|
vpnManage: 'VPN 管理',
|
|
config: '配置',
|
|
userInfo: '用户信息',
|
|
usernameLabel: '用户名:',
|
|
roleLabel: '角色:',
|
|
logoutButton: '退出登录',
|
|
},
|
|
userManage: {
|
|
title: '用户管理',
|
|
addUser: '新增用户',
|
|
fillUsernamePassword: '请填写用户名和密码',
|
|
creating: '创建中...',
|
|
editUser: '编辑用户 - {username}',
|
|
newPasswordOptional: '新密码(留空不修改)',
|
|
newPasswordPlaceholder: '留空则不修改密码',
|
|
confirmDelete: '确认删除',
|
|
confirmDeleteMessage: '确定要删除用户 {username} 吗?此操作不可撤销。',
|
|
confirmDeleteButton: '确认删除',
|
|
},
|
|
vpn: {
|
|
title: 'VPN 管理',
|
|
refresh: '刷新',
|
|
serviceStatus: '服务状态',
|
|
running: '运行中',
|
|
stopped: '已停止',
|
|
onlineClients: '在线客户端',
|
|
ipUsage: 'IP 用量',
|
|
systemCheck: '系统环境检测',
|
|
tunDevice: 'TUN 设备',
|
|
tunRunning: '运行中',
|
|
rootPermission: 'Root 权限',
|
|
runningAsRoot: '以 root 运行',
|
|
notRunningAsRoot: '非 root 运行',
|
|
capNetAdmin: 'CAP_NET_ADMIN',
|
|
authorized: '已授权',
|
|
unauthorized: '未授权',
|
|
ipForward: 'IP 转发 (ip_forward)',
|
|
notEnabled: '未开启',
|
|
natMasqueradeV4: 'NAT MASQUERADE (IPv4)',
|
|
configured: '已配置',
|
|
notConfigured: '未配置',
|
|
ipv6Forward: 'IPv6 转发 (forwarding)',
|
|
natMasqueradeV6: 'NAT MASQUERADE (IPv6)',
|
|
platform: '平台',
|
|
nonLinuxNote:
|
|
'注:CAP_NET_ADMIN / ip_forward / MASQUERADE 检测仅适用于 Linux,其他平台需手动确认网络配置。',
|
|
tunnelSettings: '隧道设置',
|
|
enableVpn: '启用 VPN 服务',
|
|
enable: '启用',
|
|
stop: '停止',
|
|
subnet: '子网 (CIDR)',
|
|
ipv6Subnet: 'IPv6 子网 (CIDR, 可选)',
|
|
mtu: 'MTU',
|
|
interfaceName: '接口名 (留空自动)',
|
|
allowClientToClient: '允许客户端互通',
|
|
allow: '允许',
|
|
deny: '禁止',
|
|
serverConfigTunIp: '服务端配置 TUN IP',
|
|
autoConfig: '自动配置',
|
|
manual: '手动',
|
|
maxConnsPerUser: '每用户最大连接数',
|
|
saveSettings: '保存设置',
|
|
saveSuccess: '保存成功',
|
|
user: '用户',
|
|
ipv4: 'IPv4',
|
|
ipv6: 'IPv6',
|
|
connectTime: '连接时间',
|
|
noOnlineClients: '暂无在线客户端',
|
|
staticIpReservation: '静态 IP 预留',
|
|
addReservation: '新增预留',
|
|
noReservations: '暂无预留',
|
|
addIpReservation: '新增 IP 预留',
|
|
selectUser: '选择用户',
|
|
ipv4Address: 'IPv4 地址 (可选)',
|
|
ipv6Address: 'IPv6 地址 (可选)',
|
|
selectUserAndIp: '请选择用户并至少填写一个 IP 地址',
|
|
confirmDeleteReservation: '确认删除该预留?',
|
|
kick: '踢下线',
|
|
confirmKick: '确定要断开用户 {username} 的所有 VPN 连接并禁用其账号吗?',
|
|
kickFailed: '踢下线失败',
|
|
cannotKickSelf: '不能踢自己下线,如需断开自己的设备请修改密码',
|
|
},
|
|
footer: {
|
|
lastCommit: '最后提交',
|
|
},
|
|
home: {
|
|
tagline: '基于 WebSocket 与 TUN 虚拟网卡的轻量级三层 VPN 隧道管理系统',
|
|
tunnel: 'WebSocket 隧道',
|
|
tunnelDesc:
|
|
'基于 WebSocket 与 TUN 虚拟网卡的三层隧道,经反向代理提供 WSS/TLS 传输安全。',
|
|
userManage: '多用户管理',
|
|
userManageDesc:
|
|
'管理员与普通角色,支持用户增删改、启用禁用与改密,内置自保护规则。',
|
|
multiDevice: '多设备并发',
|
|
multiDeviceDesc: '每用户支持多设备并发连接,可在管理后台配置上限。',
|
|
dualStack: 'IPv4/IPv6 双栈',
|
|
dualStackDesc: '同时支持 IPv4 与 IPv6 子网,NAT 双栈转发与源地址反欺骗。',
|
|
reservation: '静态 IP 预留',
|
|
reservationDesc:
|
|
'按用户预留固定 IPv4/IPv6 地址,自动校验子网合法性与唯一性。',
|
|
traffic: '流量统计',
|
|
trafficDesc: '实时统计在线设备与流量,按日聚合记录网络使用状况。',
|
|
session: '会话管理',
|
|
sessionDesc:
|
|
'JWT 令牌会话,支持自行注销与管理员强制下线,状态变更级联失效。',
|
|
deploy: '一键部署与诊断',
|
|
deployDesc: 'Linux 一键脚本部署,内置系统环境检测面板快速定位问题。',
|
|
},
|
|
}
|