IPsec建立成功业务访问很缓慢问题

(故障案例)来自国外的IPSEC攻击导致爱快路由器带宽被占用满 对于这次故障,起始算是爱快上面的一个小BUG,正常情况下,如果没有配置IPSEC的情况下,那么对应的IPSEC响应机制应该是不会被启动的,而爱快的没配置IPSEC的配置,但是还是响应了对方的报文,导致了这种情况,另外抓包是个好东西,大部分设备都带这样的功能,要多多利用,我们学习知识点就是学的协议本身,了解了,出现故障才能好好的分析,所以大家在学习的时候一定要从技术本身去了解它,不单单是是学会配置就行了,配置任何人都会,但难就在出现问题如何解决了。(如果群满了,可以公众号后台回复‘加群’获取最新群号) 阅读详情

IPsec建立成功业务访问很缓慢问题

故障描述:
某分支与总部建立IPsecVPN,vpn建立成功,但是分支访问总部的OA系统时,访问很缓慢,OA界面背景无法刷新出来也,有一个OA可以进去正常操作,有一个OA无登录也无法操作。
故障分析:
通过制定源目地址的流量统计,并没有发现丢包现象,
通过流量带宽保障也无法流量突发现象,流量也达不到平均值。外网带宽100M,保障带宽60M。
发现新防火墙中有一个新增功能:硬件快转,缺省开启。将其关闭后业务正常。
故障根因:
新版自研芯片防火墙中的硬件快转功能针对现阶段的版本还没有生效,默认开启会影响设备业务访问速度。
后续会更新,新版本已完善此功能。
硬件快转功能介绍:开启硬件快转可实现设备的基本业务加速,如后续报文的快速转发,从而提高设备的业务性能。
在这里插入图片描述

状态检测防火墙报文处理发流程 华为防火墙在处理报文时,其核心在于其状态检测与会话机制:当防火墙接收到报文后,它会在特定时间和条件下创建会话,并对那些与会话表匹配的报文进行特定的转发处理。基于这一关键点,可以将报文通过防火墙的处理过程划分为三个阶段:查询会话表之前、查询会话表过程中、以及查询会话表之后。在整个报文转发的流程中,不通类型的报文会根据配置走入不同分支,被不同的特性处理。所以并非所有报文都会经过上述所有模块的处理。总体分为。 阅读详情

相关推荐

IPSec Over GRE和GRE Over IPSec技术

IPSec Over GRE 和 GRE Over IPSec 一. 技术介绍 IPsec     主要作用是对数据进行加密,因为他能提供所有有时候被单独用作实现加密的一种方法!IPsec建立的是一个逻辑隧道,并不是真正意义上的隧道!并且不能提供路由功能,因为IPsec不支持非ip流量,也不支持广播(组播)! GRE     (通用路由封装)能很好的提供一个真正意义上的点对点的隧道,GRE是一种三层VPN封装技术。GRE可以对某些网络层协议(如IPX、Apple Talk、IP等)的报文进行封装,使封装后

qq_56228347的博客 9868

IPsec简单介绍

VPN是VPN,IPsec是IPSecIPSec是基于ip层的一个加密,也就是说基于VPN的基础上,把这个数据给加密了IPSec不是一个算法,也不是一个加密方式,它是一个协议组(协议组里面有很多协议)IPSec早期是针对ipv6设计的,后来针对ipv4做了一个IPSec的拓展版本(IPSec VPN)IPSec:Internet Protocol Security 基于IP协议的安全VPN:Virtual Private Network 虚拟专用网络。

孑然的博客 1168

GRE over IPSec解决OSPF跨公网问题

拓扑背景 A公司由于业务扩展在某地区成立临时的市场部,现需要将市场部网络接入总部OSPF进行互访 知识回顾 1、OSPF为三层IGP协议,且OSPF的邻居建立通过交互HELLO包,HELLO包通过组播地址224.0.0.5传输。 2、ipsec VPN与GRE同为三层VPN,但是ipsec VPN只支持单播报文的传输,不支持组播;GRE虽然支持组播但是由于是公网环境,本身只是一个明文传输协议,安全性太低,所以我们为GRE打上ipsec安全框架保证数据的安全性。 注意:ISIS虽然也是常用的IG..

