Jumpserver 堡垒机

2023-10-27

一、Jumpserver简介

跳板机概述

跳板机就是一台服务器,开发或运维人员在维护过程中首先要统一登录到这台服务器,然后再登录到目标设备进行维护和操作

跳板机缺点:没有实现对运维人员操作行为的控制和审计,使用跳板机的过程中还是会出现误操作、违规操作导致的事故,一旦出现操作事故很难快速定位到原因和责任人

堡垒机概述

堡垒机,即在一个特定的网络环境下,为了保障网络和数据不受来自外部和内部用户的入侵和破坏,而运用各种技术手段实时收集和监控网络环境中每一个组成部分的系统状态、安全事件、网络活动,以便集中报警、及时处理及审计定责

 区别

1、堡垒机比跳板机多了实时收集、监控网络环境、集中报警等功能
2、给其它服务器推送sudo用户,并设置权限
3、多了一个用户行为监控的功能(有录像)

Jumpserver概述

JumpserverFIT2CLOUD(飞致云)旗下的软件产品,全球首款完全开源的堡垒机,使用 GNU GPL v2.0 开源协议,是符合 4A 的专业运维审计系统
Jumpserver 使用 Python / Django 进行开发,遵循 Web 2.0 规范,配备了业界领先的 Web Terminal 解决方案,交互界面美观、用户体验好
Jumpserver 采纳分布式架构,支持多机房跨区域部署,中心节点提供 API,各机房部署登录节点,可横向扩展、无并发限制
为互联网企业提供了认证,授权,审计,自动化运维等功能

Jumpserver 功能

身份认证(Authentication)

