neutrino-proxy的管理后台功能详解

neutrino-proxy的管理后台功能详解

【免费下载链接】neutrino-proxy 中微子代理(内网穿透) 【免费下载链接】neutrino-proxy 项目地址: https://gitcode.com/dromara/neutrino-proxy

本文详细解析neutrino-proxy管理后台的核心功能模块,包括用户权限体系、端口映射管理、License控制机制以及安全组配置。通过角色动态路由、端口池分组、流量监控报表等功能设计,展现其灵活可控的内网穿透解决方案。

用户管理与权限控制

neutrino-proxy的管理后台提供了完善的用户管理与权限控制功能,确保系统资源的安全性和可控性。以下将详细介绍用户管理与权限控制的实现细节和功能模块。

用户管理

用户管理模块支持多用户管理,每个用户可以持有多个License。目前项目主要面向个人版用户,因此权限分为管理员和游客两类:

  • 管理员:拥有所有操作的权限,包括用户管理、License管理、端口映射配置等。
  • 游客:仅具备只读权限,无法执行修改操作。
用户列表

用户列表展示了所有注册用户的基本信息,包括用户名、角色、状态等。管理员可以通过列表对用户进行增删改查操作。

// 示例:获取用户列表
export function userList() {
  return request({
    url: '/user/list',
    method: 'get'
  })
}
用户详情

点击用户名称可以查看用户详情,包括其持有的License信息、流量使用情况等。

// 示例:获取用户详情
export function userDetail(id) {
  return request({
    url: '/user/detail',
    method: 'get',
    params: { id }
  })
}
用户创建与更新

管理员可以通过表单创建新用户或更新现有用户信息。创建用户时需要指定用户名、密码和角色。

// 示例:创建用户
export function createUser(data) {
  return request({
    url: '/user/create',
    method: 'post',
    data
  })
}

权限控制

权限控制通过角色(Role)实现,每个用户分配一个或多个角色,系统根据角色动态生成可访问的路由表。

角色定义
  • admin:超级管理员,拥有所有权限。
  • editor:编辑者,具备部分操作权限(如端口映射配置)。
  • guest:游客,仅具备只读权限。
权限验证

系统通过hasPermission函数验证用户是否具备访问某路由的权限:

function hasPermission(roles, permissionRoles) {
  if (roles.indexOf('admin') >= 0) return true // 管理员直接通过
  if (!permissionRoles) return true
  return roles.some(role => permissionRoles.indexOf(role) >= 0)
}
动态路由生成

用户登录后,系统根据其角色动态生成可访问的路由表:

function filterAsyncRouter(asyncRouterMap, roles) {
  return asyncRouterMap.filter(route => {
    if (hasPermission(roles, route)) {
      if (route.children) {
        route.children = filterAsyncRouter(route.children, roles)
      }
      return true
    }
    return false
  })
}

权限流程图

以下为权限控制的流程图:

mermaid

用户流量报表

系统还提供了基于用户维度的流量统计功能,管理员可以通过报表查看每个用户的流量使用情况。

// 示例:获取用户流量报表
export function userFlowReport() {
  return request({
    url: '/report/userFlowReport',
    method: 'get'
  })
}

通过以上功能,neutrino-proxy的管理后台实现了灵活且安全的用户管理与权限控制机制,满足不同场景下的需求。

端口池与端口映射管理

neutrino-proxy的管理后台中,端口池与端口映射管理是核心功能之一,用于实现内网穿透服务的高效配置与管理。通过端口池的统一管理和端口映射的灵活配置,用户可以轻松实现内网服务的公网访问。以下将详细介绍这两部分的功能与使用方法。

端口池管理

端口池用于统一管理服务器上的内网穿透端口资源,方便用户按需分配和使用。端口池的主要功能包括:

  1. 端口池列表
    展示所有可用的端口池资源,支持分页查询和条件筛选。每项资源包含以下信息:

    • 端口号
    • 端口状态(启用/禁用)
    • 所属分组
    • 创建时间
  2. 端口池操作
    支持对端口池的增删改查操作:

    • 新增端口池:填写端口号和所属分组,快速添加新的端口资源。
    • 编辑端口池:修改端口号或分组信息。
    • 删除端口池:释放不再使用的端口资源。
    • 批量删除:支持一次性删除多个端口池。
  3. 端口可用性检查
    提供端口可用性检查功能,确保端口未被占用且可正常使用。

