jumpServer-02-安装与配置

jumpServer-02-安装与配置



一、什么是jumpServer?

官网:https://www.jumpserver.org/

官方文档:https://docs.jumpserver.org/zh/master/

在这里插入图片描述
在这里插入图片描述

二、jumpServer安装配置

①:初始化配置

01:Linux服务器准备

1.硬件配置

  • 硬件配置如下:
    • 2cpu 4G内存 50G硬盘

2.想要运行jumpServer,需要软件如下

  • python 3.6.x
  • MySQL数据库 5.6以上 或者 mariadb数据库 5.6以上
  • redis 数据库

jumpserver是由python编程语言开发的,旧版的是python2开发的新版的是python3开发的

在这里插入图片描述

02:环境准备,关闭防火墙

执行命令如下:

# 1.清空iptables防火墙规则
iptables -F

# 禁用自启动
systemctl disable firewalld

# 关闭防火墙
systemctl stop firewalld

03: 配置yum源

1.配置yum源,准备好阿里云的yum源,以及epel源

# 先安装wget
yum install wget -y

wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo

2.清空原来yum缓存,生成新的yum缓存

#清空原有的yum缓存
yum clean all

#生成新的yum缓存,便于加速软件下载
yum makecache

04:安装系统初始化所需的软件

比如:vim wget等

yum install -y bash-completion vim lrzsz wget expect nettools nc nmap tree dos2unix htop iftop iotop unzip telnet slpsmisc nethogs glances bc ntpdate openldap-devel

05:安装jumpserver运行所需的依赖环境

yum -y install git python-pip gcc automake autoconf pythondevel vim sshpass lrzsz readline-devel zlib zlib-devel openssl openssl-devel

06:修改系统的字符集,改为是中文的

# 查看当前系统的字符集设置
locale

# 使用以下命令编辑/etc/locale.conf文件(将LANG变量设置为中文(中国)UTF-8编码):
echo 'LANG="zh_CN.UTF-8"' > /etc/locale.conf

# 运行以下命令使设置生效:
source /etc/locale.conf

# 重新启动系统,使更改生效
reboot

在这里插入图片描述

②:安装MySQL8

安装笔记:https://blog.csdn.net/cygqtt/article/details/134258778

  • 安装完MySQL之后,我们需要创建jumpServer所需要的用户信息

1.创建数据库

create database jumpserver default charset 'utf8';

在这里插入图片描述

2.创建用户,且设置密码

create user 'jumpserver'@'%' IDENTIFIED BY 'WWW.jumpserver@666.com';

在这里插入图片描述

3.给创建的用户授予访问数据库的权限

GRANT ALL PRIVILEGES ON jumpserver.* TO 'jumpserver'@'%' WITH GRANT OPTION;

在这里插入图片描述

4.刷新权限

flush privileges;

③:安装Python3.6

由于新版jumpserver是python3.6开发的,因此我们得准备好python3.6的环境

01:下载、解压、安装

# 在线下载
cd /opt && \
wget https://www.python.org/ftp/python/3.6.10/Python-3.6.10.tgz

# 解压
tar -zxf Python-3.6.10.tgz

# 指定安装路径,与编译参数
cd Python-3.6.10/

 #指定位置安装,大概一分钟
./configure --prefix=/opt/python3-6-10/     

ls


make && make install

02: 配置python3的环境变量

1.python3的安装目录 /opt/python3-6-10/bin

在这里插入图片描述

2.编辑 文件 /etc/profile

# 在/etc/profile 文件中最后添加一行 PATH="/opt/python3.6.10/bin:$PATH"
PATH="/opt/python3-6-10/bin:$PATH"

或者

echo PATH="/opt/python3-6-10/bin:$PATH" >> /etc/profile    


# 刷新生效
source /etc/profile	

tail -1 /etc/profile

在这里插入图片描述

3.测试

echo $PATH

python

python3

在这里插入图片描述