weixin_45457085的博客 1万+

IPSec基本原理

IPSec简介 为什么要实施? 实施的最大动机是省钱。 虚拟专用网络的分类: 虚拟专用网分类方法很多。 **站点到站点的虚拟专用网 ** ATM,Rrame Relay, GRE, MPLS 虚拟专用网 , **IPSec 虚拟专用网 **。 常用的是IPSec 虚拟专用网 。 远程拨号虚拟专用网 。 IPSec 虚拟专用网 , PPTP, L2TP + IPSec, **SSL 虚拟专用网 **。 常用的是SSL 虚拟专用网。 什么是IPSec? IPSec(Internet Protocol

曹世宏的博客 5万+

IPSEC的实现方式

IPSEC的实现方式 在IPSEC通信中涉及到一个重要方面,那就是如何定义要保护的数据流(又称为感兴趣流)。这不仅涉及到IPSEC最终要保护哪部分数据,还关系到IPSEC的实现方式,因此有必要把感兴趣流的定义方式进行详细说明。 1. 感兴趣流的定义方式 “感兴趣流”指的是哪些数据可以进入IPsec隧道进行传输,哪些数据不能进入IPsec隧道传输。在现有的IPsec 实现过程中,最常用的实现方式有两种:“基于ACL”、“基于虚拟隧道接口”。下面我们对这两中方式进行详细的介绍。 2. 基于ACL(访问控制)方式

遇见你是我最美丽的意外 9997

避坑指南:华为GRE Over IPsec隧道建立失败常见原因与排查命令

本文详细解析了华为GRE Over IPsec隧道建立失败的常见原因与排查方法,包括IKE SA协商失败、IPsec SA建立问题及GRE隧道故障等关键环节。通过分层排查法和实用命令指南,帮助网络工程师快速定位和解决隧道故障,确保业务连续性。

cumian9828的博客 598

ipsec协议_(故障案例)来自国外的IPSEC攻击导致爱快路由器带宽被占用满

今天一个老哥(一直支持我课程的朋友),找我解决了一个奇怪的故障,那必须解决它!!01奇怪的故障外网流量被占用满老哥找我的时候,正好有时间这个图看了后是不是很怪异,WAN1的下行被占用满了,LAN1接内网的没多大流量02分析发现了问题,开始分析出现的可能性初步从是不是爱快的扩展业务繁心或者是开了L2TP/PPTP把带宽给占用了,但老哥说没有,然后禁止了ping后还是带宽跑满。03...

weixin_39859220的博客 1967

L2TP over IPSEC实战:构建企业远程访问的安全隧道

本文详细介绍了L2TP over IPSEC的实战配置,帮助企业构建安全的远程访问隧道。通过对比L2TP、IPSec和SSL VPN的优缺点,突出IPSec在数据加密和完整性校验方面的优势,并提供华为eNSP模拟器的环境搭建、关键配置步骤及常见故障处理方案,助力企业实现高效安全的远程办公。

weixin_42524276的博客 666

ipsec 建立正常后业务端口测试通过但是业务访问故障

怀疑是两端通过esp加密后报文长度超出了公网接口设置的MTU范围,检查总部公网侧端口发现其接口的mtu设置为1400,tcp mss设置为1350,这会导致分支1460的包过来后无法正常分片,将其总部和分支公网侧端口均设置为mtu1400 tcp mss 1200后,故障解除。分支和总部服务器可以互访,分支测试总部服务器80端口开放正常,排除两侧因策略的影响。但是总部服务器web业务和数据库业务均出现无法访问,web页面打不开,数据库连接失败。

解不开的未知数 2016

IPSec高级配置与故障排查

当本端发起IPSec隧道协商的IP地址与实际应用IPSec策略的接口IP地址不同时,需要配置local-address为本端发起协商的IP地址,且该地址需要和对端使用remote-address命令设置的目的地址一致。查看IPSec处理报文的统计信息,如受安全保护的进出报文统计信息、加解密报文统计信息、被丢弃的受安全保护的详细统计信息以及IKE协商相关的报文统计信息等,这有助于IPSec故障诊断和维护。当在防火墙B的公网接口增加了sub地址并修改了IPSec配置后,发现隧道建立不成功。

悦分享 813

锐捷网络—VPN功能—IPSEC 基础配置—IPSec使用动态模式

IPSEC动态隧道一般应用于分支节点较多的总分拓扑结构,在中心点配置动态隧道接受各分支的IPSEC VPN拨入。中心点配置简单、易于维护、可扩展性强。

君逍遥o 1837

Linux拨IPSec网络不通,ISAKMP/IPSEC SA协商成功但数据不通

1、故障现象在路由器上查看isakmp sa和ipsec sa都已经成功建立,但通过ipsec保护的业务无法正常通信1)查看isakmp sa,成功建立:Ruijie#show crypto isakmp sadestination source state conn-id lifeti...