登录认证 资源统一登录与认证
LDAP/AD 认证
RADIUS 认证
OpenID 认证(实现单点登录)
CAS 认证 (实现单点登录)
MFA(多因子)认证 MFA 二次认证(Google Authenticator
RADIUS 二次认证
登录复核(X-PACK) 用户登录行为受管理员的监管与控制

多因子(MULTI-FACTOR-AUTH):认证功能是递升式认证功能的扩展,它允许您指定一个受保护对象策略(POP),该策略强制用户使用比已配置的 POP 认证级别低的所有认证机制来认证。即要求用户在授予访问权之前的必需级别以及低于该级别的所有级别上进行认证。多因子认证也可与重新认证结合使用以强制多因子重新认证

账号管理(Account)

集中账号 管理用户管理
系统用户管理
用户的角色 支持超级管理员、超级审核员、组织管理员(X-Pack)、组织审核员(X-Pack)和普通用户5个角色
统一密码 支持资产密码管理服务、自动生成密码、密码自动推送、密码到期设置
密码更改计划(X-PACK) 支持通过批量Linux/Windows定期更改密码、生成随机密码、实施多种密码策略
多云资产管理(X-PACK) 对私有云、公有云资产自动统一纳管
发现主机状态(X-PACK) 自定义任务定期收集主机用户
密码盒(X-PACK) 统一对资产主机的用户密码进行查看、更新、测试操作

授权控制(Authorization)

多维授权 对用户、用户组、资产、资产节点、应用以及系统用户进行授权
资产授权

1、以树形结构显示

2、可以灵活授权资产树的资产和节点

3、节点中的资产可以自动继承授权

4、子节点自动继承父节点的授权

应用授权 实现更细粒度的应用级授权
数据库授权 支持数据库授权,包括MySQLOracle数据库(X-Pack)、PostgreSQL (X-Pack)和Mariadb(X-Pack)
动作授权 实现对授权资产的文件上传、下载以及连接动作的控制
时间授权 实现对授权资源使用时间段的限制
特权指令 实现对特权指令的使用(支持黑白名单)
命令过滤 实现对授权系统用户所执行的命令进行控制
文件传输和管理 支持SFTP文件上传/下载和网络SFTP文件管理
工单管理(X-PACK) 支持对用户登录请求行为进行控制
子账户管理(x光包) 支持多租户管理和权限隔离

安全审计(Audit)

登录审核 支持审核用户登录JumpServer系统的日志,并将审核信息收集到Syslog
运营审计 支持用户操作行为审计
会话审计 在线会话内容审计、历史会话内容审计
视频审计 支持通过回放审计资产运营(如LinuxWindows机)和应用运营(如RemoteApp(X-Pack)MySQLKubernetes等)的记录,支持将记录上传到公有云
指令审计 支持审计资产和应用的操作命令,对高风险的命令进行告警
文件传输 支持审核文件上传/下载的记录
实时监控 向管理员/审计员提供实时监控和中断用户操作行为的能力,以提高用户操作的安全性

Jumpserver组件

Jumpserver 管理后台,是核心组件(Core), 使用 Django Class Based View 风格开发,支持 Restful API

Restful API:Representational State Transfer的缩写。直接翻译的意思是"表现层状态转化"。
它是一种互联网应用程序的API设计理念:URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作

Apipost = Api调试工具 + Api文档管理工具 +Mock 工具+Jmeter测试工具;ApiPost是更符合中国开发者使用习惯的开发协同工具,可以为团队提升50%的工作效率

Coco 实现了 SSH ServerWeb Terminal Server 的组件,提供 SSHWebSocket 接口, 使用 ParamikoFlask 开发
WebTerminal基于 WebLinux 终端
Luna 现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不再负责后台渲染html
Guacamole Apache 跳板机项目,Jumpserver 使用其组件实现 RDP 功能,Jumpserver 并没有修改其代码而是添加了额外的插件,支持 Jumpserver 调用
Jumpserver-Python-SDK Jumpserver API Python SDKCoco 目前使用该 SDK Jumpserver API 交互

二、部署Jumpserver 堡垒机

Jumpserver 堡垒机部署架构图

系统 IP 主机名 服务
CentOS 7.4 192.168.2.4 server JumpServer
CentOS 7.4 192.168.2.9 DB-R(Mysql和Redis) 数据库

注意: 本次实验使用离线部署

 安装前准备

1、 准备一台 24G 最低)且可以访问互联网的 64 Linux 主机(本次实验使用:CentOS 7.4

 注意事项:

方法一是在一台机器上进行操作全部都安装在server服务上;需要上网

方法二是jumpserver与mysql和redis分离部署在工作环境中可能会用到;提前下载

 安装方法一:全自动安装

下载地址:jumpserver  或者执行以下命令

 配置一个网卡重启网卡,可以ping通外网

 
[root@server ~]# systemctl restart network           
[root@server ~]# yum -y install wget                   
[root@server ~]# wget https://github.com/jumpserver/installer/releases/download/v2.17.2/jumpserver-installer-v2.17.2.tar.gz                    
[root@server ~]# tar -xf jumpserver-installer-v2.17.2.tar.gz                     
[root@server ~]# cd jumpserver-installer-v2.17.2       

 以 root 用户执行如下命令一键安装 JumpServer


———————————————————自动安装无需操作———————————————————————————————————

[root@server ~]# curl -sSL https://github.com/jumpserver/jumpserver/releases/download/v2.17.2/quick_start.sh | bash                          
download install script to /opt/jumpserver-installer-v2.17.2 (开始下载安装脚本到 /opt/jumpserver-installer-v2.17.2)


       ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗
       ██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
       ██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝
  ██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
  ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
   ╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

                                                                   Version:  v2.17.2  

1. 检查配置文件
配置文件位置: /opt/jumpserver/config
/opt/jumpserver/config/config.txt  [ √ ]
/opt/jumpserver/config/nginx/cert/server.crt   [ √ ]
/opt/jumpserver/config/nginx/cert/server.key   [ √ ]
完成
................................................
....................................
.....................
.........


——————————————————————————安装完成会提示!!!!!
cd /opt/jumpserver-installer-v2.17.2                

./jmsctl.sh start         #启动           

./jmsctl.sh down          #停止                 

./jmsctl.sh uninstall     #卸载              

./jmsctl.sh -h            #帮助                

 访问:192.168.2.4

 安装方法二:离线部署分离mysql和redis

下载离线安装包网址:jumpserver-offline-installer-v2.17.2-amd64-84

 如果地址失效可以去官方进行下载

 分离部署需要有一台服务器作为数据存储;也可以不分离

 1、部署mysql和redis

msyql安装文献: Mysql数据库管理系统

 安装完成后进入mysql数据库

mysql> create databases jumpserver;                
Query OK, 1 row affected (0.00 sec)

mysql> grant all on jumpserver.* to 'jumpserver'@'192.168.2.6' identified by '123.com';                
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;                    
Query OK, 0 rows affected (0.00 sec)

Redis安装文献:Redis高性能数据库


[root@DB-R ~]# redis -h 192.168.2.9 -p 6379 -a 123.com          
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
192.168.2.9:6379>

 2、部署JumpServer

把文件上传到 opt 文件中
            
[root@server ~]# cd /opt                   
[root@server opt]# ls            
jumpserver-offline-installer-v2.17.2-amd64-84.tar.gz           

[root@server opt]# tar -xf jumpserver-offline-installer-v2.17.2-amd64-84.tar.gz            
[root@server opt]# cd jumpserver-offline-installer-v2.17.2-amd64-84    

——————————————————————————————————————————————————————————————————————————————————————————————————————————————————————
[root@server jumpserver-offline-installer-v2.17.2-amd64-84]# cat config-example.txt               
............
.......
##  MySQL 配置, USE_EXTERNAL_MYSQL=1 表示使用外置 MySQL, 请输入正确的 MySQL 信息
USE_EXTERNAL_MYSQL=1      #使用外部mysql
DB_HOST=192.168.2.9       #mysql主机IP
DB_PORT=3306              #端口号
DB_USER=jumpserver        #授权用户
DB_PASSWORD=123.com       #授权密码
DB_NAME=jumpserver        #名称库

##  Redis 配置, USE_EXTERNAL_REDIS=1 表示使用外置 Redis, 请输入正确的 Redis 信息
USE_EXTERNAL_REDIS=1      #使用外部redis
REDIS_HOST=192.168.2.9    #指定redis地址
REDIS_PORT=6379           #端口号
REDIS_PASSWORD=123.com    #登录redis的密码
............
....       其他配置不更改


保存

注意: 在安装过程中如果没有myslq和redis数据库回车即可;也不设置配置文件;如果要使用邮箱需要开启对外访问默认就可

 这里设置对外访问端口:需要使用到邮箱服务


[root@server jumpserver-offline-installer-v2.17.2-amd64-84]# ./jmsctl.sh install                      


       ██╗██╗   ██╗███╗   ███╗██████╗ ███████╗███████╗██████╗ ██╗   ██╗███████╗██████╗
       ██║██║   ██║████╗ ████║██╔══██╗██╔════╝██╔════╝██╔══██╗██║   ██║██╔════╝██╔══██╗
       ██║██║   ██║██╔████╔██║██████╔╝███████╗█████╗  ██████╔╝██║   ██║█████╗  ██████╔╝
  ██   ██║██║   ██║██║╚██╔╝██║██╔═══╝ ╚════██║██╔══╝  ██╔══██╗╚██╗ ██╔╝██╔══╝  ██╔══██╗
  ╚█████╔╝╚██████╔╝██║ ╚═╝ ██║██║     ███████║███████╗██║  ██║ ╚████╔╝ ███████╗██║  ██║
   ╚════╝  ╚═════╝ ╚═╝     ╚═╝╚═╝     ╚══════╝╚══════╝╚═╝  ╚═╝  ╚═══╝  ╚══════╝╚═╝  ╚═╝

                                                                   Version:  v2.17.2  

1. 检查配置文件
配置文件位置: /opt/jumpserver/config
/opt/jumpserver/config/config.txt  [ √ ]
/opt/jumpserver/config/nginx/cert/server.crt   [ √ ]
/opt/jumpserver/config/nginx/cert/server.key   [ √ ]
完成

2. 备份配置文件
备份至 /opt/jumpserver/config/backup/config.txt.2022-01-07_04-42-28
完成

>>> 安装配置 Docker
1. 安装 Docker
完成

2. 配置 Docker
是否需要自定义 docker 存储目录, 默认将使用目录 /var/lib/docker? (y/n)  (默认为 n): 
完成

3. 启动 Docker
Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /etc/systemd/system/docker.service.
完成

>>> 加载 Docker 镜像
........................
...........
....           ————————————————————————   如果其他不更改自己回车
..

4. 配置 MySQL
是否使用外部 MySQL? (y/n)  (默认为 y): y         #输入y 使用外部mysql  后一直回车
请输入 mysql 的主机地址 (默认为 192.168.2.9): 
请输入 mysql 的端口 (默认为 3306): 
请输入 mysql 的数据库 (默认为 jumpserver): 
请输入 mysql 的用户名 (默认为 jumpserver): 
请输入 mysql 的密码 (默认为 123.com): 
完成

5. 配置 Redis
是否使用外部 Redis? (y/n)  (默认为 y):          #输入y 使用外部Redis  后一直回车
请输入 Redis 的主机地址 (默认为 192.168.2.9): 
请输入 Redis 的端口 (默认为 6379): 
请输入 Redis 的密码 (默认为 123.com): 
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
Warning: AUTH failed
redis_version:6.2.6
完成

6. 配置对外端口
是否需要配置 JumpServer 对外访问端口? (y/n)  (默认为 n): y    #配置对外访问端口
JumpServer web 端口 (默认为 80): 
JumpServer ssh 端口 (默认为 2222): 
完成

..........................
............
........
>>> 安装完成了
1. 可以使用如下命令启动, 然后访问
cd /opt/jumpserver-offline-installer-v2.17.2-amd64-84
./jmsctl.sh start

2. 其它一些管理命令
./jmsctl.sh stop
./jmsctl.sh restart
./jmsctl.sh backup
./jmsctl.sh upgrade
更多还有一些命令, 你可以 ./jmsctl.sh --help 来了解

3. Web 访问
http://192.168.2.6:80
默认用户: admin  默认密码: admin

4. SSH/SFTP 访问
ssh -p2222 admin@192.168.2.6
sftp -P2222 admin@192.168.2.6

5. 更多信息
我们的官网: https://www.jumpserver.org/
我们的文档: https://docs.jumpserver.org/    

安装完成后启动


[root@server jumpserver-offline-installer-v2.17.2-amd64-84]# cd /opt/jumpserver-offline-installer-v2.17.2-amd64-84                                       
[root@server jumpserver-offline-installer-v2.17.2-amd64-84]# ./jmsctl.sh start                                    
Creating jms_core ... done
Creating jms_koko   ... done
Creating jms_web    ... done
Creating jms_celery ... done
Creating jms_lion   ... done

测试登录成功说明部署完成


[root@C7--06 ~]# ssh admin@192.168.2.6 -p 2222          #使用admin账号登录,密码默认admin
admin@192.168.2.6's password:                           
                Administrator,  JumpServer 开源堡垒机

        1) 输入 部分IP,主机名,备注 进行搜索登录(如果唯一).
        2) 输入 / + IP,主机名,备注 进行搜索,如:/192.168.
        3) 输入 p 进行显示您有权限的主机.
        4) 输入 g 进行显示您有权限的节点.
        5) 输入 d 进行显示您有权限的数据库.
        6) 输入 k 进行显示您有权限的Kubernetes.
        7) 输入 r 进行刷新最新的机器和节点信息.
        8) 输入 h 进行显示帮助.
        9) 输入 q 进行退出.