03:创建python运行所需的虚拟环境

linux系统内置了python2解析器,那么在你安装了python3之后,你的系统上有多个解释器版本共存你得明确 你的项目用哪一个解释器去运行

在这里插入图片描述

为什么要用虚拟环境virtualenv工具

在这里插入图片描述

1.更新pip源 安装python3的模块

# 更新pip下载源 (先创建一个文件)
mkdir ~/.pip
touch ~/.pip/pip.conf

# 在创建的pip.conf文件中添加pip的源
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

2.下载虚拟环境工具

pip3 install virtualenv

3.使用virtualenv虚拟环境工具,再创建出一个python3解释器,用于运行代码

 virtualenv --python=python3 jmp_venv1

在这里插入图片描述

  • 此时我们的Linux服务器中就有两个python3解释器了
    • 本地解释器(目录):/opt/python3.6.10/bin/python3
    • **创建的虚拟解释器(目录):/opt/Python-3.6.10/jmp_venv1/bin/python3**

在这里插入图片描述

04: 激活虚拟环境,其实是默认修改了环境变量

# 激活虚拟环境,其实是默认修改了环境变量
source /opt/python3-6-10/jmp_venv1/bin/activate

# 使用python3此时使用的就是虚拟环境的
python3

# 退出虚拟环境,查看解释器路径(此时变回了本地的虚拟解释器)
deactivate
which python3

在这里插入图片描述

④:安装Redis

安装笔记:https://blog.csdn.net/cygqtt/article/details/134440080

⑤:jumpServer后台程序部署

01. 下载、解压、安装依赖关系

1.下载

wget https://github.com/jumpserver/jumpserver/releases/download/v2.1.0/jumpserver-v2.1.0.tar.gz

在这里插入图片描述

2.解压

tar -zxf jumpserver-v2.1.0.tar.gz

在这里插入图片描述

3.安装依赖关系

yum install -y bash-completion vim lrzsz wget expect net-tools nc nmap tree dos2unix htop iftop iotop unzip telnet sl psmisc nethogs glances bc ntpdate openldap-devel

02. 安装运行jumpServer所需的模块

  • 由python开发的程序,必须安装该程序使用到的一些模块,才能正确运行

1.进入到以下/opt/jumpserver-v2.1.0/requirements目录中并复制路径,之后会用

在这里插入图片描述
在这里插入图片描述

2.安装jumpServer模块,先激活虚拟环境,然后再安装

source /opt/python3-6-10/jmp_venv1/bin/activate

在这里插入图片描述

3.执行安装命令

# 首先,确保你已经安装了 MySQL 的开发依赖包
sudo yum install mysql-devel -y

# 安装完 MySQL 的开发依赖包后,安装 mysqlclient 库
pip install mysqlclient==1.3.14


cd /opt/jumpserver-v2.1.0/requirements/  
pip install wheel  
pip install --upgrade pip setuptools 
pip install -r requirements.txt

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

03.配置文件

在这里插入图片描述

1.先拷贝一份配置文件

cp config_example.yml config.yml

2.可以先使用命令grep -Ev '^#|^$' config.yml查看一下配置文件

grep -Ev '^#|^$' config.yml

在这里插入图片描述

3.生成密钥