weixin_28736355的博客 1342

Blender软件导出地形到Gazebo中

Blender软件导出地形到Gazebo中,并配置纹理、刚度、高度。

m0_70652514的博客 3376

ipsec与服务器协议失败,IPSEC SA无法协商成功

1、故障现象通过IPSEC加密的业务无法正常开通,在IPSEC中心点或客户端路由器上执行show crypto isakmp sa命令发现isakmp sa已经成功建立:Ruijie#show crypto isakmp sadestination source state conn-id ...

weixin_32352621的博客 4927

POI 写word,添加标题,表格,图片,自动生成目录,合并单元格

工程地址:https://github.com/zheng-chang-wei/word package com.example.demo1.poi; import org.apache.poi.xwpf.usermodel.XWPFDocument; import java.io.File; import java.io.FileOutputStream; public class ...

zheng_chang_wei的博客 6154

如何实现C++动态调用动态链接库(DLL或SO)

使用函数指针来定义函数的类型,以便在动态库中找到的函数能够正确地调用。函数指针的类型必须与函数的签名(参数类型和返回类型)匹配。// 函数指针#ifdef _MSC_VER // Windows环境下的导出声明__declspec。

weixin_48438353的博客 7984

2020年网络搭建与应用国赛题-防火墙ipsec建立分解

2020 年全国职业院校技能大赛中职组“网络搭建与应用”赛项竞赛样卷 ——防火墙IPsec建立分解 题目要求:  集团防火墙与广东办事处防火墙之间使用互联地址建立 IPSEC 隧道,集团防火墙侧使用 E0/3 侧接口地址,实现广东办事处营 销 业 务 终 端 172.40.11.100/32与 托 管 在 运 营 商 机 房172.40.254.254/32业务通过逻辑隧道进行转发 赛题拓扑: 根据题目要求,换另一句话讲就是:  FW-1的客户端:172.40.254.254/32 和  FW-2

Hades_Ling的优快云博客 2665

Seurat 单细胞转录组测序数据分析教程(三)——python(scanpy)

文章参考至,做了一个更详细的解读。本教程探讨了 scanpy 的可视化可能性,分为三个部分:嵌入的散点图(例如 UMAP、t-SNE)使用已知标记基因鉴定簇差异表达基因的可视化在本教程中,我们将使用来自 10x 的数据集,其中包含来自PBMC的 68k 个细胞。Scanpy 在其分布中包括该数据集的简化样本,该数据集仅包含 700 个细胞和 765 个高度可变的基因。该数据集已经过预处理和 UMAP 计算。在本教程中,我们还将使用以下文献标记:B细胞:CD79A、MS4A1。

coffeeii的博客 5827

IPSec知识点学习