Opt> 

3、jumpserver基本操作

 3.1、创建jumpserver新用户并且让用户修改密码登录

修改当前站点的URL为本机的IP或域名,否则新建的用户发送过去的邮件无法修改密码

可以进行测试连接

创建用户


点击提交
查看邮箱已经收到创建账号的消息

 登录成功

3.2、给用户组创建管理服务器用户

 1、创建用户组

2、 创建命令过滤

 系统用户可以绑定一些命令过滤器,一个过滤器可以定义一些规则 当用户使用这个系统用户登录资产,然后执行一个命令 这个命令需要被绑定过滤器的所有规则匹配,高优先级先被匹配,当一个规则匹配到了,如果规则的动作是允许,这个命令会被放行,如果规则的动作是禁止,命令将会被禁止执行,否则就匹配下一个规则,如果最后没有匹配到规则,则允许执行

 

 

 

3、 添加特权用户

4、添加资产(服务器)

 右击Default====>创建节点(修改名称为linux

设置完成后提交

5、 资产授权

 提交

 测试:使用小V的  用户root  密码123.com  登录进行操作

 注意:这里使用root用户登录到linux服务器上;如果要使用其他用户需要先在linux服务器上创建用户授权登录才行

在admin用户上可以 查看历史记录

 还可以查看回放操作

其实还有很多功能这里就说这么多有时间在继续扩展

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Jumpserver 堡垒机 的相关文章

  • 什么是UE像素流送,像素流推流是什么原理?

    游戏开发者通常在运行游戏逻辑时会将游戏渲染到屏幕的同一台设备上来运行虚幻引擎应用 多人联网游戏可能会在应用程序的多个实例之间分发部分游戏逻辑 但每个单独的实例仍然会为自己的玩家在本地渲染游戏 即使是使用 HTML5 部署选项创建可以在 We
  • 【C/C++】读取字符串的多种方式(带空格)

    获取字符 字符串对象 字符串行的多种方式 Created By Liu Xianmeng On 2022 12 10 include
  • Linux逻辑卷管理(LVM)

    一 逻辑卷 LV 卷组 VG 物理卷 PV 关系 逻辑卷 LV 是卷组 VG 的一部分 可以在卷组大小内动态增加 每个卷组可分为多个逻辑卷 卷组由多个物理卷 PV 组成 每个物理卷是一个块设备 磁盘分区等 二 LVM存储 1 准备物理设备
  • VSCode自动格式化Vue代码

    VSCode自动格式化Vue代码 Prettier Code formatter 配置代码格式化文件 配置setting json VsCode关于Vue的格式化插件非常多 网上的资料也五花八门 可以使用的非常少 经过多次探索 终于找到一个
  • 剑指offer第45题:扑克牌顺子

    剑指offer第45题 扑克牌顺子 题目描述 扑克牌顺子 源码 题目描述 扑克牌顺子 LL今天心情特别好 因为他去买了一副扑克牌 发现里面居然有2个大王 2个小王 一副牌原本是54张 他随机从中抽出了5张牌 想测测自己的手气 看看能不能抽到
  • python,tensorflow,keras,pandas,numpy版本不匹配的问题(已解决)

    事情的起因 因为自己手残 更新了我搭建的tensorflow虚拟环境中numpy的版本 更高 导致import pandas 时出现版本不匹配的问题 于是将pandas一起更新 这时 pandas和numpy可以使用 但是由于tensorf
  • Linux 学习笔记2 常用命令

    Linux 学习笔记1 安装linux详细教程 O丶ne丨柒夜的博客 CSDN博客 查看使用7007端口的进程 ps aux grep 7007 Linux 目录结构 基本介绍 1 liux的文件系统是采用级层式的树状目录结构 在此结构中的
  • 五种边缘检测算法(附代码)

    一 Roberts 边缘检测算子 Roberts边缘检测算子根据任意一对互相垂直方向上的差分可用来计算梯度的原理 采用对角线方向相邻两像素之差 即 然后根据式 1 9 2 计算出Roberts的梯度幅度值 它们的卷积算子为 Roberts检
  • mysql tmp下#sql_xxx_0.MYD 类文件占满空间的经历

    作为一名全职运维 随时会碰到各种问题 今天晚上收到紧报警 一台数据库服务器磁盘空间使用快速从80 使用率到90 我们的数据库都是 gt 2T的磁盘 意识到这肯定是比较严重问题马上上线处理 状况如下 root mysql node1 tmp
  • 实用高效的寻路算法——A*寻路算法的实现及优化思路

    前言 寻路是游戏比较重要的一个组成部分 因为不仅AI还有很多地方 例如RTS游戏里操控人物点到地图某个点 然后人物自动寻路走过去 都需要用到自动寻路的功能 本文将介绍一个经常被使用且效率理想的寻路方法 A 寻路算法 并且提供额外的优化思路
  • CMake中list的使用

    CMake中的list命令用于列表操作 其格式如下 Reading list LENGTH
  • Windows部署Alpaca-lora

    Alpaca Lora 是一个轻量级的语言模型 可以实现基本的语言类对话 本文先后在两台机器上进行了配置 行文旨在介绍将此模型部署至Windows系统上时所遭遇的各种困扰 机器1配置 NVIDIA TITAN Xp 机器2配置 RTX309
  • Spring是什么?

    什么是Spring 我知道你现在可能迫不及待地想要开始编写Spring应用了 我向你保证 在本章结束之前 你肯定能够开发一个简单的Spring应用 但首先 我将使用Spring的一些基础概念为你搭建一个舞台 帮助你理解Spring是如何运转
  • ubuntu下nginx停止、启动、重启

    转载自 https www cnblogs com xiaoL p 6964217 html nginx s reload 修改配置后重新加载生效 nginx s reopen 重新打开日志文件 nginx t c path to ngin
  • python标书制作辅助docx

    from docx import Document def handle path r d a docx 表格在哪个位置 文件路径 document Document path 读入表格文件 tables document tables 获
  • 通向Golang的捷径【7. 数组和 slice】

    从本章开始 将学习一些可包含一组元素的数据结构 也被称为数据集合 比如数组 切片 slice 和 map 这很显然是受到 Python 语言的影响 数组类型会使用 符号 这也是大多数编程语言的基本类型 Go 语言的数组与其他语言基本类似 但
  • android常见的monkey命令

    adb shell monkey p 包名 v 9000000 adb shell ps grep monkey 查找到monkey pid adb shell kill 刚才查到的进程号 指定一个包 adb shell monkey p
  • PySpark 连接Hive

    文章目录 简介 环境搭建与效果演示 更细节的搭建方法 搭建HDFS Spark或hive的前提 已经有了远程可访问的测试集群 搭建hadoop2 7 2 修改hadoop配置 格式化hdfs 测试 搭建spark 2 4 5 解压hive
  • C++成员函数末尾const关键字…

    原文地址 C 成员函数末尾const关键字的作用 作者 olym 1 gt 尽管函数名和参数列表都相同 void foo const成员函数是可以与void foo 并存的 可以形成重载 我们假设调用语句为obj foo 如果obj为non

随机推荐

  • git常用命令与常见面试题总结

    目录 1 git框架介绍 2 列举工作中常用的几个git命令 3 提交时发生冲突 如何解决 4 新建git功能分支的步骤 5 说明GIT合并的两种方法以及区别 6 Git提交代码的步骤 7 idea集成git 7 1 File gt set
  • IDEA开发及运行第一个Android项目

    IDEA自动下载SDK Gradle 保证能访问网络 原来eclipse能使用的sdk 配到idea报错 就换成自动下载最新的了 之前没成功可能是我防火墙禁用了上网 新建项目 提示安装SDK 等待下载完成 继续建项目 选择手机或平板及目标设
  • JVM实战:JVM内存分配策略

    JVM运行时数据区 Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域 这些区域都有各自的用途 以及创建和销毁的时间 有的区域随着虚拟机进程的启动而存在 有些区域则依赖用户线程的启动和结束而建立和销毁 Ja
  • JAVA学习笔记——内部类

    目录 基本概念 使用内部类访问对象状态 内部类的特殊语法规则 局部内部类 访问外部变量 匿名内部类 静态内部类 基本概念 内部类 inner class 是定义在另一个类中的类 主要特点有 内部类方法可以访问该类定义所在的作用域中的数据 包
  • QString转化成其他字符串

    1 QChar 转char char xxx QChar unicode 2 QString 转 String String xxx QString toStdStrng 3 QString转 char 先将 QString 转为标准库中的
  • 【手把手教你写服务器】客户端程序和服务器程序的简单实现

    文章目录 1 基本TCP客户 服务器程序的套接字函数 2 server c 3 client c 1 基本TCP客户 服务器程序的套接字函数 下图中各个函数的功能 参数及返回值自行查阅 UNIX网络编程卷1 套接字联网API 第4章 2 s
  • Python字符串与Bytes之间的互相转换

    Python字符串与Bytes之间的互相转换 byte转字符串 方式一 data b x31 x32 x33 print data b 123 strdata data decode gbk print strdata 123 strdat
  • .Net core基于xUnit的单元测试查看测试覆盖率

    写代码如何保证代码质量 基本大家都知道要做单元测试 那如何知道你单元测试是不是测试到了所有代码场景呢 这就要通过测试覆盖率来体现了 测试覆盖率 一般来说主要是Line代码行数覆盖率 同样还会有Branch分支覆盖率 Method方法覆盖率等
  • 使用QFrame类实现界面美化

    使用QFrame类实现界面美化 QFrame类是Qt框架中用于创建和显示矩形框架的基本组件 它可以用于美化界面 分割界面等多种场景 在Qt中使用QFrame类非常简单 我们只需要在ui文件中拖动一个QFrame控件并在代码中设置它的属性即可
  • 一刷总结!

    前面都还算顺利 走到贪心和动态规划的时候就感觉比较吃力了 就是那种怎样都感觉自己想不出来的 还需要多多练习和多多理解 有了这个监督之后 已经养成了每天要写算法的习惯 hh不错 希望能继续坚持下去 秋招能有一个好结果
  • Java-1.5

    题目描述 编写程序 计算 9 5 4 5 2 5 3 45 5 3 5 代码 法1 public class Calculate public static void main String args final double a 9 5
  • linux网络编程(三) TCP通信时序与多进程/线程并发服务器的编写

    文章目录 1 TCP通信时序 2 滑动窗口 TCP流量控制 3 出错处理封装函数 4 多进程并发服务器编写 5 多进程并发服务器编写 4 TCP状态转换 5 半关闭 6 2MSL 6 1 2MSL 6 2 端口复用 1 TCP通信时序 下图
  • 用python写注册登录界面web_用Python实现web端用户登录和注册功能

    这篇文章主要介绍了用Python实现web端用户登录和注册功能的教程 需要的朋友可以参考下 用户管理是绝大部分Web网站都需要解决的问题 用户管理涉及到用户注册和登录 用户注册相对简单 我们可以先通过API把用户注册这个功能实现了 RE M
  • GD32F303调试小记(零)之工程创建与编译

    前言 干这行的朋友都知道 真正拿单片机做项目时 作为软件编写人员 你所掌握的肯定不止一款单片机 又或者说你必须有能独立上手新单片机的能力 这里的新指的是对你个人来说是从未接触过的或者不熟悉的 而不一定是说这个单片机有多新 而调试一款新的单片
  • 二分类模型评价指标

    二分类模型指标 混淆矩阵 TP 实际为正预测为正 FP 实际为负但预测为正 TN 实际为负预测为负 FN 实际为正但预测为负 准确率 A c c u r a
  • kafka入门安装及消息发送接受初体验(附源码)

    这里是weihubeats 觉得文章不错可以关注公众号小奏技术 文章首发 拒绝营销号 拒绝标题党 官方文档 https kafka apache org quickstart 版本 3 5 0 安装 这里我们提供两种安装方式 一种是编译好的
  • Async异步处理【Springboot】

    简单实现异步处理 springboot异步处理 先建立一个controller目录 再建一个AsynController java 建立一个service目录 再建立一个AsynController java 启动项目 效果 1 在三秒以后
  • 电子科技大学软件工程期末复习笔记(四):软件设计

    目录 前言 重点一览 软件工程设计 软件设计定义 软件设计包含的两类活动 软件设计包涵 软件的质量属性 各种设计技术 程序结构 深度 宽度 扇入 扇出 完整的设计规格 软件体系架构 用户界面设计的3条原则 用户界面设计的3种分析 结构化设计
  • 5. zksnark 几种实现算法性能对比

    像 zk SNARK 这样的零知识证明有很多应用 Zcash利用零知识证明 来保护隐私 Coda和Mir利用零知识证明将整个区块链压缩到只有几K字节 0x和Matter则利用零知识证明将许多交易封装为以太坊 上的单一证明 1 可信设置 传统
  • Jumpserver 堡垒机

    一 Jumpserver简介 跳板机概述 跳板机就是一台服务器 开发或运维人员在维护过程中首先要统一登录到这台服务器 然后再登录到目标设备进行维护和操作 跳板机缺点 没有实现对运维人员操作行为的控制和审计 使用跳板机的过程中还是会出现误操作