示例代码
// 获取端口池列表
fetchList(query) {
  return request({
    url: '/port-pool/page',
    method: 'get',
    params: query
  })
}

// 新增端口池
createPortPool(data) {
  return request({
    url: '/port-pool/create',
    method: 'post',
    data
  })
}
端口池状态管理
状态描述
启用端口可正常用于映射
禁用端口暂时不可用

端口映射管理

端口映射是实现内网穿透的核心功能,通过将服务端的公网端口映射到客户端的本地端口,实现内网服务的公网访问。端口映射的主要功能包括:

  1. 映射列表
    展示所有已配置的端口映射,支持分页查询和条件筛选。每项映射包含以下信息:

    • 服务端端口
    • 客户端IP与端口
    • 所属License
    • 映射状态(启用/禁用)
    • 创建时间
  2. 映射操作
    支持对端口映射的增删改查操作:

    • 新增映射:配置服务端端口、客户端IP与端口,并关联License。
    • 编辑映射:修改映射配置。
    • 删除映射:移除不再需要的映射。
    • 批量删除:支持一次性删除多个映射。
  3. 映射状态管理
    支持动态启用或禁用映射,灵活控制内网服务的访问权限。

示例代码
// 获取端口映射列表
fetchList(query) {
  return request({
    url: '/port-mapping/page',
    method: 'get',
    params: query
  })
}

// 新增端口映射
createPortMapping(data) {
  return request({
    url: '/port-mapping/create',
    method: 'post',
    data
  })
}
端口映射状态管理
状态描述
启用映射生效,可正常访问
禁用映射暂时失效

端口池分组

端口池分组是对端口池资源的进一步分类管理,支持以下分组类型:

  • 全局分组:所有用户均可使用该分组下的端口。
  • 用户分组:仅分组绑定的用户可使用该分组下的端口。
  • License分组:仅分组绑定的License可使用该分组下的端口。

分组管理功能包括:

  • 分组列表:展示所有分组及其类型。
  • 分组操作:支持新增、编辑、删除分组。
示例流程图

mermaid

通过上述功能,用户可以高效管理端口资源,灵活配置内网穿透服务,满足多样化的业务需求。

License管理与流量监控

neutrino-proxy的管理后台中,License管理与流量监控功能是核心模块之一,主要用于管理客户端连接凭证(License)以及监控流量使用情况。以下将详细介绍这两个功能的设计与实现。

License管理

功能概述

License是客户端连接服务端的唯一合法凭证,每个License可以绑定多个端口映射,但同一时间只能被一个客户端使用。License管理模块提供了以下功能:

  1. License列表展示:支持分页、筛选和排序。
  2. License创建与更新:支持动态生成License,并设置有效期和启用状态。
  3. License重置:支持重置License的密钥,防止泄露。
  4. License绑定端口映射:支持为License分配端口映射。
代码实现

License管理功能主要通过以下API实现:

  • /license/page:获取License分页列表。
  • /license/list:获取所有License列表(用于下拉框)。
  • /license/auth-list:获取授权License列表。
  • /license/create:创建License。
  • /license/update:更新License信息。
  • /license/update/enable-status:更新License启用状态。
  • /license/delete:删除License。
  • /license/reset:重置License密钥。

以下是一个License列表的Vue组件示例:

<el-table-column align="center" :label="$t('table.licenseName')" width="150">
  <template slot-scope="scope">
    <span>{{ scope.row.licenseName }}</span>
  </template>
</el-table-column>
<el-table-column align="center" :label="$t('table.licenseKey')" width="300">
  <template slot-scope="scope">
    <span>{{ scope.row.licenseKey }}</span>
  </template>
</el-table-column>
流程图

mermaid

流量监控