if [ "$SECRET_KEY" = "" ]; then SECRET_KEY=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 50`; echo "SECRET_KEY=$SECRET_KEY" >> ~/.bashrc; echo $SECRET_KEY; else echo $SECRET_KEY; fi

#(jmp_venv1) [root@localhost jumpserver-v2.1.0]# echo $SECRET_KEY (查看生成的密钥)
Ma6MnUujphfqJAE5ILInVnZ9KMCio08MayRmMlbC2P8BavmRof

在这里插入图片描述

4.生成Token

if [ "$BOOTSTRAP_TOKEN" = "" ]; then BOOTSTRAP_TOKEN=`cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 16`; echo "BOOTSTRAP_TOKEN=$BOOTSTRAP_TOKEN" >> ~/.bashrc; echo $BOOTSTRAP_TOKEN; else echo $BOOTSTRAP_TOKEN; fi

# (jmp_venv1) [root@localhost jumpserver-v2.1.0]# echo $BOOTSTRAP_TOKEN (查看生成的Token)
CVl02JJvBI5s2l6i

在这里插入图片描述

5.修改配置文件/opt/jumpserver-v2.1.0/config.yml

# 加密秘钥 生产环境中请修改为随机字符串,请勿外泄, 可使用命令生成 
# $ cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo
SECRET_KEY: Ma6MnUujphfqJAE5ILInVnZ9KMCio08MayRmMlbC2P8BavmRof

# SECURITY WARNING: keep the bootstrap token used in production secret!
# 预共享Token coco和guacamole用来注册服务账号,不在使用原来的注册接受机制
BOOTSTRAP_TOKEN: CVl02JJvBI5s2l6i

# 使用Mysql作为数据库
DB_ENGINE: mysql
DB_HOST: 127.0.0.1
DB_PORT: 3306
DB_USER: jumpserver
DB_PASSWORD: WWW.jumpserver@666.com
DB_NAME: jumpserver

# When Django start it will bind this host and port
# ./manage.py runserver 127.0.0.1:8080
# 运行时绑定端口
HTTP_BIND_HOST: 0.0.0.0
HTTP_LISTEN_PORT: 8080
WS_LISTEN_PORT: 8070

# Use Redis as broker for celery and web socket
# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
REDIS_PASSWORD: 123456

在这里插入图片描述
在这里插入图片描述

  • 修改后保存退出

  • 再次使用命令查看配置文件 (刚刚配置的信息已经有了)

grep -Ev '^#|^$' config.yml

在这里插入图片描述

⑥:数据库迁移并启动服务

01:数据库迁移

  • jumpserver这个程序是由python的web框架django开发而来,必须得先进行数据库迁移,生成库表的信息,才能运行程序

1.可以先看以下此时jumpserver数据库中一张表也没有

在这里插入图片描述

2.生成相应的数据库迁移文件。这些迁移文件包含了对数据库进行更改的指令,例如创建新的表格、添加或删除字段等

进入到这个目录下cd /opt/jumpserver-v2.1.0/apps/里面有一个manage.py的python程序就是jumpserve留的后台入口

# 生成相应的数据库迁移文件。这些迁移文件包含了对数据库进行更改的指令,例如创建新的表格、添加或删除字段等
python3 /opt/jumpserver-v2.1.0/apps/manage.py makemigrations

在这里插入图片描述

3. 开始数据库迁移

python3 /opt/jumpserver-v2.1.0/apps/manage.py migrate

在这里插入图片描述

4.我们在查看一下jumpserver数据库中的表(可以看到生成了很多表)

在这里插入图片描述

02:启动jms服务

1.进入到jumpserver文件中/opt/jumpserver-v2.1.0l里面有一个jms可执行文件

在这里插入图片描述

2.启动

./jms start -d

在这里插入图片描述

03:访问测试

1.先开放8080端口

# 开放 8080 端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent

# 重新加载防火墙配置
firewall-cmd --reload

在这里插入图片描述

2.访问 http://192.168.100.137:8080/

在这里插入图片描述

⑦:部署koko组件

在这里插入图片描述

koko组件实现了SSH Server和Web Terminal Server 的组件,提供 SSH和WebSocket接口,使用 Paramiko和Flask开发

01:下载、解压、配置

1.下载koko源代码

wget https://github.com/jumpserver/koko/releases/download/v2.1.0/koko-v2.1.0-linux-amd64.tar.gz

在这里插入图片描述
在这里插入图片描述

2.解压

tar -zxf koko-v2.1.0-linux-amd64.tar.gz

在这里插入图片描述

3.配置

  • 1.修改一下koko-v2.1.0-linux-amd64文件夹权限(最大权限)
chown -R root:root koko-v2.1.0-linux-amd64

在这里插入图片描述

  • 2. 修改配置文件/opt/koko-v2.1.0-linux-amd64
# 先拷贝一份
cp config_example.yml config.yml

# 修改 配置文件 config.yml
vim config.yml

# 修改以下内容
# Jumpserver项目的url, api请求注册会使用
CORE_HOST: http://127.0.0.1:8080
# 请和jumpserver 配置文件中保持一致,注册完成后可以删除
BOOTSTRAP_TOKEN: CVl02JJvBI5s2l6i
# 设置日志级别 [DEBUG, INFO, WARN, ERROR, FATAL, CRITICAL]
LOG_LEVEL: INFO
# Redis配置
REDIS_HOST: 127.0.0.1
REDIS_PORT: 6379
REDIS_PASSWORD: 123456
REDIS_CLUSTERS:
REDIS_DB_ROOM:
  • BOOTSTRAP_TOKEN 使用的之前生成的Token具体的值在这里插入图片描述

  • 3.使用命令查看一下

grep -Ev '^#|^$' /opt/koko-v2.1.0-linux-amd64/config.yml 

在这里插入图片描述

02:启动koko程序

1.先进入到/opt/koko-v2.1.0-linux-amd64目录下有一个koko的可执行文件

在这里插入图片描述

2.启动程序(加 -d后台运行)

./koko -d

在这里插入图片描述

3.查看一下koko的进程

(jmp_venv1) [root@localhost koko-v2.1.0-linux-amd64]# ps -ef | grep koko
root      93795      1  0 21:28 ?        00:00:00 ./koko -d
root      96009   9957  0 21:29 pts/0    00:00:00 grep --color=auto koko
(jmp_venv1) [root@localhost koko-v2.1.0-linux-amd64]# 

(jmp_venv1) [root@localhost koko-v2.1.0-linux-amd64]# tail /opt/koko-v2.1.0-linux-amd64/data/logs/koko.log 
2024-01-04 21:28:13 [INFO] Exchange share room type: local
2024-01-04 21:28:13 [INFO] Start HTTP server at 0.0.0.0:5000
2024-01-04 21:28:13 [INFO] Start SSH server at 0.0.0.0:2222
(jmp_venv1) [root@localhost koko-v2.1.0-linux-amd64]#

在这里插入图片描述

⑧:部署Guacanole组件

在这里插入图片描述

01:下载、解压

该软件包github已经找不到了,可以通过docker下载,这里直接提供网盘链接

1.下载源码
链接:https://pan.baidu.com/s/1LML-8bitAWuM69bbmcRe8Q?pwd=Coke
提取码:Coke

  • 给下载后的文件修改一个名字

2.解压并改名

  • 1.第一步解压并给解压后的文件改一个名字
tar -xf guacamole-v2.1.0.tar.gz 

mv docker-guacamole-2.1.0 guacamole
  • 2.持续解压
    • 进入到这个/opt/guacamole目录中后发现还有压缩包 我们继续解压
    • 解压guacamole-server-1.2.0.tar.gz后台服务和ssh-forward.tar.gz 转发的包
(jmp_venv1) [root@localhost opt]# cd guacamole/

(jmp_venv1) [root@localhost guacamole-v1-2.1.0]# ls
Dockerfile           guacamole-auth-jumpserver-1.0.0.jar  README.md  s6-overlay-amd64.tar.gz
guacamole-1.0.0.war  guacamole-server-1.2.0.tar.gz        root       ssh-forward.tar.gz

(jmp_venv1) [root@localhost guacamole-v1-2.1.0]# tar -zxf guacamole-server-1.2.0.tar.gz 

(jmp_venv1) [root@localhost guacamole-v1-2.1.0]# tar -zxf ssh-forward.tar.gz 

02:编译安装程序(一)

1.准备编译环境(安装一些依赖包)

yum install cairo-devel libjpeg-turbo-devel libpng-devel libtool uuid-devel -y

# 可选的一些依赖包(我们也安装了)
yum install  freerdp-devel pango-devel libssh2-devel libtelnet-devel libvncserver-devel libwebsockets-devel pulseaudio-libs-devel openssl-devel libvorbis-devel libwebp-devel -y

在这里插入图片描述

03:安装FFmpeg工具

  • 这个工具主要用来处理音视频的,因为jumpserver提供了录制视频功能

1.执行以下命令安装

sudo yum install epel-release -y

sudo rpm -v --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro

sudo rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm

yum install ffmpeg ffmpeg-devell -y

在这里插入图片描述

04:编译安装程序(二)

1.首先进入到/opt/guacamole-v1-2.1.0/guacamole-server-1.2.0目录下

cd /opt/guacamole/guacamole-server-1.2.0

在这里插入图片描述

2.开始编译、安装

./configure --with-init-dir=/etc/init.d

 make && make install

05:安装Java环境

  • 安装jdk

安装笔记:https://blog.csdn.net/cygqtt/article/details/134440080

06:创建运行guacamole所需的文件夹

mkdir -p /config/guacamole /config/guacamole/extensions /config/guacamole/record  /config/guacamole/drive

chown daemon:daemon /config/guacamole/record  /config/guacamole/drive

cd /config

在这里插入图片描述

07:下载tomcat工具

cd /opt/
wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.84/bin/apache-tomcat-9.0.84.tar.gz

在这里插入图片描述

08:部署guacamole和tomcat工具的结合,需要修改他们的配置文件

cd /opt 

tar -xf apache-tomcat-9.0.84.tar.gz 

mv apache-tomcat-9.0.84 tomcat9 

rm -rf /opt/tomcat9/webapps/* 

sed -i 's/Connector port="8080"/Connector port="8081"/g' /opt/tomcat9/conf/server.xml 

echo "java.util.logging.ConsoleHandler.encoding = UTF-8" >> /opt/tomcat9/conf/logging.properties

ln -sf /opt/guacamole/guacamole-1.0.0.war /opt/tomcat9/webapps/ROOT.war 

ln -sf /opt/guacamole/guacamole-auth-jumpserver-1.0.0.jar /config/guacamole/extensions/guacamole-auth-jumpserver-1.0.0.jar 

ln -sf /opt/guacamole/root/app/guacamole/guacamole.properties /config/guacamole/guacamole.properties

在这里插入图片描述

09:设置guacamole的运行环境变量

1.设置环境变量(其中的Toekn换成自己的)

export JUMPSERVER_SERVER=http://127.0.0.1:8080
echo "export JUMPSERVER_SERVER=http://127.0.0.1:8080" >> ~/.bashrc

export BOOTSTRAP_TOKEN=FBEVLP0OKHmNqRMl
export BOOTSTRAP_TOKEN=FBEVLP0OKHmNqRMl >> ~/.bashrc 

export JUMPSERVER_KEY_DIR=/config/guacamole/keys
echo "export JUMPSERVER_KEY_DIR=/config/guacamole/keys" >>~/.bashrc

export GUACAMOLE_HOME=/config/guacamole
echo "export GUACAMOLE_HOME=/config/guacamole" >> ~/.bashrc 

export GUACAMOLE_LOG_LEVEL=ERROR
echo "export GUACAMOLE_LOG_LEVEL=ERROR" >> ~/.bashrc

export JUMPSERVER_ENABLE_DRIVE=true
echo "export JUMPSERVER_ENABLE_DRIVE=true" >> ~/.bashrc

在这里插入图片描述

2.我们可以取出一个环境变量值,看是否配置成功

echo $JUMPSERVER_ENABLE_DRIVE

在这里插入图片描述

10:启动服务

# 启动服务命令
/etc/init.d/guacd start

# 启动tomcat服务
sh /opt/tomcat9/bin/startup.sh 

在这里插入图片描述

⑨:部署LINA组件

在这里插入图片描述

01:下载、解压

1.下载源码

wget https://github.com/jumpserver/lina/releases/download/v2.1.0/lina-v2.1.0.tar.gz

2.解压

tar -zxf lina-v2.1.0.tar.gz

3.将文件lina-v2.1.0 的所有者和所属组都设置为 nginx

#安装nginx
yum install nginx -y    
systemctl start nginx
systemctl enable nginx# 需要提前装好nginx


chown -R nginx:nginx lina-v2.1.0

在这里插入图片描述

⑩:部署Luna组件

在这里插入图片描述

01:下载、解压

1.下载、解压

wget https://github.com/jumpserver/luna/releases/download/v2.1.1/luna-v2.1.1.tar.gz

tar -zxf luna-v2.1.1.tar.gz

在这里插入图片描述

2.修改所属

chown -R root.root luna-v2.1.1

在这里插入图片描述

三、部署Nginx

nginx作用在处理静态文件,以及用于对jumpserver后台程序的反向代理

①:安装nginx

1.安装

yum install nginx -y

2.启动nginx并设置为开机自启

# 启动nginx
systemctl start nginx

# 设置为开机自启
systemctl enable nginx

# 查看运行状态
systemctl status nginx

在这里插入图片描述

②:修改配置文件

1.添加以下配置信息

server {
  listen 80;
  # server_name _;

  client_max_body_size 200m; # 文件大小限制

    # 前端 Lina
  location /ui/ {
    try_files $uri / /index.html;
    alias /opt/lina-v2.1.0/;
  }

  # Luna 配置
  location /luna/ {
    try_files $uri / /index.html;
    alias /opt/luna-v2.1.1/;
  }

  # Core data 静态资源
  location /media/ {
    add_header Content-Encoding gzip;
    root /opt/jumpserver-v2.1.0/data/;
  }

  location /static/ {
    root /opt/jumpserver-v2.1.0/data/;
  }

  # KoKo Lion 配置
  location /koko/ {
    # 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
    proxy_pass http://localhost:5000;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For 	$proxy_add_x_forwarded_for;
    access_log off;
  }

  # guacamole 配置
  location /guacamole/ {
    # 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
    proxy_pass http://localhost:8081;
    proxy_buffering off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $http_connection;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    access_log off;
  }

  location /ws/ {
    # 注意将模板中的组件名称替换为服务实际 ip 地址, 如都在本机部署
     proxy_set_header X-Real-IP $remote_addr;
	 proxy_set_header Host $host;
	 proxy_set_header X-Forwarded-For
	 $proxy_add_x_forwarded_for;
	 proxy_pass http://localhost:8070;
	 proxy_http_version 1.1;
	 proxy_buffering off;
	 proxy_set_header Upgrade $http_upgrade;
	 proxy_set_header Connection "upgrade";
}


  location /api/ {
    proxy_pass       http://localhost:8080;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }


  location /core/ {
    proxy_pass http://localhost:8080;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }

  location / {
    rewrite ^/(.*)$ /ui/$1 last;
  }
}

2.使用nginx -t 检查一下语法是否有误

nginx -t

# 重启
nginx -s reload

在这里插入图片描述

firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8087/tcp --permanent
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=2222/tcp --permanent
firewall-cmd --zone=public --add-port=5555/tcp --permanent
firewall-cmd --reload

或者直接关闭防火墙

sudo systemctl stop firewalld

重新进入python3虚拟环境环境重新启动下jms

cd jumpserver-v2.1.0/

# 先停止
 ./jms stop

# 在启动
./jms start -d

在这里插入图片描述

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

欣慰的三叶草(● ̄(エ) ̄●)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

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

抵扣说明:

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

余额充值