5、 对于IPSEC VPN,若一端公网地址固定,一端公网地址不固定(如通过PPPOE拨号方式,或DHCP分配等),则两端IKE对 等体需配置为野蛮模式,且公网地址不固定端需使用id-type name (默认是id-type ip)、remote name(ike local name默认是网关设备名称)和 remote addess方式,IPSEC流量触发为有固定公网地址端单向触发;第5、6个报文使用第3、4个报文交互后产生的相关密钥进行验证及加密处理。

新时代先锋的博客 1万+

创建可视化机房

(3)窗户位置创建好以后需要对窗户的墙面镂空位置进行修补,具体操作为,选中镂空位置的顶点(这里必须是选择一个平面的顶点,不要跨平面选择),实际操作如下图:选择点以后,鼠标右键,选择【从顶点创建边/面】,或者按F键,随后对其他镂空位置进行相同操作;(2)将【物体模式】修改为【编辑模式】,选中-x对应面的所有顶点,移动顶点位置,其他放小调整按照同理,找到选中对应面的所有顶点,移动位置即可;调整动画事件轴上的线,选中关键帧的时间,调整模型的位置或者旋转角度,具体根据插入关键帧菜单选择的项进行模型的相关调整。

SmileBu丿㦌的博客 2067

本地部署大模型框架 LMStudio和Ollama+WebUI对比

之前我们的辣妈系列文章介绍了很多如何使用Ollama框架+OpenWebUI做很多大模型框架下相关的事情。之后我们也尝试了LMStudio这样一体化的工具。本文介绍下LMStudio 和 Ollama+Web UI 各有优劣,具体选择取决于你的需求。

ms44的专栏 4028

IPSEC(上)--IPSEC简介+协议框架

IPSEC 思维导图:

YOUNG_SPY的博客 2140

TC3XX - MCAL知识点(二十四):UART MCAL配置及代码实战

UART驱动程序负责按照UART协议提供通信服务。ASCLIN模块为异步通信提供硬件支持,实现UART协议。UART驱动程序提供了配置、初始化、数据传输、接收等功能,还提供了中止传输和中止接收 abort等可选特性。软硬件匹配关系如下:UART驱动程序使用ASCLIN进行数据的传输和接收。驱动程序使用的关键硬件功能特性是:1、全双工异步工作模式2、支持半双工工作模式3、16字节的TXFIFO4、16字节的RXFIFO5、2 ~ 16位数据帧6、校验位生成/检查7、一个或两个停止位。

梦想技术家 1831

使用IKE建立保护IPv6报文的IPsec隧道

正文共:999 字 11 图,预估阅读时间:1 分钟前面我们介绍了IPv4向IPv6过渡阶段的两种应用场景,分别是GRE over IPv6/ IPv4 over IPv6(配置GRE over IPv6隧道)、IPv6 over IPv4(配置IPv6 over IPv4的手动隧道和自动隧道),通过抓包我们可以看到,这两种封装方式对业务报文没有任何保护,毫无安全性可言。如果我们想提高安全性,类似...

衡水铁头哥的博客 1390

编写python脚本调用ordinals以及BRC20的接口

1、钱包地址生成walletreceive,对应ord命令:ord wallet receive。6、测试手动出块generate,这个只在regtest链节点用得上。所有接口都是post请求,采用postman进行测试。4、测试bitcoin转币sendtoaddress。7、测试其他的wallet方法wallet。2、钱包币种铭刻inscription,对应bitcoin-cli命令。对应bitcoin-cli命令。对应bitcoin-cli命令。fee.json文本模板。还可以加很多根据需要加减。

云深海阔专栏 1047

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

上一篇: Windows Server2012R2文件服务器安装与配置
下一篇: 分享华为视频IVS1800功能测试记录,给想了解华为视频监控伙计们
Huy-C
博客等级 码龄14年 106粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

Huy-C

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

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

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

打赏作者

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

抵扣说明:

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

余额充值