功能概述

流量监控模块用于统计和分析License的流量使用情况,包括:

  1. 实时流量统计:展示当天的上行/下行流量。
  2. 历史流量汇总:按天统计最近15天的流量数据。
  3. 月度流量明细:按月统计License的流量使用情况。
代码实现

流量监控功能主要通过以下API实现:

  • /report/license/flow-report/page:获取License流量分页报表。
  • /report/license/flow-month-report/page:获取License月度流量明细报表。

以下是一个流量统计表格的Vue组件示例:

<el-table-column align="center" :label="$t('table.licenseName')" min-width="120">
  <template slot-scope="scope">
    <span>{{ scope.row.licenseName }}</span>
  </template>
</el-table-column>
<el-table-column align="center" :label="$t('table.flowUp')" min-width="100">
  <template slot-scope="scope">
    <span>{{ scope.row.flowUp }} MB</span>
  </template>
</el-table-column>
表格示例
License名称上行流量 (MB)下行流量 (MB)总流量 (MB)
License1102420483072
License25127681280
状态图

mermaid

通过以上功能,用户可以高效管理License并实时监控流量使用情况,确保服务的稳定性和安全性。

安全组与规则配置

在neutrino-proxy的管理后台中,安全组与规则配置是保障内网穿透服务安全性的重要功能模块。通过安全组和规则的灵活配置,管理员可以精确控制端口映射的访问权限,防止未授权的访问行为。以下将详细介绍安全组与规则的功能、配置方法以及实际应用场景。

安全组管理

安全组是端口映射的访问控制单元,用于定义一组端口映射的访问规则。每个安全组可以包含多条规则,规则定义了允许或拒绝的访问行为。安全组的主要功能包括:

  1. 创建安全组
    管理员可以通过管理后台创建安全组,并为安全组指定名称和描述信息。创建完成后,可以将端口映射绑定到安全组中。

  2. 绑定端口映射
    端口映射可以绑定到一个或多个安全组。绑定后,端口映射的访问行为将受到安全组规则的约束。

  3. 启用/禁用安全组
    安全组可以动态启用或禁用。禁用后,绑定到该安全组的所有端口映射将无法访问。

安全组配置示例

以下是一个安全组的配置示例:

{
  "groupName": "Web服务安全组",
  "description": "用于管理Web服务的访问权限",
  "enable": true
}

安全规则管理

安全规则是安全组的具体实现,定义了允许或拒绝的访问行为。每条规则可以包含以下内容:

  1. 规则名称
    规则的唯一标识,便于管理员识别和管理。

  2. 规则内容
    规则的具体内容,可以是IP地址、端口范围或其他访问控制条件。

  3. 规则动作
    规则的动作可以是允许拒绝

安全规则配置示例

以下是一个安全规则的配置示例:

{
  "ruleName": "允许内网访问",
  "rule": "192.168.1.0/24",
  "action": "allow"
}

安全组与规则的应用场景

  1. 限制访问IP范围
    通过配置规则,可以限制只有特定IP范围的用户才能访问绑定的端口映射。

  2. 动态调整访问权限
    管理员可以根据业务需求动态启用或禁用安全组,快速调整访问权限。

  3. 多租户隔离
    在多租户场景下,可以为每个租户创建独立的安全组,实现访问隔离。

配置流程图

以下是一个安全组与规则配置的流程图:

mermaid

通过以上功能,neutrino-proxy的管理后台提供了强大的安全组与规则配置能力,帮助管理员轻松实现内网穿透服务的安全管理。

总结

neutrino-proxy管理后台通过模块化设计实现了完整的服务治理能力:

  1. 基于RBAC模型的用户权限体系
  2. 端口池与映射的精细化管控
  3. License密钥与流量双维度监控
  4. 安全组规则驱动的访问控制 这些功能共同构建了安全高效的内网穿透管理平台,满足企业级场景需求。

【免费下载链接】neutrino-proxy 中微子代理(内网穿透) 【免费下载链接】neutrino-proxy 项目地址: https://gitcode.com/dromara/neutrino-proxy

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值