kevin
|
cbe7aeca81
|
修改前端内容
|
2026-07-08 12:16:15 +08:00 |
|
kevin
|
170df5f457
|
fix: 刷新 /admin 被错误跳转到 /profile
路由守卫在 user 信息未加载时判断权限,刷新后 token 从 localStorage
恢复但 user 为 null,导致 adminOnly 守卫误判 role !== 'admin' 而跳转。
改为在已登录但 user 为 null 时先 await fetchUser() 加载用户信息再判断。
|
2026-07-08 12:00:07 +08:00 |
|
kevin
|
c14fe5ec06
|
feat: 管理后台仪表盘统计卡片接入真实数据
新增 /api/admin/stats 聚合接口,填充运行时长、活跃设备、今日流量、在线节点四项卡片:
- VpnService 记录启动时间,提供 StartedAt/TotalLiveTraffic 方法
- 新增 TrafficStat 模型,客户端断开时 upsert 当日 rx/tx 流量(持久化)
- 前端 AdminView 调用 stats 接口并每 30 秒自动刷新
|
2026-07-07 15:43:29 +08:00 |
|
kevin
|
25c3ad685a
|
feat: 前端多语言支持(中/英)与品牌 Logo 接入
多语言:
- 新增 vue-i18n,创建 src/locales/zh.ts、en.ts 语言包,按功能模块组织 key
- 新增 src/i18n.ts,语言检测优先级:localStorage > navigator.language(zh→中文,其他→英文)> 兜底英文
- 导航栏新增语言切换按钮(中/EN 一键切换),选择持久化到 localStorage
- 全部 View/Component 硬编码中文替换为 t() 调用,stores/auth.ts 错误消息同样国际化
- index.html lang 属性运行时动态更新
Logo:
- 替换 Vue 默认 logo 为 LmVPN 品牌 Logo(盾牌+网络节点)
- Header 导航栏:Logo 图标 + "LmVPN" 文字
- 首页标题区:大尺寸 Logo 展示
- Favicon 替换为 SVG 格式
|
2026-07-07 15:05:53 +08:00 |
|
kevin
|
a770862c7c
|
feat: 支持 IPv6 双栈地址派发
- model: VpnSetting 新增 Subnet6 字段,VpnReservation 新增 IPAddress6
- alloc: 处理 /64 等大子网 cidr.AddressCount 溢出,回退 65536 扫描上限
- protocol: initMessage 新增 ip6/prefix6/server_ip6(omitempty 向后兼容)
- service: 双分配器 alloc4+alloc6,ApplySettings 配置双 IP 与双路由,
Allocate 返回 v4+v6 一对地址
- switch: SwitchConn 新增 AssignedIP6(),Register/Unregister 注册双 key,
反欺骗按 IP 版本分别校验 v4/v6 源地址
- tunnel: tunnelConn 新增 assignedIP6,init 消息填充 v6 字段
- handler: 新增 validateSubnet6(/64~/126),settings/预留 API 全面支持 v6
- diag: 新增 IPv6 forwarding 与 NAT66 masquerade 检测
- install_linux.sh: 新增 VPN_SUBNET6、ipv6 forwarding、nft/ip6tables NAT66
- 前端: v6 子网输入框、v6 预留、v6 诊断卡片、客户端列表 v6 列
- 文档: init 消息、IP 分配、子网约束、TUN 配置、NAT、反欺骗全部更新
|
2026-07-07 11:38:21 +08:00 |
|
kevin
|
6ccfb57c80
|
feat: 默认子网改为 192.168.77.0/24,安装脚本授权 CAP_NET_ADMIN 与 iptables 配置
- 默认 VPN 子网由 192.168.3.0/24 改为 192.168.77.0/24(db seed、前端表单默认值与 placeholder 同步)
- install_linux.sh 顶部增加 VPN_SUBNET 可配置变量
- systemd unit 增加 AmbientCapabilities/CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_RAW,服务以 lmvpn 用户运行即可创建 TUN,无需 root
- 脚本自动开启 net.ipv4.ip_forward 并持久化到 /etc/sysctl.d/99-lmvpn.conf
- 脚本自动检测出口网卡,幂等配置 iptables NAT MASQUERADE 与 FORWARD 放行规则
- 优先 netfilter-persistent 持久化,回退 iptables-save 写 /etc/iptables/rules.v4
|
2026-07-06 14:42:58 +08:00 |
|
kevin
|
c8b170d532
|
feat: VPN 管理后台新增系统环境检测面板
- 新增 /api/admin/vpn/diag 端点,检测 TUN 创建能力、root、CAP_NET_ADMIN、ip_forward、MASQUERADE
- Linux 下解析 /proc/self/status CapEff 位判断 CAP_NET_ADMIN,读 /proc/sys/net/ipv4/ip_forward,执行 iptables 检查 MASQUERADE
- 非 Linux 平台显示"仅 Linux 适用"
- 前端 VpnView 新增系统环境检测卡片,每项以勾叉标识并附修复提示
|
2026-07-06 14:27:42 +08:00 |
|
kevin
|
44b51b3b04
|
feat: 实现第三层 TUN VPN 服务,支持后台 IP 分配
- 新增 TUN 设备层(water 库),分 linux/darwin 平台配置 IP/路由/MTU
- 实现 IP 分配管理:动态池自动分配 + 按用户静态预留,支持热更新
- 实现 PacketSwitch 共享 TUN 包转发:源 IP 防伪、按目的 IP 查表转发、allow-c2c
- 重写隧道:自研简化 WS 协议(文本帧 JSON 控制 init/ready,二进制帧=原始 IP 包)
- VpnService 单例管理 TUN 生命周期,子网变更踢线重建,预留增删热更新
- 新增 vpn_settings/vpn_reservations 表,AutoMigrate + 默认设置 seed
- 新增 Admin API:settings 读写、status、clients、reservations CRUD
- 前端新增 VpnView(/admin/vpn):状态面板/设置表单/在线客户端/静态预留
- main.go 启动时按 DB 设置初始化 VPN 服务
|
2026-07-03 14:49:56 +08:00 |
|
kevin
|
fe91a8ffb2
|
管理后台新增用户总数卡片,点击进入用户管理,移除header用户管理按钮
|
2026-07-03 10:24:52 +08:00 |
|
kevin
|
e65b31abb0
|
新增用户管理和个人信息功能,支持CRUD操作和密码修改
|
2026-07-03 10:18:08 +08:00 |
|
kevin
|
621625ad1e
|
重写前端
|
2026-07-02 21:03:51 +08:00 |
|
kevin
|
0634cadced
|
更新管理登录功能
|
2026-07-02 20:45:53 +08:00 |
|
kevin
|
083b6e5dbe
|
init
|
2026-07-02 19:56:13 +08:00 |
|