jumperserver堡垒机

介绍

  1. 介绍:

    提供唯一入口(也就是统一设备运维入口),支持Linux、Windows、Unix、MacOS 等 设备资源,实现对服务器器资源操作管理理的集中认证,集中控制,集中审计。提升运维管理理水平。

  2. 之所以用堡垒机的原因:

    互联网企业需要大量的服务器,但是服务器需要高效、安全的去管理,所以就用到了堡 垒机。

    现在比较常见的方案是搭建堡垒机环境作为线上服务器器的入口,所有服务器器只能通 过堡垒机进行行登陆访问。

    用大白话来说: 就是监控运维人员、开发人员对服务器器的命令操作。出了了事故能找 到具体责任人。

  3. 特性:

    精细化的资源与功能授权,让运维人员各司其职

    体系化的指令审计规则,让运维操作安全可控

    支持多重身份认证,让非法访问无所遁形

    主机账号统一管理,SSH密钥对一键批量下发

  4. 展示:

    登入信息仪表盘
    在这里插入图片描述

    资产管理
    在这里插入图片描述
    在这里插入图片描述

    权限管理
    在这里插入图片描述

    会话管理

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

    Web网站会话
    在这里插入图片描述

    Ssh会话
    在这里插入图片描述
    在这里插入图片描述

    日志审计管理

    在这里插入图片描述

搭建

  1. jumpserver堡垒机组件:

    Jumpserver:管理后台,是核心组件

    Koko:实现了 SSH Server 和 Web Terminal

    Server 的组件,提供 SSH 和 WebSocket 接口

    Luna:现在是 Web Terminal 前端,计划前端页面都由该项目提供,Jumpserver 只提供 API,不 再负责后台渲染html等。

  2. 部署Jumpserver

  3. 运行环境

    字符集为中文
    查看

    cat /etc/locale.conf
    

    不是中文则修改

    localedef -c -f UTF-8 -i zh_CN zh_CN.UTF-8
    export LC_ALL=zh_CN.UTF-8
    echo 'LANG=zh_CN.UTF-8' > /etc/locale.conf
    
  4. 部署docker

    阿里云镜像加速配置

    mkdir -p /etc/docker
    cat > /etc/docker/daemon.json <<EOF
    {
      "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
    }
    EOF
    
    yum install -y docker-ce-19.03.5-3.el7.x86_64.rpm 			
    	docker-ce-cli-19.03.5-3.el7.x86_64.rpm 		containerd.io-1.2.6-3.3.el7.x86_64.rpm
    
    vim  /usr/lib/systemd/system/docker.service
    ExecStart=/usr/bin/dockerd  -H tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock --containerd=/run/containerd/containerd.sock  --graph /data/docker
    
    systemctl daemon-reload
    systemctl start docker
    

    开启动网络转发功能,默认会自动开启
    查看:为1是开启的

    cat /proc/sys/net/ipv4/ip_forward
    

    手动开启:

    vim /etc/sysctl.conf 
    net.ipv4.ip_forward = 1 
    
    sysctl -p 	#生效
    

    安装docker-compose,运行命令:

    cd  /usr/local/bin 
    mv  docker-compose-Linux-x86_64  docker-compose
    chmod +x /usr/local/bin/docker-compose
    
  5. 准备 Python3 和 Python 虚拟环境

    安装依赖包

    yum install -y epel-release
    yum -y install wget sqlite-devel xz gcc automake zlib-devel
    	openssl-devel epel-release git
    	python36u python36u-devel mariadb-devel 
    

    编译安装python3.6.1

    tar -xvf Python-3.6.1.tar.xz  -C /usr/local/
    cd /usr/local/Python-3.6.1/
    ./configure  &&  make  -j 4 && make install 
    

    CentOS 6/7 自带的是 Python2,而 Yum 等工具依赖原来的 Python,为了 不扰乱原来的环境我们来使用Python 虚拟环境

    建立 Python 虚拟环境

    cd /usr/local/
    python3 -m venv py3
    source /usr/local/py3/bin/activate
    (py3) [root@xuegod63 ~]#
    #切换成功的,前面有一个py3 标识
    

    设置pip阿里源并升级pip

    mkdir ~/.pip
    vim ~/.pip/pip.conf
    [global]
    index-url = https://mirrors.aliyun.com/pypi/simple/
    
    [install]
    trusted-host=mirrors.aliyun.com
    (py3) [root@jumpserver docker] pip install --upgrade pip
    
  6. 安装 Jumpserver 2.0.0

    tar -xvf jumpserver-v2.0.2.tar.gz  -C /data/
    cd /usr/local/jumpserver/requirements/
    

    安装依赖 RPM 包

    (py3) [root@xuegod63] yum -y install $(cat rpm_requirements.txt) 
    

    安装 Python 库依赖

    (py3) [root@xuegod63] pip install --upgrade setuptools
    (py3) [root@xuegod63] python -m pip install --upgrade pip
    

    远程安装:

    py3) [root@xuegod63] cd /usr/local/jumpserver/requirements/
    (py3) [root@xuegod63] pip install wheel && pip install -r requirements.txt
    

    安装 Redis, Jumpserver 使用 Redis 做 cache 和 celery broke

    yum  -y install redis 
    systemctl enable redis
    systemctl start redis
    

    建数据库 Jumpserver 并授权

    yum -y install mariadb mariadb-devel mariadb-server(也可使用mysql)
    systemctl start mariadb
    systemctl enable mariadb
    #mysql
    create database jumpserver default charset 'utf8';
    grant all on jumpserver.* to 'jumpserver'@'%' identified by '123456';
    

    修改Jumpserver 配置文件
    随机生成2段字符
    给jumpserver配置文件的SECRET_KEY:

    cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 49;echo;echo
    BCpmAcL1GSBV9qv1ICA2wmczmRg1wJgWNaLX6960dWknPcr0A
    

    给jump server配置文件的BOOTSTRAP_TOKEN:

    cat /dev/urandom | tr -dc A-Za-z0-9 | head -c 24;echo;echo
    pikktkcjyAQJ8kTfno5sEVQi
    cd /usr/local/jumpserver/
    cp config_example.yml config.yml
    
    vim /usr/local/jumpserver/config.py
    # 加密秘钥 生产环境中请修改为随机字符串,请勿外泄, 可使用命令生成
    SECRET_KEY: BCpmAcL1GSBV9qv1ICA2wmczmRg1w
    
    # 预共享Token coco和guacamole用来注册服务账号
    BOOTSTRAP_TOKEN: pikktkcjyAQJ8kTfno5sEVQi
    # DEBUG 模式 开启DEBUG后遇到错误时可以看到更多日志
    DEBUG: true
    # 日志级别
    LOG_LEVEL: ERROR
    # 浏览器Session过期时间,默认24小时, 也可以设置浏览器关闭则过期
    SESSION_COOKIE_AGE: 86400
    SESSION_EXPIRE_AT_BROWSER_CLOSE: false
    # 使用Mysql作为数据库
    DB_ENGINE: mysql
    DB_HOST: 192.168.66.243
    DB_PORT: 3306
    DB_USER: jumpserver
    DB_PASSWORD: '123456'
    DB_NAME: jumpserver
    # 运行时绑定端口
    HTTP_BIND_HOST: 0.0.0.0
    HTTP_LISTEN_PORT: 8080
    WS_LISTEN_PORT: 8070
    # Redis配置
    REDIS_HOST: 127.0.0.1
    REDIS_PORT: 6379
    REDIS_PASSWORD:
    #Windows 登录跳过手动输入密码
    WINDOWS_SKIP_ALL_MANUAL_PASSWORD: False
    

    数据库表结构和初始化数据

    (py3) [root@xuegod63] cd /usr/local/jumpserver/utils
    (py3) [root@xuegod63] bash make_migrations.sh
    #在执行这一条命令之前,必续保障之前的pip install ./* 命令已经执行完了,
    #不然后导入不了Django等软件包。
    

    启动Jumpserver

    (py3) [root@xuegod63] cd /usr/local/jumpserver
    (py3) [root@xuegod63] chmod +x jms
    (py3) [root@xuegod63] ./jms start all -d 
    (py3) [root@xuegod63] ./jms restart -d 
    # 后台运行使用 -d 参数 
    

    访问 http://192.168.66.48:8080 用户 : admin 密码: admin

  7. 安装koko组件:SSH Server 和 Web Terminal

    Server 的组件,提供 SSH 和 WebSocket 接口
    导入镜像

    docker load -i jms-koko:2.0.2.tar
    docker load -i jms-guacamole:2.0.2.tar
    

    编辑启动文件

    mkdir -p /opt/docker/jms-koko
    mkdir -p /opt/docker/jms-guacamole
    
    vim /opt/docker/jms-koko/docker-compose.yml
    version: '3'
    services:
      jms_koko:
        image: jumpserver/jms_koko:2.0.2
        restart: always
        environment:
          #指向 jumpserver 的服务端口
          - CORE_HOST=http://192.168.66.50:8080
          #Jumpserver/config.yml 里面的 BOOTSTRAP_TOKEN
          - BOOTSTRAP_TOKEN=pikktkcjyAQJ8kTfno5sEVQi
          - LOG_LEVEL=ERROR
        container_name: jms_koko
        ports:
         - "2222:2222"
         - "5000:5000"
        expose:
         - "2222"
         - "5000"
    
    vim /opt/docker/jms-guacamole/docker-compose.yml
    version: '3'
    services:
      jms_guacamole:
        image: jumpserver/jms_guacamole:2.0.2
        restart: always
        environment:
          #指向 jumpserver 的服务端口
          - JUMPSERVER_SERVER=http://192.168.66.50:8080
          #Jumpserver/config.yml 里面的 BOOTSTRAP_TOKEN
          - BOOTSTRAP_TOKEN=pikktkcjyAQJ8kTfno5sEVQi
          - GUACAMOLE_LOG_LEVEL=ERROR
        container_name: jms_guacamole
        ports:
         - "8081:8080"
        expose:
         - "8081"
    

    启动

    docker-compose -f /opt/docker/jms-koko/docker-compose.yml up -d
    docker-compose -f /opt/docker/jms-guacamole/docker-compose.yml up -d
    

    查看状态

    docker ps -a | grep jms
    
  8. 安装luna、lina组件:Luna现在是 Web Terminal 前端,计划前端页面都由该项目提供

    tar -xvf luna-v2.0.2.tar.gz  -C /data/
    tar -xvf lina-v2.0.2.tar.gz  -C /data/
    

    配置 Nginx 整合各组件
    安装nginx

    安装依赖包:yum -y install gcc pcre-devel openssl-devel
    
    mkdir /data/install/
    安装:tar -xvf nginx-1.18.0.tar.gz -C /data/install/
    指定软件归属:useradd -s /sbin/nologin nginx
    cd /data/install/nginx-1.18.0/
    ./configure --prefix=/data/nginx --user=nginx --group=nginx --with-http_ssl_module 		
    --with-stream
    make && make install
    
    启动服务:/usr/local/nginx/sbin/nginx
    暂停服务:/usr/local/nginx/sbin/nginx -s stop
    重新加载:/usr/local/nginx/sbin/nginx -s reload
    

    配置启动文件

    vim /usr/lib/systemd/system/nginx.service
    [Unit]
    Description=nginx
    After=network.target
      
    [Service]
    Type=forking
    ExecStart=/usr/local/nginx/sbin/nginx
    ExecReload=/usr/local/nginx/sbin/nginx -s reload
    ExecStop=/usr/local/nginx/sbin/nginx -s quit
    PrivateTmp=true
      
    [Install]
    WantedBy=multi-user.target
    systemctl daemon-reload
    

    编辑配置文件

    vim /data/nginx/conf/nginx.conf
         worker_processes  2;
         events {
             worker_connections  2048;
    }
    http {
        server_tokens off;
        server_names_hash_bucket_size 128;
        client_max_body_size 50M;
        log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                          '$status $body_bytes_sent "$http_referer" '
                          '"$http_user_agent" "$http_x_forwarded_for"';
        server {
            listen       80;
            server_name  localhost 192.168.66.58;
         # 录像及文件上传大小限制
    client_max_body_size 100m;
           location /ui/ {
                try_files $uri / /index.html;
                alias /data/lina-v2.0.2/;
            }
            location /luna/ {
                try_files $uri / /index.html;
                alias /data/luna-v2.0.2/;
            }
            #录像存放位置
            location /media/ {
                add_header Content-Encoding gzip;
                root /data/jumpserver-v2.0.2/data/;
            }
        ## 静态资源存放位置
            location /static/ {
                root /data/jumpserver-v2.0.2/data/;
            }
            location /koko/ {
        #koko的对外服务地址
                proxy_pass       http://192.168.66.50: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;
            }
    
            location /guacamole/ {
        #guacamole对外服务地址
                proxy_pass       http://192.168.66.230: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/ {
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    #WS_LISTEN_PORT的对外地址
                proxy_pass http://192.168.66.50: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://192.168.66.50: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://192.168.66.50: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;
            }
    

    运行 Nginx

    nginx -t   # 检测配置文件
    systemctl start nginx
    systemctl enable nginx
    

    访问http://192.168.66.50/
    admin/admin
    接受主键的注册
    在这里插入图片描述
    在这里插入图片描述

    测试连接

    ssh -p2222 admin@192.168.66.48   #密码: admin
    

    在这里插入图片描述

  9. jumpserver平台系统初始化

    9.1、系统基本设置:这里要写成自己真实的URL地址,不然后期用户访问不了。http://192.168.66.48
    在这里插入图片描述

    9.2、配置邮件发送服务器
    点击页面上边的"邮件设置" TAB ,进入邮件设置页面:
    SMTP服务器:smtp.163.com
    在这里插入图片描述

注:自己邮箱要开启smtp和pop3服务。
开启POP3/SMTP/IMAP服务方法:
请登录163邮箱,点击页面右上角的“设置”—在“高级”下,“POP3/SMTP/IMAP”,
勾选图中两个选项,点击确定。即可开启成功。开通后即可用闪电邮、Outlook
在这里插入图片描述
POP3服务器:pop.163.com | SMTP服务器:smtp.163.com | IMAP服务器:imap.163.com

使用

  1. 用户管理:添加用户组。

    点击用户管理 —> 查看用户组 —> 添加用户组—>王者荣耀-华北区运维部门

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

  2. 添加用户

    点击用户管理 —> 用户列表 —> 创建用户
    其中,名称是真实姓名,用户名即 Jumpserver 登录账号。
    在这里插入图片描述
    在这里插入图片描述

    然后点提交。
    查看添加的用户
    在这里插入图片描述

    成功提交用户信息后,Jumpserver 会发送一条设置"用户密码"的邮件到您填写的
    用户邮箱。
    点击链接,开始修改密码:
    在这里插入图片描述

    用户首次登录 Jumpserver,会被要求完善用户信息。
    在这里插入图片描述

    这个需要用户自己生成SSH 密钥,方便后期登录:我在自己的另一台linux上,使用mk 用户生成自己的ssh密钥。

    (py3) [root@xuegod63 luna]# useradd mk123
    (py3) [root@xuegod63 luna]# echo 123456 | passwd --stdin mk123 
    [root@xuegod63 opt]# su - mk123
    [mk@xuegod63 ~]$ ssh-keygen   #一路回车
    [mk@xuegod63 ~]$ cat ~/.ssh/id_rsa.pub 
    ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDE/7Yt3MKTvavCZSV2F9GCRX0snRDyAu2GzvmGaMj1Y1Evv0+bdNYuEVbax/CyakBcaYyBuD427trkQytfbfovc97As4fFV3yhKKKis6D66TR28zH5gGkhuToFhmil9BGFzJqy1M7fne+A18bKvezlFpZn4clwgg3kIqPCbOtQQnA9h1TH5j8lnvMwwcRxenKRMla987TfJ3482aTAoScxNmv2FNNSQmZEKHGPT5MmUIzrm3dwvCotAEmDegxJ0dB5u29tZaHgxMWFf1GRoj3pW8CzMOhug42F9FDF+K9wve5aph0mmc5pe7OKJthWrbv8CEV3T2mRYK4+M5q5sRed mk123@xuegod63.cn
    

    把上面生成的公钥粘到这里:
    在这里插入图片描述

  3. 编辑资产树添加节点

    节点不能重名,右击节点可以添加、删除和重命名节点,以及进行资产相关的操作。
    在这里插入图片描述

    在这里插入图片描述

    改成节点名字为:王者荣耀-华北区-服务器

  4. 创建管理用户

    Jumpserver里各个用户的说明:
    在这里插入图片描述

    管理用户是服务器的 root,或拥有 NOPASSWD: ALL sudo 权限的用户,Jumpserver 使用该 用户来推送系统用户、获取资产硬件信息等。
    在这里插入图片描述

    王者荣耀-华北区-服务器管理用户-root 密码是: 123456
    在这里插入图片描述

    前提,你的王者荣耀-华北区-服务器节点中所有的服务器root用户密码都是:123456
    这样就可以使用此root用户管理服务器。

  5. 创建系统用户

    系统用户是 Jumpserver 跳转登录资产时使用的用户,可以理解为登录资产用户, Jumpserver 使用系统用户登录资产。

    系统用户的 Sudo 栏填写允许当前系统用户免sudo密码执行的程序路径,如默认的 /sbin/ifconfig,意思是当前系统用户可以直接执行 ifconfig 命令或 sudo ifconfig 而不 需要输入当前系统用户的密码,执行其他的命令任然需要密码,来达到权限控制的目的。

    此处的权限应该根据使用用户的需求汇总后定制,原则上给予最小权限即可。

    系统用户创建时,如果选择了自动推送 Jumpserver 会使用 Ansible 自动推送系统用户到资产 中,如果资产(交换机、Windows )不支持 Ansible, 请手动填写账号密码。

    Linux 系统协议项务必选择 ssh 。如果用户在系统中存在,去掉自动生成密钥、自动推送勾选。
    在这里插入图片描述

    增加一个:检查服务器运行状态的用户: user 权限:
    /sbin/ifconfig,/usr/bin/top,/usr/bin/free
    在这里插入图片描述

    再加一个: 系统管理员用户:manager

    在这里插入图片描述

  6. 创建资产

    点击页面左侧的“资产管理”菜单下的“资产列表”按钮,查看当前所有的资产列表。

    点击页面左上角的“创建资产”按钮,进入资产创建页面,填写资产信息。

    IP 地址和管理用户要确保正确,确保所选的管理用户的用户名和密码能"牢靠"地登录指定的 IP 主机上。资产的系统平台也务必正确填写。公网 IP 信息只用于展示,可不填,Jumpserver 连接资产使用的是 IP 信息。
    在这里插入图片描述

    开启虚拟机xuegod64.cn。 一会把这台机器当成资源添加平台中。
    game64.xuegod.cn-王者荣耀-华北区 192.168.1.64
    在这里插入图片描述
    在这里插入图片描述

    资产创建信息填写好保存之后,可以看到已经可以连接资产,说明正常:
    在这里插入图片描述

    如果资产不能正常连接,请检查管理用户的用户名和密钥是否正确以及该管理用户是否能使 用 SSH 从 Jumpserver 主机正确登录到资产主机上。

  7. 网域列表(这个功能,一般情况不用到。)

    网域功能是为了解决部分环境无法直接连接而新增的功能,是通过网关服务器进行跳转登录。

  8. 创建授权规则

    节点,对应的是资产,代表该节点下的所有资产。

    用户组,对应的是用户,代表该用户组下所有的用户。

    系统用户,及所选的用户组下的用户能通过该系统用户使用所选节点下的资产。

    节点,用户组,系统用户是一对一的关系,所以当拥有 Linux、Windows 不同类型资产时,应

    该分别给 Linux 资产和 Windows 资产创建授权规则。
    在这里插入图片描述
    在这里插入图片描述

    授权成功后,你自己手动到上查看:

    tail /etc/passwd -n 5
    postfix:x:89:89::/var/spool/postfix:/sbin/nologin
    ntp:x:38:38::/etc/ntp:/sbin/nologin
    tcpdump:x:72:72::/:/sbin/nologin
    mk:x:1000:1000:mk:/home/mk:/bin/bash
    manager:x:1001:1001::/home/manager:/bin/bash
    

    #自动推送一个帐号,自动在资产服务器上创建系统用户

    visudo  #sudo相关的规则也会被自动推送过来
    manager ALL=(ALL) NOPASSWD: /sbin/,/bin/
    
  9. 用户使用资产

    登录 Jumpserver

    创建授权规则的时候,选择了用户组,这里需要登录所选用户组下面的用户才能看见相应的资产。
    使用无痕浏览器,再打开一个窗口,进行登录:
    在这里插入图片描述

    用户正确登录后的页面:
    在这里插入图片描述

    连接资产,点击页面左边的 Web 终端:
    在这里插入图片描述

    打开资产所在的节点:
    双击资产名字,就连上资产了:
    如果显示连接超时,请检查为资产分配的系统用户用户名和密钥是否正确,是否正确选择 Linux 操作系统,协议 ssh,端口22,以及资产的防火墙策略是否正确配置等信息。
    在这里插入图片描述

  10. 在xshell字符终端下连接jumpserver管理服务器
    在这里插入图片描述

    输入jumpserver用户mk123 和密码123456
    在这里插入图片描述

    点击确定开始连接
    在这里插入图片描述

    Opt> 64   #输入一个64,就可以直接登录:192.168.1.64
    [manager@xuegod64 ~]$ whoami  #登录使用的是系统用户manager
    [manager@xuegod64 ~]$ exit
    Opt> p  #显示你有权限的主机
     ID  Hostname                          IP              LoginAs       Comment                               
      1  game64.xuegod.cn-王者荣耀-华北区 192.168.1.64    [系统管理员用户] 
    Opt> g  #显示你有权限的主机组
    			ID Name            Assets     Comment                                                
    			1   王者荣耀-华北区-服务器                   
    
  11. 查看历史命令记录
    在这里插入图片描述

  12. 查看历史会话并回放视频
    在这里插入图片描述

更多内容,可以参数官方手册:http://docs.jumpserver.org/zh/docs/step_by_step.html

喜欢的亲可以关注点赞评论哦!以后每天都会更新的哦!本文为小编原创文章; 文章中用到的文件、安装包等可以加小编联系方式获得;
欢迎来交流小编联系方式VX:CXKLittleBrother 进入运维交流群

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ElementUI中的 el-pagination 组件提供了 jumper 属性,用于实现快速跳转到指定页码的功能。当 jumper 属性设置为 true 时,会在分页组件的右侧显示一个输入框和一个确定按钮,用户可以在输入框中输入要跳转的页码,然后点击确定按钮实现跳转。 具体实现步骤如下: 1. 在 el-pagination 组件上设置 jumper 属性为 true,例如: ```html <el-pagination background layout="total, sizes, prev, pager, next, jumper" :current-page="tablePage.pageNum" :page-size="tablePage.pageSize" :page-sizes="pageSizes" :total="tablePage.total" @size-change="handleSizeChange" @current-change="handlePageChange" :jumper="true" /> ``` 2. 在 methods 中定义一个处理跳转的方法,例如: ```javascript methods: { handlePageChange(currentPage) { this.tablePage.pageNum = currentPage // 在此刷新数据 }, handleSizeChange(pageSize) { this.tablePage.pageSize = pageSize // 在此刷新数据 }, handleJumpToPage() { // 在此实现跳转逻辑 } } ``` 3. 在 handleJumpToPage 方法中获取用户输入的页码,并进行相应的处理,例如: ```javascript handleJumpToPage() { // 获取用户输入的页码 const inputPageNum = parseInt(this.jumpInput) // 校验用户输入的页码是否合法 if (inputPageNum > 0 && inputPageNum <= Math.ceil(this.tablePage.total / this.tablePage.pageSize)) { this.tablePage.pageNum = inputPageNum // 更新当前页码 // 在此刷新数据 } else { // 弹出提示或进行其他错误处理 } } ``` 通过以上步骤,就可以实现在 ElementUI 的 el-pagination 组件中使用 jumper 功能,允许用户输入要跳转的页码,然后进行相应的跳转操作。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

含义小哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值