云主机开年特惠28.8元/年,0元秒杀等你来抢!
查看详情

活动

天翼云最新优惠活动,涵盖免费试用,产品折扣等,助您降本增效!
热门活动
  • 安全隔离版OpenClaw NEW OpenClaw云服务器专属“龙虾“套餐低至1.5折起
  • 天翼云新春焕新季 NEW 云主机开年特惠28.8元/年,0元秒杀等你来抢!
  • 云上钜惠 爆款云主机全场特惠,2核4G只要1.8折起!
  • 中小企业服务商合作专区 国家云助力中小企业腾飞,高额上云补贴重磅上线
  • 出海产品促销专区 NEW 爆款云主机低至2折,高性价比,不限新老速来抢购!
  • 天翼云奖励推广计划 加入成为云推官,推荐新用户注册下单得现金奖励
免费活动
  • 免费试用中心 HOT 多款云产品免费试用,快来开启云上之旅
  • 天翼云用户体验官 NEW 您的洞察,重塑科技边界

息壤智算

领先开放的智算服务平台,提供算力、平台、数据、模型、应用“五位一体”智算服务体系,构建全流程的AI基础设施能力
AI Store
  • 算力市场
  • 模型市场
  • 应用市场
  • MCP市场
公共算力服务
  • 裸金属
  • 定制裸金属
训推服务
  • 模型开发
  • 训练任务
  • 服务部署
模型推理服务
  • 模型广场
  • 体验中心
  • 服务接入
应用托管
  • 应用实例
科研助手
  • 科研智能体
  • 科研服务
  • 开发机
  • 并行计算
大模型
  • DeepSeek-V3.1
  • DeepSeek-R1-0528
  • DeepSeek-V3-0324
  • Qwen3-235B-A22B
  • Qwen3-32B
智算一体机
  • 智算一体机
模型适配专家服务
  • 模型适配专家服务
算力服务商
  • 入驻算力服务商

应用商城

天翼云精选行业优秀合作伙伴及千余款商品,提供一站式云上应用服务
进入甄选商城进入云市场进入AI Store创新解决方案公有云生态专区智云上海应用生态专区
建站工具
  • 新域名服务
  • SSL证书
  • 翼建站
企业办公
  • 安全邮箱
  • WPS 365 天翼云版
  • 天翼企业云盘(标准服务版)
灾备迁移
  • 云管家2.0
  • 翼备份(SaaS版)

定价

协助您快速了解云产品计费模式、价格详情,轻松预估上云成本
价格计算器
  • 动态测算产品价格
定价策略
  • 快速了解计费模式

合作伙伴

天翼云携手合作伙伴,共创云上生态,合作共赢
天翼云生态合作中心
  • 天翼云生态合作中心
天翼云渠道合作伙伴
  • 天翼云代理渠道合作伙伴
天翼云服务合作伙伴
  • 天翼云集成商交付能力认证
天翼云应用合作伙伴
  • 天翼云云市场合作伙伴
  • 天翼云甄选商城合作伙伴
天翼云技术合作伙伴
  • 天翼云OpenAPI中心
天翼云培训认证
  • 天翼云学堂
  • 天翼云市场商学院
天翼云合作计划
  • 云汇计划
天翼信创云专区
  • 信创云专区
  • 适配互认证

开发者

开发者相关功能入口汇聚
技术社区
  • 专栏文章
  • 互动问答
  • 技术视频
资源与工具
  • OpenAPI中心
培训与认证
  • 天翼云学堂
  • 天翼云认证
开源社区
  • 魔乐社区
  • OpenTeleDB

支持与服务

为您提供全方位支持与服务,全流程技术保障,助您轻松上云,安全无忧
文档与工具
  • 文档中心
  • 新手上云
  • 自助服务
  • OpenAPI中心
定价
  • 价格计算器
  • 定价策略
基础服务
  • 售前咨询
  • 在线支持
  • 在线支持
  • 工单服务
  • 服务保障
  • 会员中心
增值服务
  • 红心服务
  • 首保服务
  • 客户支持计划
  • 专家技术服务
  • 备案管家
我要反馈
  • 建议与反馈
  • 用户体验官
信息公告
  • 客户公告

了解天翼云

天翼云秉承央企使命,致力于成为数字经济主力军,投身科技强国伟大事业,为用户提供安全、普惠云服务
品牌介绍
  • 关于天翼云
  • 智算云
  • 天翼云4.0
  • 新闻资讯
  • 天翼云APP
基础设施
  • 全球基础设施
  • 信任中心
最佳实践
  • 精选案例
  • 超级探访
  • 云杂志
  • 分析师和白皮书
  • 天翼云·创新直播间
市场活动
  • 2025智能云生态大会
  • 2024智算云生态大会
  • 2023云生态大会
  • 2022云生态大会
  • 天翼云中国行
天翼云
  • 活动
  • 息壤智算
  • 产品
  • 解决方案
  • 应用商城
  • 定价
  • 合作伙伴
  • 开发者
  • 支持与服务
  • 了解天翼云
      • 文档
      • 控制中心
      • 备案
      • 管理中心
      对等连接_相关内容
      • 多账号管理
        添加成员账号 1. 进入云防火墙(原生版)控制台,在左侧导航栏选择“设置中心 > 多账号管理”。 2. 单击“添加成员账号”。 3. 在弹出的对话框中选择授权账号,也可根据账号ID/名称精确查找。 4. 添加完账号后,单击“确定”,等待账号验证通过。 注意 若多账号不在同一个资源池,账号列表仍可获取企业组织下全部账号信息,但仅支持资源池间云间高速流量的防护,暂不支持跨资源池防护EIP、ELB、NAT、对等连接、云专线资产。 查看账号成员资产 可在“防火墙开关 > 互联网边界防火墙开关”、“防火墙开关 > VPC边界防火墙开关”页面,通过资产归属列找到添加成员账号的资产,对其开启或关闭防护。 删除成员账号 1. 在成员账号列表中,找到待删除的账号,选择“更多 > 删除”; 2. NAT、对等连接、云专线、云间高速资产若为手动引流的资产,请先手动关闭防护再删除成员账号。
        来自:
        帮助文档
        云防火墙(原生版)
        用户指南(C100)
        设置中心
        多账号管理
      • 产品功能
        安全编排 安全编排支持剧本管理、流程管理、数据类管理(安全实体对象)和资产连接管理等。同时,可以自定义剧本和流程等。 通过安全编排可以对安全响应剧本进行拖拽式的灵活编排,动态适配您的业务需求。也可以对安全运营的对象、交互的页面进行灵活扩展和定义。 安全编排功能介绍: 功能模块 功能详情 运营对象 集中对数据类、数据类类型、分类映射等运营对象进行管理。 剧本编排 支持对剧本、流程、资产连接、实例的全生命周期管理。 页面布局 提供安全可视化低代码开发平台,基于此平台可自定义安全分析报告、告警管理、事件管理、漏洞管理、基线管理、威胁情报指标库管理等页面布局。 插件管理 支持将安全编排流程中使用的插件进行统一管理。 数据集成 通过集成云原生安全产品,进行联动操作或数据对接。集成后,可以检索并分析所有收集到的日志。 数据集成功能说明: 功能模块 功能详情 数据集成 云内置采集系统,支持一键集成存储、管理与监管、安全等多种云产品的日志数据。集成后,可以检索并分析所有收集到的日志。
        来自:
        帮助文档
        态势感知(专业版)(新版)
        产品介绍
        产品功能
      • 配置镜像仓库
        本文介绍如何配置镜像仓库。 在没有添加镜像之前,页面会提示“暂无仓库镜像信息”。要获取新的仓库镜像列表,首先需要配置镜像仓库。 操作步骤 1. 登录容器安全卫士控制台。 2. 在左侧导航栏,选择“镜像安全”,进入镜像安全页面。 3. 选择“仓库管理”页签,进入仓库管理页面,查看仓库配置列表。 4. 单击仓库配置列表右上角的“添加仓库”,页面右侧弹出添加仓库页面。 5. 填写仓库的相关参数。 参数 说明 仓库名称 输入仓库名称。 仓库类型 仓库类型支持Harbor、Jfrog、Huawei、Huawei CCE Agile、Registry、Aliyun、AWS、Microsoft、金山云。 仓库地址 仓库地址支持HTTP、HTTPS两种协议。 仓库用户名 输入仓库的用户名。 仓库密码 输入仓库的密码。 扫描节点 选择扫描容器所在节点。 自动扫描新增镜像 选择是否自动扫描新增镜像。 选择“自动”,仓库中每拉取一个新增的镜像后,系统就会自动进行扫描。 6. 填写完成后可单击“测试连接”,若提示“连接成功”,证明信息填写正确,单击“保存”完成添加。
        来自:
        帮助文档
        容器安全卫士
        用户指南
        镜像安全
        配置镜像仓库
      • 灾备升主
        本节描述了灾备实例升为主实例的操作场景、注意事项和操作步骤等内容。 操作场景 当主实例所在区域发生突发性自然灾害等状况,主节点无法连接,可将异地灾备实例升为主实例,在应用端修改数据库连接地址后,即可快速恢复应用的业务访问。 注意事项 灾备升主后的新主实例和原主实例将会解除灾备关系。 操作步骤 步骤 1 登录管理控制台。 步骤 2 单击管理控制台左上角的 ,选择区域。 步骤 3 选择“数据库 > 关系型数据库”。进入关系型数据库信息页面。 步骤 4 单击灾备实例名称,进入实例的基本信息页面。 步骤 5 在左侧导航栏,选择“容灾管理”。 步骤 6 在容灾关系列表单击“操作”列的“灾备升主”。 步骤 7 在弹框中,单击“确认”,开始下发灾备升主任务。 步骤 8 可在“任务中心”中查看任务的执行结果,当任务状态为完成时,表示灾备升主任务成功。 步骤 9 需用户手动将业务切换到新主实例。 结束
        来自:
        帮助文档
        关系数据库PostgreSQL版
        用户指南
        容灾管理
        灾备升主
      • 术语解释
        本文将为您介绍算力专网产品相关的术语概念。 中国电信下一代承载网(CN2DCI) 中国电信融合原CN2和DCI两张网络之后构建的面向2B业务的差异化、智能化、服务化专用承载网,目标建成技术领先、行业最有竞争力的2B网络。 CN2DCI网络新平面 中国电信基于SDN架构,在CN2DCI网络基础上通过引入SRv6+EVPN等技术重构的高质量、高可靠、差异化精品网络。 SRv6(Segment Routing IPv6) SRv6是一种网络转发技术,SR指Segment Routing技术,v6指原生IPv6,SRv6就是IPv6+Segment Routing,是SR技术的IPv6演进版本。 多协议标签交换(MPLS,MultiProtocol Label Switch) 结合二层交换和三层路由的集成数据传输技术。 虚拟专网(VPN,Virtual Private Network) 利用开放的公共网络建立专用数据传输通道,将不同站点连接起来并提供安全的端到端数据通信的广域网组网方式。 EVPN (Ethernet Virtual Private Network) 是一种用于二层网络互联的VPN技术,采用类似于BGP/MPLS IP VPN 的机制,通过扩展BGP协议,使用扩展后的可达性信息,使不同站点的二层网络间的MAC地址学习和发布过程从数据平面转移到控制平面。 运营商边界设备(PE,Provider Edge) 位于运营商网络边缘,用于连接CE设备,一般为路由器。 客户边界设备(CE,Customer Edge) 位于客户站点边缘,用于连接PE设备,一般为路由器。
        来自:
        帮助文档
        算力专网
        产品介绍
        术语解释
      • 禁用卷
        本节主要介绍如何使用API禁用卷。 此操作用来禁用卷。 说明 仅3.9之前版本支持。 注意 如果禁用卷的编号是0(卷的编号可以通过查询指定卷获取),禁用后: 如果客户端保持与该卷所属iSCSI target的连接,则客户端可以继续正常访问该iSCSI target下的其他卷。 如果客户端与该卷所属iSCSI target断开连接后再重新连接,可能会导致无法再正常访问该iSCSI target下的其他卷,如出现此情况,将该卷启用后即可重新正常访问。 请求语法 plaintext PUT /rest/v1/block/lun/lunName/disable HTTP/1.1 Date: date Host: ip:port Authorization: authorization 请求参数 参数 类型 描述 是否必须 lunName String 要禁用卷的卷名称。 取值:长度范围是1~16,只能由字母、数字和短横线()组成,字母区分大小写,且仅支持以字母或数字开头。 是 请求示例1 禁用卷lun02a,卷编号为0。 plaintext PUT /rest/v1/block/lun/lun02a/disable HTTP/1.1 Date: Fri, 29 Jul 2022 07: 12: 46 GMT Authorization: HBlock userName:signature Host: 192.168.0.121: 1443 ContentLength: 0 响应示例1 plaintext HTTP/1.1 200 OK xhblockrequestid: 79c24ffcf1f84c0c8a6a2250cc8ffb96 Connection: keepalive ContentType: application/json;charsetutf8 ContentLength: 151 Date: Fri, 29 Jul 2022 07: 12: 46 GMT Server: HBlock { "data": { "message": "Disable LUN lun02a successfully. This is LUN 0, if the client reconnects, it may not be able to access other LUNs of the target." } }
        来自:
        帮助文档
        存储资源盘活系统
        API参考
        卷管理
        禁用卷
      • 连接类
        本文汇总了使用弹性IP连接类的问题。 同时拥有自定义路由和弹性公网IP的访问外网的优先级是什么? 弹性IP的优先级高于VPC路由表中的自定义路由。示例如下: 假如VPC路由表中存在一条自定义路由,目的地址为默认路由(0.0.0.0/0),下一跳为NAT网关。 如果VPC内的ECS绑定了EIP,会在ECS内增加默认网段的策略路由,并且优先级高于VPC路由表中的自定义路由,此时会导致流量转发至EIP出公网,无法抵达NAT网关。 EIP连接出现问题时,如何排查? 问题描述:用户的弹性云主机已绑定EIP,但是无法连接到Internet。 排查思路:弹性云主机通过EIP访问Internet的流程如下图所示: 图 EIP网络示意图 本问题请按照以下思路进行排查处理。 图排查思路 1.查看弹性云主机运行是否正常 2.查看弹性云主机内部网络配置是否正确 3.查看EIP是否创建并绑定弹性云主机 4.查看EIP是否绑定弹性云主机主网卡 5.查看是否放通针对连接的安全组 6.查看弹性云主机子网是否设置拦截 步骤一:查看弹性云主机运行是否正常 检查您的弹性云主机是否正常运行。 弹性云主机运行状态如果不是运行状态,请尝试启动/重启弹性云主机。 步骤二:查看弹性云主机内部网络配置是否正确 1.确认弹性云主机网卡已经正确分配到IP地址。 登录弹性云主机内部,使用命令ifconfig或ip address查看网卡的IP信息。 注:Windows弹性云主机可以在命令行中执行ipconfig查看。 2.确认虚拟IP地址已经正确配置在网卡上。 当您使用了虚拟IP,需要确认虚拟IP是否正确配置在网卡上。 登录弹性云主机内部,使用命令ifconfig或ip address查看网卡的IP信息。如果没有虚拟IP地址,可以使用命令ip addr add 虚拟IP地址 eth0给弹性云主机添加正确的配置。 图查看网卡的虚拟IP地址 查看是否有默认路由信息,如果没有,则可以通过ip route add添加路由。 图查看默认路由 步骤三:查看EIP是否创建并绑定弹性云主机 检查您的EIP是否已经创建并绑定到该弹性云主机,若未创建&绑定,请先完成创建&绑定。 步骤四:查看EIP是否绑定弹性云主机主网卡 检查您的EIP是否绑定在弹性云主机的主网卡。若未绑定主网卡,需绑定至弹性云主机的主网卡上。 您可以在弹性云主机详情页的网卡页签下进行查看,默认列表第一条为主网卡。 步骤五:查看是否放通弹性云主机所在的安全组 检查您的安全组规则是否已经配置。 请根据实际需求,选择性配置安全组规则(Remote IP指的是放行的IP地址,0.0.0.0/0表示放通所有的IP地址,请谨慎使用)。 步骤六:查看弹性云主机子网是否设置拦截 检查您弹性云主机使用的网卡所在子网的网络ACL是否会对流量进行拦截。 您可以在虚拟私有云页面左侧导航栏选择网络ACL进行配置,请确认弹性云主机涉及的子网已放通。
        来自:
        帮助文档
        弹性IP EIP
        常见问题
        连接类
      • 高频常见问题
        网络管理 集群安全组规则配置 如何修复出现故障的容器网卡? 为什么容器无法连接互联网?
        来自:
        帮助文档
        云容器引擎
        常见问题
        高频常见问题
      • Service相关问题
        问题现象 创建LoadBalancer Service后,Service状态为pending,Service事件提示“ failed to ensure load balancer: failed to create elb, error: method not support”。 处理建议 该问题系CCM与资源委托的连接中断,可重启kubesystem命名空间下的ccsecloudcontrollermanager恢复。
        来自:
        帮助文档
        云容器引擎 专有版/托管版
        常见问题
        网络
        Service相关问题
      • 软件连接器实例安装
        连接器安装选型 注意 连接器所安装部署的虚拟机或服务器需由客户自行购买提供,可根据推荐参数规格进行配置。为保障访问连接高可用,建议您一个连接器集群安装并启动至少2个服务器或虚拟机。 虚拟机或服务器配置 连接器所安装部署的虚拟机或者服务器的配置要求如下: 注意 理论转发带宽指标值,将受连接器转发链路上的带宽值以及链路上的网卡带宽性能影响,例如若需达到100Mbps的转发带宽,则需要使用千兆网卡,若需达到1000Mbps的转发带宽,则需配置使用万兆网卡,若完整访问链路需经过互联网,则将受限于连接器互联网网络的带宽峰值。 CPU核心数 内存(基于本机可用冗余内存存在差异) 磁盘 网络访问要求 理论支持转发带宽 2核 2GB 40GB 主机需要能访问公网(如百度) 200Mbps 2核 4GB 40GB 主机需要能访问公网(如百度) 400Mbps 4核 8GB 40GB 主机需要能访问公网(如百度) 800Mbps 4核 8GB(冗余内存大于4GB) 40GB 主机需要能访问公网(如百度) 1000Mbps 8核 16GB 40GB 主机需要能访问公网(如百度) 1200Mbps
        来自:
        帮助文档
        边缘安全加速平台
        零信任网络服务
        网络管理
        连接器管理
        软件连接器实例安装
      • 公网NAT网关通过多网关扩展容量
        步骤说明 通过NAT网关SNAT规则的配置,实现网关功能(此处仅为演示,也可以配置为DNAT规则)。 操作步骤 1. 登录天翼云控制中心,选择“网络>NAT网关”,进入NAT网关信息展示页面。点击NAT网关名称,进入NAT网关1详情规则页面。 2. 点击“添加SNAT规则”,弹出添加SNAT规则对话框,进行参数配置。 子网:选择要使用SNAT的对应子网。 弹性IP:选择购买的弹性IP1。 说明:选择多个弹性IP时,业务连接会通过轮询方式分配到多个弹性IP,由于每个连接的流量不同,可能会出现多弹性IP业务流量不均匀的情况,建议您将每个弹性IP加入到同一个共享带宽中以避免单弹性IP带宽达到上限导致业务受损;并且同一个内网IP访问单一目的IP,可能使用不同的EIP。访问单一目标的并发连接数过多时,会造成端口分配失败,需持续监控SNAT源端口溢出丢包数。 3. 配置好相关参数后,点击“确定”,等待SNAT规则状态变为运行中,即完成SNAT规则配置。 4. 选择“网络>NAT网关”,进入NAT网关信息展示页面。点击NAT网关名称,进入NAT网关2详情规则页面。 5. 点击“添加SNAT规则”,弹出添加SNAT规则对话框,进行参数配置。 子网:选择要使用SNAT的对应子网。 弹性IP:选择购买的弹性IP2。 6. 配置好相关参数后,点击“确定”等待SNAT规则状态变为运行中,即完成SNAT规则配置。
        来自:
        帮助文档
        NAT网关
        快速入门
        公网NAT网关
        公网NAT网关通过多网关扩展容量
      • 使用LocalPV静态存储卷
        1、创建持久卷(PV) 使用kubectl连接集群,创建示例yaml文件pvexample.yaml: plaintext apiVersion: "v1" kind: "PersistentVolume" metadata: name: "localpvk8s" spec: accessModes: "ReadWriteOnce" capacity: storage: "1Gi" local: path: "/zy1" nodeAffinity: required: nodeSelectorTerms: matchExpressions: key: "kubernetes.io/hostname" operator: "In" values: "ccseagent29999e7689" persistentVolumeReclaimPolicy: "Retain" volumeMode: "Filesystem" 执行以下命令,创建PV plaintext kubectl apply f pvexample.yaml 查看创建的PV: 登录“云容器引擎”管理控制台; 在集群列表页点击进入指定集群; 进入主菜单“存储”——“持久卷”,在持久卷列表查看。 2、创建持久卷声明(PVC) 使用kubectl连接集群,创建示例yaml文件pvcexample.yaml: plaintext apiVersion: "v1" kind: "PersistentVolumeClaim" metadata: name: "localpvck8s" namespace: "default" spec: accessModes: "ReadWriteOnce" resources: requests: storage: "1Gi" volumeMode: "Filesystem" volumeName: "localpvk8s" 执行以下命令,创建PVC plaintext kubectl apply f pvcexample.yaml 查看创建的PVC: 登录“云容器引擎”管理控制台; 在集群列表页点击进入指定集群; 进入主菜单“存储”——“持久卷声明”,在持久卷列表查看。 3、创建工作负载 使用kubectl连接集群,创建示例yaml文件stsexample.yaml: plaintext apiVersion: "apps/v1" kind: "StatefulSet" metadata: name: "localpvsts" namespace: "default" spec: podManagementPolicy: "OrderedReady" replicas: 1 revisionHistoryLimit: 10 selector: matchLabels: name: "localpvsts" serviceName: "" template: metadata: labels: app: "" ccseappname: "" kubernetes.io/qos: "None" name: "localpvsts" source: "CCSE" spec: containers: image: "nginx:1.23.2alpine" imagePullPolicy: "IfNotPresent" name: "container1" resources: limits: cpu: "100m" memory: "128Mi" requests: cpu: "100m" memory: "128Mi" terminationMessagePath: "/dev/terminationlog" terminationMessagePolicy: "File" volumeMounts: mountPath: "/tmp" name: "volume1" dnsPolicy: "ClusterFirst" restartPolicy: "Always" schedulerName: "defaultscheduler" securityContext: {} terminationGracePeriodSeconds: 30 volumes: name: "volume1" persistentVolumeClaim: claimName: "localpvck8s" updateStrategy: rollingUpdate: partition: 0 type: "RollingUpdate" 执行以下命令,创建StatefulSet plaintext kubectl apply f stsexample.yaml 查看创建的有状态负载: 登录“云容器引擎”管理控制台; 在集群列表页点击进入指定集群; 进入主菜单“工作负载”——“有状态”,在列表查看。
        来自:
        帮助文档
        云容器引擎 专有版/托管版
        用户指南
        存储
        本地存储
        使用LocalPV静态存储卷
      • 管理SNAT规则
        参数 参数说明 源网段类型 选择VPC内子网:选择现有子网,使子网内云主机通过SNAT方式访问云资源。手动输入自定义网段:自定义一个网段,使网段内服务器或云主机通过SNAT方式访问云资源。 子网/源网段 子网为需要关联的VPC中的子网,只能在未设置SNAT规则的子网下创建SNAT规则。源网段为自定义网段或某个主机地址,支持配置0.0.0.0/0的地址段,为所有经过私网NAT网关的报文进行源地址转换。 中转IP 用于NAT地址转换的IP地址,NAT网关根据对应规则会把通过NAT网关的报文的源地址更换为中转IP地址; 只能使用未绑定的中转IP或者被绑定在当前NAT网关中SNAT或DNAT规则上的中转IP。若无符合条件的中转IP,您可前往创建中转IP后,刷新即可。 选择多个中转IP时,业务连接会通过轮询方式分配到多个中转IP,由于每个连接的流量不同,可能会出现多中转IP业务流量不均匀的情况;并且同一个内网IP访问单一目的IP,可能使用不同的中转IP。访问单一目标的并发连接数过多时,会造成端口分配失败,需持续监控 描述 SNAT规则信息描述。
        来自:
        帮助文档
        NAT网关
        操作指南
        私网NAT网关
        管理SNAT规则
      • 违规整改帮助
        清理违规内容 您可根据管控通知、或联系客服了解管控原因、获取存在违规信息的具体链接,然后参考《++安全违规信息类型说明++》进一步排查定位违规内容,并自行完成清理。 若您的对象存储OSS文件由于违规信息被冻结或限制访问,可直接删除违规文件。 清理挖矿程序 1. 挖矿程序一般很难清理,强烈建议您在++备份重要数据++后,重新初始化云盘 ,可确保完全清理挖矿程序。 2. 您也可以按以下步骤对您的服务进行排查: 排查是否有异常的CPU占用(注:挖矿木马可能不会占满您的CPU,但CPU占用会长时间持续稳定在一定水平,如20%、50%); 排查是否有异常的网络连接,如连接非常见端口、连接未知IP/海外IP等; 排查系统定时任务中是否存在未知/恶意命令。 3. 您可以免费试用服务器安全(原生版)、云防火墙(原生版),以辅助您排查挖矿活动。 服务器安全卫士(原生版)清理挖矿程序:登录服务器安全卫士(原生版)控制台→绑定防护配额→ 全盘病毒扫描→ 告警处理; 云防火墙(原生版)防止挖矿程序再植入:登录云防火墙(原生版)控制台→ 登入云防火墙(原生版)实例配置页面 → 网络 → 安全域 → 编辑安全域 → 威胁防护配置 → 打开病毒过滤,攻击防护开关。 说明 申请产品免费试用请联系客户经理,试用扫描结果仅作紧急排查辅助,不能作为唯一参考。
        来自:
        帮助文档
        法律声明
        安全管控规则
        安全违规处理帮助与常见问题
        违规整改帮助
      • WAF监控指标说明
        指标ID 指标名称 指标含义 取值范围 测量对象 监控周期(原始指标) cpuutil CPU使用率 该指标用于统计测量对象的CPU利用率。 单位:百分比 采集方式:100%减去空闲CPU占比 0~100 % 值类型:Float 独享引擎实例 1分钟 memutil 内存使用率 该指标用于统计测量对象的内存利用率。 单位:百分比 采集方式:100%减去空闲内存占比 0~100 % 值类型:Float 独享引擎实例 1分钟 diskutil 磁盘使用率 该指标用于统计测量对象的磁盘利用率。 单位:百分比 采集方式:100%减去空闲磁盘占比 0~100 % 值类型:Float 独享引擎实例 1分钟 diskavailsize 磁盘可用空间 该指标用于统计测量对象的磁盘可用空间。 单位:byte、KB、MB、GB、TB、PB 采集方式:空闲磁盘空间大小 ≥0 byte 值类型:Float 独享引擎实例 1分钟 diskreadbytesrate 磁盘读速率 该指标用于统计测量对象每秒从磁盘读取的字节数。 单位:byte/s、KB/s、MB/s、GB/s 采集方式:每秒从磁盘读取的字节数 ≥0 byte/s 值类型:Float 独享引擎实例 1分钟 diskwritebytesrate 磁盘写速率 该指标用于统计测量对象每秒写入磁盘的字节数。 单位:byte/s、KB/s、MB/s、GB/s 采集方式:每秒写入磁盘的字节数 ≥0 byte/s 值类型:Float 独享引擎实例 1分钟 diskreadrequestsrate 磁盘读操作速率 该指标用于统计测量对象每秒从磁盘读取的请求数。 单位:请求/秒 采集方式:每秒磁盘处理的读取请求数 ≥0 request/s 值类型:Float 独享引擎实例 1分钟 diskwriterequestsrate 磁盘写操作速率 该指标用于统计测量对象每秒写入数据到磁盘的请求次数。 单位:请求/秒 采集方式:每秒磁盘处理的写入请求数 ≥0 request/s 值类型:Float 独享引擎实例 1分钟 networkincomingbytesrate 网络流入速率 该指标用于统计测量对象每秒流入测量对象的网络流量。 单位:byte/s、KB/s、MB/s、GB/s 采集方式:每秒从网络适配器输入的流量 ≥0 byte/s 值类型:Float 独享引擎实例 1分钟 networkoutgoingbytesrate 网络流出速率 该指标用于统计测量对象每秒流出测量对象的网络流量。 单位:byte/s、KB/s、MB/s、GB/s 采集方式:每秒从网络适配器输出的流量 ≥0 byte/s 值类型:Float 独享引擎实例 1分钟 networkincomingpacketsrate 网络流入包速率 该指标用于统计测量对象每秒流入测量对象的数据包数量。 单位:packet/s 采集方式:每秒从网络适配器流入的数据包数 ≥0 packet/s 值类型:Int 独享引擎实例 1分钟 networkoutgoingpacketsrate 网络流出包速率 该指标用于统计测量对象每秒流出测量对象的数据包数量。 单位:packet/s 采集方式:每秒从网络适配器流出的数据包数 ≥0 packet/s 值类型:Int 独享引擎实例 1分钟 concurrentconnections 并发连接数 该指标用于统计测量对象当前处理的并发连接数量。 单位:count 采集方式:系统当前的并发连接数量 ≥0 count 值类型:Int 独享引擎实例 1分钟 activeconnections 活跃连接数 该指标用于统计测量对象当前打开的连接数量。 单位:count 采集方式:系统当前的活跃连接数量 ≥0 count 值类型:Int 独享引擎实例 1分钟 latestpolicysynctime 最近一次策略同步的耗时 该指标用于统计测量对象最近一次同步WAF策略的耗时。 单位:ms 采集方式:最近一次同步WAF策略的耗时 ≥0 ms 值类型:Int 独享引擎实例 1分钟
        来自:
        帮助文档
        Web应用防火墙(独享版)
        监控与审计
        监控
        WAF监控指标说明
      • 数据同步服务
        4. 约束 源实例和目标实例处于同一VPC同一子网,默认可直接使用数据同步服务进行迁移操作,否则需要对两个实例网络进行打通。 请确保源实例、目标实例未因白名单设置、安全组设置而导致连接不通。
        来自:
        帮助文档
        分布式缓存服务Redis版
        数据迁移指南
        数据同步服务
      • 线下IDC通过专线和代理服务器接入HSS
        资源 资源说明 数量 云专线(CTCDA,Cloud Dedicated Access) DC,作为连接第三方主机和云上资源的专属通道。 1 弹性云主机(Elastic Cloud Server) ECS,作为代理服务器,将线下IDC的请求转发至HSS后台。 1
        来自:
        帮助文档
        企业主机安全
        最佳实践
        线下IDC通过专线和代理服务器接入HSS
      • 监控VPN
        本文向您介绍VPN连接服务的监控概览。 监控是保持VPN可靠性、可用性和性能的重要部分,通过监控,用户可以观察VPN资源。为使用户更好地掌握自己的VPN运行状态,天翼云提供了云监控服务(CES)。您可以使用该服务监控您的VPN,执行自动实时监控、告警和通知操作,帮助您更好地了解VPN的各项性能指标。
        来自:
        帮助文档
        VPN连接
        用户指南
        监控
        监控VPN
      • 管理JMeter测试报告
        概念 解释 各项指标总量 所有线程组各项指标总量的汇总。 最大并发:最大并发操作的虚拟用户数。 RPS:RPS请求总数/响应总时长。 正常返回:如设置了检查点,检查点通过的事务响应数,如未设置默认为返回2XX的事务响应数。 响应时间:指从客户端发一个请求开始计时,到客户端接收到从服务器端返回的响应结果结束所经历的时间。 响应码:记录压测任务进行中响应码分布的情况。 带宽:记录压测任务运行所消耗的实时带宽变化。 异常返回:解析失败、校验失败、响应超时、3XX、4XX、5XX、连接被拒绝的事务响应数。 SLA事件:SLA中定义的事件发生情况。 平均RPS 是指性能测试在统计周期内每秒发送到被测服务器的请求数实时统计,RPS统计周期内发送的请求数/统计周期。 平均RT 记录压测任务平均响应时间的变化。 并发数 记录压测任务运行时,当前并发操作的虚拟用户数的变化。 带宽(KB/S) 记录压测任务运行所消耗的实时带宽变化。 上行带宽:从JMeter测试执行机往外发送出去数据的速度。 下行带宽:JMeter测试执行机接收到数据的速度。 响应状态分布 正常返回、解析失败、校验失败、响应超时的每秒处理事务数,该项指标与思考时间、并发用户、服务器响应能力均有关,比如思考时间为500ms,如果服务器对于当前用户的上个请求响应时间小于500ms,则该用户每秒请求2次。 正常返回:如设置了检查点,检查点通过的事务响应数,如未设置默认为返回2XX的事务响应数。 异常返回:解析失败、校验失败、响应超时、3XX、4XX、5XX、连接被拒绝的用例响应数。 解析失败:HTTP响应无法被正常解析的数量。l校验失败:如设置了检查点,检查点未通过的事务响应数,如未设置,返回不是2XX的事务响应数。 响应超时:是在设置的响应超时时间内,对应的TCP连接中没有响应数据返回的用例请求数量。 连接被拒绝:发送报文建立连接时,服务器拒绝连接数。 其他错误:不属于以上几种错误的数量。 响应码分布 1XX/2XX/3XX/4XX/5XX。 响应时间区间比例 用例的响应时间区间比例。 TP最大响应时间 指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取对应的百分比的那个值作为TPXX的最大响应时间。 TP50:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第50%的那个值作为TP50的值。 TP75:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第75%的那个值作为TP75的值。 TP90:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第90%的那个值作为TP90的值。 TP95:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第95%的那个值作为TP95的值。 TP99:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第99%的那个值作为TP99的值。 TP99.9:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第99.9%的那个值作为TP99.9的值。 TP99.99:指在一个时间段内(如10s),统计该请求每次响应所消耗的时间,并将这些时间按从小到大的顺序进行排序,取第99.99%的那个值作为TP99.99的值。
        来自:
        帮助文档
        性能测试PTS
        用户指南
        JMeter测试工程管理
        管理JMeter测试报告
      • SSL VPN应用场景
        本文为您介绍SSL VPN应用场景。 在移动互联网的背景下,SSL VPN可以帮助客户随时随地建立一条安全隧道,直达客户云上VPC。客户可以使用多种客户端(如个人电脑、手机、平板等),通过安装配置客户端软件,采用证书、密码等认证方式与VPC自由连接。 支持用户级限速。 配置简单,全程加密,保证数据传输安全。
        来自:
        帮助文档
        VPN连接
        产品介绍
        应用场景
        SSL VPN应用场景
      • 客户端错误码
        错误编码 错误原因 错误类型 解决方案 0x1000 调用client的IPC接口超时 客户端异常 重试刚刚执行的操作。 0x1001 准备调用client的IPC接口,但与client的IPC连接已断开 客户端异常 重试刚刚执行的操作。 0x1002 调用了client的IPC接口,等待client发回响应的过程中检测到IPC连接意外断开 客户端异常 重试刚刚执行的操作。 0x1003 尝试修复client服务时,发现安装包文件不存在 客户端异常 检查杀毒软件是否将安装包拦截,若被拦截则将此程序加到exe里。 0x1004 尝试修复client服务时,出现其他未识别的错误 客户端异常 请重新启动零信任客户端并登录。 0x1005 修复client服务后,重新通知client上线失败 客户端异常 请重新启动零信任客户端并登录。 0x1006 登录成功后,超过一定时间(180s)仍未收到底层反馈隧道网络打通情况 客户端异常 请重新启动零信任客户端并登录。 0x1007 请求服务端接口时,服务端响应了未定义的报错 服务端异常 重试刚刚执行的操作。
        来自:
        帮助文档
        边缘安全加速平台
        公共服务
        AOne客户端用户指南
        客户端错误码
      • Windows弹性云主机不能复制粘贴内容
        本文带您解决Windows弹性云主机不能复制粘贴内容的问题。 故障描述 当本地通过客户端软件远程连接Windows弹性云主机后,不能复制、粘贴内容,右键单击菜单栏,“粘贴”选项置灰。 故障原因 本地远程桌面配置未进行本地驱动器映射。 远程服务器rdpclip.exe进程异常。 远程服务器系统禁用了弹性云主机和本地主机之间的文件复制粘贴功能。 解决步骤 故障1:未进行本地驱动器映射(以映射本地C盘、D盘、E盘、F盘为例,见图一)。 1. 在本地运行窗口输入 mstsc回车打开“远程桌面连接”。 2. 选择“本地资源”页签,并勾选“本地设备和资源”栏的“剪贴板”、“驱动器”。 3. 单击“确定”,检查复制、粘贴功能是否恢复正常。 故障2:服务器rdpclip.exe进程异常,需要重启rdpclip.exe进程。 1. 远程桌面连接服务器,启动Windows任务管理器,在进程页签下结束rdpclip.exe进程。 图2 结束rdpclip.exe进程 2. 打开“开始”菜单中的“运行”窗口,输入 rdpclip.exe,重新启动rdpclip.exe。 图3 启动rdpclip.exe进程 3. 检查复制、粘贴功能是否恢复正常。 故障3:系统禁止弹性云主机和本地主机之间进行文件的复制粘贴功能,需重新配置弹性云主机的本地组策略编辑器,开启复制粘贴功能。 1. 打开“开始 > 运行”,输入 gpedit.msc,打开“本地组策略编辑器”。 2. 依次找到:“计算机配置 > 管理模板>Windows组件 > 远程桌面服务 >远程桌面会话主机 > 设备和资源重定向”。 3. 将“不允许剪贴板重定向”、“不允许COM端口重定向”、“不允许驱动器重定向”、“不允许LPT端口重定向”几个配置都设置为“已禁用”。 图4 设备和资源重定向 4. 设置完成之后重启弹性云主机使配置生效,检查复制、粘贴功能是否恢复正常。
        来自:
        帮助文档
        弹性云主机 ECS
        故障修复
        操作系统类(Windows)
        Windows弹性云主机不能复制粘贴内容
      • 添加HTTPS监听器
        参数 说明 示例 名称 监听器名称。 listenerpnqy 前端协议/端口 负载分发的协议和端口。 协议选择HTTPPS,端口取值范围[165535]。 HTTPS/443 云主机证书 协议类型为HTTPS时,需绑定云主机证书。 云主机证书用于SSL握手协商,需提供证书内容和私钥。 高级配置 访问策略 支持通过白名单和黑名单进行访问控制: 允许所有IP访问 黑名单 白名单 白名单 IP地址组 设置白名单或者黑名单时,必须选择一个IP地址组。如果还未创建IP地址组,需要先创建IP地址组。 ipGroupb2 安全策略 支持选择可用的安全策略。 安全策略TLS12 双向认证 一般的HTTPS业务场景只对云主机做认证,因此只需要配置云主机的证书即可。某些关键业务(如银行支付),需要对通信双方的身份都要做认证,即双向认证,以确保业务的安全性。后端云主机无需额外配置双向认证。。 CA证书 双向认证开启后需要配置CA证书。 空闲超时时间(秒) 如果在超时时间内一直没有访问请求,负载均衡会中断当前连接,直到下一次请求到来时再重新建立新的连接。 时间取值范围[04000]。 60 请求超时时间(秒) 客户端向负载均衡发起请求,如果在超时时间内客户端没有完成整个请求的传输,负载均衡将放弃等待关闭连接。 时间取值范围[1300]。 60 响应超时时间(秒) 负载均衡向后端云主机发起请求,如果超时时间内接收请求的后端云主机无响应,负载均衡会向其他后端云主机重试请求。如果重试期间后端云主机一直没有响应,则负载均衡会给客户端返回HTTP 504错误码。 时间取值范围[1300]。 说明: 当开启了会话保持功能时,响应超时时间内如果对应的后端云主机无响应,则直接会返回HTTP 504错误码。 60 描述 对于监听器描述。 字数范围:0/255。 标签 可通过配置该项使用标签功能。标签的“键”和“值”是一一对应的,其中“键”值是唯一的。
        来自:
        帮助文档
        弹性负载均衡 ELB
        用户指南
        监听器
        添加HTTPS监听器
      • 查看策略
        sectionc25499a17ddc4ac3)、删除策略。 单击某个策略对象前的,可展开该策略对象所有相关的操作连接列表,单击操作连接列表所在操作列的“历史记录”可查看该操作连接的历史记录信息。 6. 单击管理页面的“任务视图”页面,可以查看应急策略的任务的统计情况,其中应急策略的新增、删除操作会生成任务。 “任务视图”页面包含如下信息: 策略下发:以柱状图形式呈现各个防线类型的应急策略任务下发的成功次数和失败次数。应急策略支持的防线类型请参考约束与限制说明。 区域策略下发:以柱状图形式呈现各个区域应急策略任务下发的成功次数和失败次数。 企业项目下发:以柱状图形式呈现各企业项目应急策略任务下发的成功次数和失败次数。 任务列表:以列表形式呈现应急策略任务的基本信息。任务列表参数说明如下: 参数名称 参数说明 任务名称 显示任务名称信息,生成任务时由系统自动生成。 任务ID 显示任务ID信息,生成任务时由系统自动生成。 策略类型 显示应急策略任务的策略类型信息:“阻断”或“白名单”。 “阻断”:阻断的策略对象将被禁止访问。 “白名单”:加入白名单的策略对象访问请求将被放行。 对象类型 应急策略任务的对象类型:“IP”、“账号”、“域名”。 创建人 任务的创建人信息。 状态 显示任务的状态信息: “任务执行中”:显示任务执行的进度。 “成功”:任务中执行成功的策略对象个数。 “失败”:任务中执行失败的策略对象个数。 创建时间 应急策略任务的创建时间。 操作 对应急策略任务进行重试操作,当应急策略任务存在部分或全部策略对象任务下发失败的场景可执行该操作。 针对下发失败的任务,单击任务所在行“操作”列的“重试”。 如果需要对批量任务进行重试操作,可以在任务列表中勾选需要重试的任务,并单击列表上方“批量重试”。
        来自:
        帮助文档
        态势感知(专业版)(新版)
        用户指南
        风险预防
        策略管理
        查看策略
      • 迁移前准备工作
        本章介绍迁移前需要做哪些准备工作。 已注册天翼云账号,并开通天翼云,登陆并完成实名认证。 注册天翼云账号并完成实名认证。 账号充值,且账号余额不少于100元。 建议您目的端账户余额不少于100元,避免迁移过程中欠费,导致迁移失败。主机迁移服务本身免费,但迁移过程中会创建按量付费资源并产生少量费用。详情参考100元余额说明。 已获取帐号迁移权限。 如果使用帐号登录,默认拥有迁移权限,可无需配置迁移权限;如果使用IAM用户登录,请创建用户组并授权进行授权。详情请参考创建用户并授权使用SMS。 已获取目的端帐号的AK/SK。 迁移时使用AK/SK进行鉴权认证,获取目的端帐号的AK/SK操作请参见如何获取AK/SK?(账号)或如何获取AK/SK?。 操作系统要求。 主机迁移服务支持迁移的源端服务器操作系统列表请参见Windows兼容性列表、Linux兼容性列表。 迁移网络要求。 1. 源端能连接到天翼云API Gateway(端口:443)。源端出网方向端口,建议全部开放。 2. 使用IPv6进行迁移时,要求源端支持IPv4/IPv6双栈网络。 3. 源端能连接到目的端。 1. 若使用弹性公网IP连接,目的端需要提前购买和配置正确的EIP。 2. 若使用专线或者VPN,需提前购买和配置正确的专线或VPN。 4. 目的端服务器所属安全组需要开放端口: 1. Windows系统需要开放TCP的8899端口、8900端口和22端口。 2. Linux系统文件级迁移开放22端口。 3. 以上端口,建议只对源端服务器开放。 4. 防火墙开放端口与操作系统开放端口保持一致。
        来自:
        帮助文档
        主机迁移服务SMS
        快速入门
        迁移前准备工作
      • 使用IPv6进行主机迁移
        本章介绍如何使用IPv6进行数据迁移。 迁移前准备 已注册天翼云账号,并开通天翼云,登陆并完成实名认证。 注册天翼云账号并完成实名认证。 账号充值,且账号余额不少于100元。 建议您目的端账户余额不少于100元,避免迁移过程中欠费,导致迁移失败。主机迁移服务本身免费,但迁移过程中会创建按量付费资源并产生少量费用。详情参考100元余额说明。 已获取帐号迁移权限。 如果使用帐号登录,默认拥有迁移权限,可无需配置迁移权限;如果使用IAM用户登录,请创建用户组并授权进行授权。详情请参考创建用户并授权使用SMS。 已获取目的端帐号的AK/SK。 迁移时使用AK/SK进行鉴权认证,获取目的端帐号的AK/SK操作请参见如何获取AK/SK?(账号)或如何获取AK/SK?。 操作系统要求。 主机迁移服务支持迁移的源端服务器操作系统列表请参见Windows兼容性列表、Linux兼容性列表。 迁移网络要求。 1. 源端能连接到天翼云API Gateway(端口:443)。源端出网方向端口,建议全部开放。 2. 使用IPv6进行迁移时,要求源端支持IPv4/IPv6双栈网络。 3. 源端能连接到目的端。 1. 若使用弹性公网IP连接,目的端需要提前购买和配置正确的EIP。 2. 若使用专线或者VPN,需提前购买和配置正确的专线或VPN。 4. 目的端服务器所属安全组需要开放端口: 1. Windows系统需要开放TCP的8899端口、8900端口和22端口。 2. Linux系统文件级迁移开放22端口。 3. 以上端口,建议只对源端服务器开放。 4. 防火墙开放端口与操作系统开放端口保持一致。
        来自:
        帮助文档
        主机迁移服务SMS
        最佳实践
        使用IPv6进行主机迁移
      • 使用SFS静态存储卷
        步骤二:创建持久卷声明(PVC) 1. 创建示例yaml文件pvcstaticnas.yaml: shell apiVersion: v1 kind: PersistentVolumeClaim metadata: annotations: volume.beta.kubernetes.io/storageprovisioner: nas.csi.cstor.com name: pvcstaticnas namespace: default spec: accessModes: ReadWriteOnce resources: requests: storage: 500Gi volumeMode: Filesystem volumeName: {YOURPVNAME} 替换PV名称 2. 执行以下命令,创建pvc: plaintext kubectl apply f pvcstaticnas.yaml 步骤三:创建工作负载 1. 创建示例yaml文件podpvcstaticnas.yaml: shell apiVersion: apps/v1 kind: StatefulSet metadata: name: nginxpvcstaticnas labels: app: nginxpvcstaticnas spec: replicas: 1 serviceName: "" selector: matchLabels: app: nginxpvcstaticnas template: metadata: labels: app: nginxpvcstaticnas spec: containers: image: "registryhuadong1.crsinternal.ctyun.cn/opensource/nginx:1.26alpineslim" imagePullPolicy: "IfNotPresent" name: "nginx" resources: limits: cpu: "100m" memory: "256Mi" requests: cpu: "100m" memory: "256Mi" volumeMounts: mountPath: "/mnt/data" name: "volume1" subPath: "ccsetest" volumes: name: "volume1" persistentVolumeClaim: claimName: {YOURPVCNAME} 替换为步骤2中的PVC名称 2. 执行以下命令,创建StatefulSet: plaintext kubectl apply f podpvcstaticnas.yaml 步骤四:验证数据持久化 1. 登录弹性容器服务管理控制台。 2. 在容器组列表页点击刚才创建的实例。 3. 点击“远程连接”页签,进入到容器内。 4. 向/mnt/data 目录下写一个文件,执行: plaintext echo "Hello World" > /mnt/data/test.log 5. 查看/mnt/data 目录下文件,执行: plaintext cat /mnt/data/test.log 预期结果如下: 6. 退出“远程连接”,使用kubectl删除pod,会触发pod自动重建,等待Pod重新运行正常。 plaintext kubectl delete po nginxpvcstaticnas0 7. 对新建Pod,登录弹性容器服务管理控制台,继续执行“远程连接”,进入到容器内查看数据。执行: plaintext cat /mnt/data/test.log 预期结果如下: 8. 以上步骤说明,pod删除重建后,重新挂载SFS弹性文件,数据仍然存在,说明SFS弹性文件系统中的数据可持久化保存。
        来自:
        帮助文档
        云容器引擎 Serverless版
        用户指南
        存储
        弹性文件存储卷
        使用SFS静态存储卷
      • 记录什么到日志
        logcheckpoints (boolean) 导致检查点和重启点被记录在服务器日志中。一些统计信息也被包括在日志消息中,包括写入缓冲区的数据和写它们所花的时间。这个参数只能在postgresql.conf文件中或在服务器命令行上设置。默认值是关闭。 logconnections (boolean) 导致每一次尝试对服务器的连接被记录,客户端认证的成功完成也会被记录。只有超级用户在会话开启时可以改变这个参数,并且在所有会话中不能改变。缺省是off。注意某些客户端程序(例如telesql)在要求密码时会尝试连接两次,因此重复的“收到连接”消息并不一定表示一个错误。 logdisconnections (boolean) 记录会话终止原因。日志输出提供信息类似于logconnections,以及会话持续时间。只有超级用户在会话开启时可以改变这个参数,并且在所有会话中不能改变。缺省是off。 logduration (boolean) 导致每一个完成的语句的持续时间被记录。默认值是off。只有超级用户可以改变这个设置。对于使用扩展查询协议的客户端,解析、绑定和执行步骤的持续时间将被独立记录。注意设置这个选项和设置logmindurationstatement为零之间的区别是,超过logmindurationstatement强制查询的文本被记录,但这个选项不会。因此,如果logduration为on并且logmindurationstatement为正值,所有持续时间都将被记录,但是只有超过阈值的语句才会被记录查询文本。这种行为有助于在高负载安装中收集统计信息。 logerrorverbosity (enum) 控制为每一个被记录的消息要写入到服务器日志的细节量。有效值是TERSE、DEFAULT和VERBOSE,每一个都为显示的消息增加更多域。TERSE排除记录DETAIL、HINT、QUERY和CONTEXT错误信息。VERBOSE输出包括SQLSTATE错误码以及产生错误的源代码文件名、函数名和行号。只有超级用户能够更改这个设置。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        参数指南
        错误报告和日志相关参数
        记录什么到日志
      • 配置HBase/CloudTable目的端参数
        本章节主要介绍配置HBase/CloudTable目的端参数。 作业中目的连接为配置HBase连接或配置CloudTable连接时,即导入数据到以下数据源时,目的端作业参数如下表所示。 表 HBase/CloudTable作为目的端时的作业参数 参数名 说明 取值样例 表名 写入数据的HBase表名。如果是创建新HBase表,支持从源端拷贝字段名。单击输入框后面的按钮可进入表的选择界面。 该参数支持配置为时间宏变量,且一个路径名中可以有多个宏定义变量。使用时间宏变量和定时任务配合,可以实现定期同步新增数据。 TBL2 导入前清空数据 选择目的端表中数据的处理方式: 是:任务启动前会清除目标表中数据。 否:导入前不清空目标表中的数据,如果选“否”且表中有数据,则数据会追加到已有的表中。 是 Row key拼接分隔符 可选参数,用于多列合并作为rowkey,默认为空格。 , Rowkey冗余 可选参数,是否将选做Rowkey的数据同时写入HBase的列,默认值“否”。 否 压缩算法 可选参数,创建新HBase表时采用的压缩算法,默认为值“NONE”。 NONE:不压缩。 SNAPPY:压缩为Snappy格式。 GZ:压缩为GZ格式。 NONE WAL开关 选择是否开启HBase的预写日志机制(WAL,Write Ahead Log)。 是:开启后如果出现HBase服务器宕机,则可以从WAL中回放执行之前没有完成的操作。 否:关闭时能提升写入性能,但如果HBase服务器宕机可能会造成数据丢失。 否 匹配数据类型 是:源端数据库中的Short、Int、Long、Float、Double、Decimal类型列的数据,会转换为Byte[]数组(二进制)写入HBase,其他类型的按字符串写入。 如果这几种类型中,有合并做rowkey的,则依然当字符串写入。 该功能作用是:降低存储占用空间,存储更高效;特定场景下rowkey分布更均匀。 否:源端数据库中所有类型的数据,都会按照字符串写入HBase。 否
        来自:
        帮助文档
        数据治理中心 DataArts Studio
        用户指南
        数据集成
        管理作业
        配置作业目的端参数
        配置HBase/CloudTable目的端参数
      • 自主访问权限控制
        本页介绍天翼云TeleDB数据库自主访问权限控制。 权限管理 TeleDB采用三权分立体系,将数据库系统角色分为安全员、审计员和管理员。每个角色都被赋予不同的权限,三个角色相互独立、相互制约,从而消除系统中的超级权限,从系统角色设计上保障数据安全。 安全员 负责独立完成安全策略制定,包括强制访问、脱敏和加密策略。 审计员 负责独立完成审计策略制定,所有操作都可以被审计,包括审计员操作记录。 管理员 具备自主访问控制权限、运维权限,但不可干预安全员和审计员的操作。 TeleDB管控台用户账号密码管理 TeleDB支持对管控台账号进行定期检查,检查内容包括: 兼容四位版本解析。 账号名命名的规范性。 离职用户账号、临时账号是否有及时删除或禁止。 角色权限设置是否合理。 导出近3个月控制台日志,查阅是否有未预估的操作。 独立设置账号权限的,权限范围。 密码设置要求:禁止使用弱密码,密码必须超过8个字符,包含大小写英文字母、数字、特殊字符,其中特殊字符至少3个。 说明 安装完成后,为了确保数据库安全,建议删除管理系统和内核初始账号或修改初始密码。 TeleDB管控台角色管理 您可通过如下操作对角色权限进行管理。 1. 以用户名和密码登录TeleDBDCP数据库管理平台。 2. 在左侧导航树选择安全中心 > 角色管理 ,进入角色管理页面 3. 创建角色 (1) 在角色管理页面,单击创建角色,出现创建角色弹框。 (2) 在创建角色弹框,输入角色名称,权限类型选择TeleDB,勾选对应的权限,单击确定,完成权限的添加。 4. 编辑角色 单击目标角色所在的编辑按钮,修改对应的权限。 5. 删除角色 单击目标角色所在行的删除按钮,即可删除对应的权限。 6. 查看角色详情 单击目标角色所对应的详情,即可查看该角色所对应的具体权限。 7. 查看角色列表。 您可根据权限名称和角色进行搜索。 说明 权限包括超级管理员、租户管理员、操作员、管理员、只读和自定义。 数据库账号密码管理 账户和密码是连接数据库实例的凭证,客户端凭据账户和密码连接数据库实例时,服务器会判断用户身份,并分发对应的权限给客户端,与管控的账号和密码没有必然联系。 为保证连接实例的账户和密码安全性,有如下安全限制: 账号最多16个字符长度,建议由字母、数字、下划线组成,字母开头,字母或数字结尾。 如设置账号为临时账号,支持设置账号的过期时间,支持限制周期1天、7天、31天、90天以及永不过期。 密码应由864个字符组成,必须包含大小写英文字母、数字、特殊字符,其中特殊字符至少3个。 密码用password()函数转换成长度为40的字符串后存入系统表中,使用安全Hash算法。 系统根据规则提供随机密码。支持切换为弱密码模式,弱密码模式为不存在上述限制要求,该模式开启后存在安全风险,不建议开启。 密码最长使用期限不超过90天,建议每3个月更换一次账号密码。 限制客户端的IP连接方式,支持 IP、IP 段、%三种形式。 限制账户的最大并发连接数,0代表无限制。 限制账号读写方式,根据业务场景选择正常账号、只读账号、DCN读写分离账号。
        来自:
        帮助文档
        分布式融合数据库HTAP
        私有云产品
        安全配置手册
        访问控制
        自主访问权限控制
      • Java调用示例
        1. com.ffcs.ebp.ebpsdk.common.Response java package com.ffcs.ebp.ebpsdk.common; import java.util.Map; public class Response { private int statusCode; private String body; private Map headers; public int getStatusCode() { return statusCode; } public void setStatusCode(int statusCode) { this.statusCode statusCode; } public String getBody() { return body; } public void setBody(String body) { this.body body; } public Map getHeaders() { return headers; } public void setHeaders(Map headers) { this.headers headers; } } 2. com.ffcs.ebp.ebpsdk.YunSign java package com.ffcs.ebp.ebpsdk; import com.ffcs.ebp.ebpsdk.common.Response; import org.apache.commons.lang.StringUtils; import org.apache.http.Header; import org.apache.http.HttpEntity; import org.apache.http.client.config.AuthSchemes; import org.apache.http.client.config.CookieSpecs; import org.apache.http.client.config.RequestConfig; import org.apache.http.client.methods.; import org.apache.http.config.Registry; import org.apache.http.config.RegistryBuilder; import org.apache.http.conn.socket.ConnectionSocketFactory; import org.apache.http.conn.socket.PlainConnectionSocketFactory; import org.apache.http.conn.ssl.NoopHostnameVerifier; import org.apache.http.conn.ssl.SSLConnectionSocketFactory; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; import org.apache.http.util.EntityUtils; import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.net.ssl.SSLContext; import javax.net.ssl.TrustManager; import javax.net.ssl.X509TrustManager; import java.io.; import java.net.URLEncoder; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.security.KeyManagementException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.cert.X509Certificate; import java.text.SimpleDateFormat; import java.util.; public class YunSign { private String url; private String body; private String ak; private String sk; private String uuId; private int temp; private String contentType; private String queryStr; private Map headerMap; private String afterQuery; public YunSign(String url, String ak, String sk, String uuId, String body, int temp, String contentType, String queryStr, Map headerMap) { this.url url; if(body.equals("{}")){ body ""; } this.body body; this.ak ak; this.sk sk; this.uuId uuId; this.temp temp; this.contentType contentType; this.queryStr queryStr; this.headerMap headerMap; } public Response toDo(String method, int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response response null; method method.toUpperCase(); switch (method) { case "POST": response doPost(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "GET": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByGetReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doGet(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "DELETE": if (StringUtils.isNotEmpty(this.body)) { response sendJsonByDeleteReq(connectTimeout, connectionRequestTimeout, socketTimeout); } else { response doDelete(connectTimeout, connectionRequestTimeout, socketTimeout); } break; case "PUT": response doPut(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "PATCH": response doPatch(connectTimeout, connectionRequestTimeout, socketTimeout); break; case "HEAD": response doHead(connectTimeout, connectionRequestTimeout, socketTimeout); break; } return response; } private String getSign(Date eopDate) { String calculateContentHash getSHA256(body); //报文原封不动进行sha256摘要 // System.out.println("calculateContentHash:" + calculateContentHash); SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); SimpleDateFormat DATEFORMATTER new SimpleDateFormat("yyyyMMdd"); String singerDate TIMEFORMATTER.format(eopDate); String singerDd DATEFORMATTER.format(eopDate); //header的key按照26字母进行排序, 以&作为连接符连起来 try { String CampmocalHeader String.format("ctyuneoprequestid:%sneopdate:%sn", this.uuId, singerDate); String sigture CampmocalHeader + "n" + this.afterQuery + "n" + calculateContentHash; // System.out.println("sigture:" + sigture); byte[] ktime HmacSHA256(singerDate.getBytes(), sk.getBytes()); // System.out.println("ktime:" + HexUtils.bytes2Hex(ktime)); byte[] kAk HmacSHA256(ak.getBytes(), ktime); // System.out.println("kAk:" + HexUtils.bytes2Hex(kAk)); byte[] kdate HmacSHA256(singerDd.getBytes(), kAk); // System.out.println("kdate:" + HexUtils.bytes2Hex(kdate)); String Signature Base64.getEncoder().encodeToString(HmacSHA256(sigture.getBytes("UTF8"), kdate)); // System.out.println("Signature:" + Signature); String signHeader String.format("%s Headersctyuneoprequestid;eopdate Signature%s", ak, Signature); // System.out.println("signHeader:" + signHeader); return signHeader; } catch (Exception e) { e.printStackTrace(); } return null; } / 在调用SSL之前需要重写验证方法,取消检测SSL 创建ConnectionManager,添加Connection配置信息 @return HttpClient 支持https / private static CloseableHttpClient sslClient() { try { // 在调用SSL之前需要重写验证方法,取消检测SSL X509TrustManager trustManager new X509TrustManager() { @Override public X509Certificate[] getAcceptedIssuers() { return null; } @Override public void checkClientTrusted(X509Certificate[] xcs, String str) { } @Override public void checkServerTrusted(X509Certificate[] xcs, String str) { } }; SSLContext ctx SSLContext.getInstance(SSLConnectionSocketFactory.TLS); ctx.init(null, new TrustManager[]{trustManager}, null); SSLConnectionSocketFactory socketFactory new SSLConnectionSocketFactory(ctx, NoopHostnameVerifier.INSTANCE); // 创建Registry RequestConfig requestConfig RequestConfig.custom().setCookieSpec(CookieSpecs.STANDARDSTRICT) .setExpectContinueEnabled(Boolean.TRUE).setTargetPreferredAuthSchemes(Arrays.asList(AuthSchemes.NTLM, AuthSchemes.DIGEST)) .setProxyPreferredAuthSchemes(Arrays.asList(AuthSchemes.BASIC)).build(); Registry socketFactoryRegistry RegistryBuilder. create() .register("http", PlainConnectionSocketFactory.INSTANCE) .register("https", socketFactory).build(); // 创建ConnectionManager,添加Connection配置信息 PoolingHttpClientConnectionManager connectionManager new PoolingHttpClientConnectionManager(socketFactoryRegistry); CloseableHttpClient closeableHttpClient HttpClients.custom().setConnectionManager(connectionManager) .setDefaultRequestConfig(requestConfig).build(); return closeableHttpClient; } catch (KeyManagementException ex) { throw new RuntimeException(ex); } catch (NoSuchAlgorithmException ex) { throw new RuntimeException(ex); } } public Response doGet(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); //创建HttpGet远程连接实例 HttpGet httpGet; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGet new HttpGet(this.url + "?" + this.afterQuery); } else { httpGet new HttpGet(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGet.setHeader("ContentType", this.contentType); httpGet.setHeader("ctyuneoprequestid", this.uuId); httpGet.setHeader("EopAuthorization", getSign(eopDate)); httpGet.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGet.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGet.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpGet.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpGet); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByGetReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { Response result new Response(); CloseableHttpClient client null; CloseableHttpResponse response null; try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL client sslClient(); } else { client HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpGetWithEntity远程连接实例 HttpGetWithEntity httpGetWithEntity; if (StringUtils.isNotEmpty(this.afterQuery)) { httpGetWithEntity new HttpGetWithEntity(this.url + "?" + this.afterQuery); } else { httpGetWithEntity new HttpGetWithEntity(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为HttpGetWithEntity实例设置配置 httpGetWithEntity.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpGetWithEntity.setHeader("ContentType", this.contentType); httpGetWithEntity.setHeader("ctyuneoprequestid", this.uuId); httpGetWithEntity.setHeader("EopAuthorization", getSign(eopDate)); httpGetWithEntity.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpGetWithEntity.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpGetWithEntity.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); httpGetWithEntity.setEntity(httpEntity); //执行请求操作,并拿到结果(同步阻塞) response client.execute(httpGetWithEntity); //获取结果实体 HttpEntity entity response.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! client) { try { client.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPost(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpPost远程连接实例 HttpPost httpPost; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPost new HttpPost(this.url + "?" + this.afterQuery); } else { httpPost new HttpPost(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPost.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPost.setHeader("ContentType", this.contentType); httpPost.setHeader("ctyuneoprequestid", this.uuId); httpPost.setHeader("EopAuthorization", getSign(eopDate)); httpPost.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPost.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPost.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPost.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPost); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPut(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPut远程连接实例 HttpPut httpPut; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPut new HttpPut(this.url + "?" + this.afterQuery); } else { httpPut new HttpPut(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPut.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(20321900,01,05); httpPut.setHeader("ContentType", this.contentType); httpPut.setHeader("ctyuneoprequestid", this.uuId); httpPut.setHeader("EopAuthorization", getSign(eopDate)); httpPut.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPut.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPut.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPut.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPut); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doPatch(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse httpResponse null; Response result new Response(); try { // 创建httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建HttpPatch远程连接实例 HttpPatch httpPatch; if (StringUtils.isNotEmpty(this.afterQuery)) { httpPatch new HttpPatch(this.url + "?" + this.afterQuery); } else { httpPatch new HttpPatch(this.url); } // 配置请求参数实例 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 设置连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 设置连接请求超时时间 .setSocketTimeout(socketTimeout)// 设置读取数据连接超时时间 .build(); // 为httpPost实例设置配置 httpPatch.setConfig(requestConfig); // 设置请求头 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpPatch.setHeader("ContentType", this.contentType); httpPatch.setHeader("ctyuneoprequestid", this.uuId); httpPatch.setHeader("EopAuthorization", getSign(eopDate)); httpPatch.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpPatch.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpPatch.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 为httpPost设置封装好的请求参数 StringEntity data new StringEntity(body, Charset.forName("UTF8")); httpPatch.setEntity(data); // httpClient对象执行post请求,并返回响应参数对象 httpResponse httpClient.execute(httpPatch); // 从响应对象中获取响应内容 HttpEntity entity httpResponse.getEntity(); result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(httpResponse.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : httpResponse.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! httpResponse) { try { httpResponse.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doDelete(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDelete httpDelete; if (StringUtils.isNotEmpty(this.afterQuery)) { httpDelete new HttpDelete(this.url + "?" + this.afterQuery); } else { httpDelete new HttpDelete(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpDelete.setHeader("ContentType", this.contentType); httpDelete.setHeader("ctyuneoprequestid", this.uuId); httpDelete.setHeader("EopAuthorization", getSign(eopDate)); httpDelete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpDelete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpDelete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 httpDelete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(httpDelete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response sendJsonByDeleteReq(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpGet远程连接实例 HttpDeleteWithBody delete; if (StringUtils.isNotEmpty(this.afterQuery)) { delete new HttpDeleteWithBody(this.url + "?" + this.afterQuery); } else { delete new HttpDeleteWithBody(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); delete.setHeader("ContentType", this.contentType); delete.setHeader("ctyuneoprequestid", this.uuId); delete.setHeader("EopAuthorization", getSign(eopDate)); delete.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { delete.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : delete.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); HttpEntity httpEntity new StringEntity(body, Charset.forName("UTF8")); delete.setEntity(httpEntity); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpGet实例设置配置 delete.setConfig(requestConfig); // 执行get请求得到返回对象 response httpClient.execute(delete); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } public Response doHead(int connectTimeout, int connectionRequestTimeout, int socketTimeout) { CloseableHttpClient httpClient null; CloseableHttpResponse response null; Response result new Response(); try { // 通过址默认配置创建一个httpClient实例 if (temp 0) {//绕过SSL httpClient sslClient(); } else { httpClient HttpClients.createDefault(); } String query this.queryStr; this.afterQuery encodeQueryStr(query); // 创建httpHead远程连接实例 HttpHead httpHead; if (StringUtils.isNotEmpty(this.afterQuery)) { httpHead new HttpHead(this.url + "?" + this.afterQuery); } else { httpHead new HttpHead(this.url); } // 设置请求头信息,鉴权 SimpleDateFormat TIMEFORMATTER new SimpleDateFormat("yyyyMMdd'T'HHmmss'Z'"); Date eopDate new Date(); httpHead.setHeader("ContentType", this.contentType); httpHead.setHeader("ctyuneoprequestid", this.uuId); httpHead.setHeader("EopAuthorization", getSign(eopDate)); httpHead.setHeader("Eopdate", TIMEFORMATTER.format(eopDate)); if (this.headerMap ! null) { for (String key : this.headerMap.keySet()) { if (StringUtils.isNotEmpty(key)) { httpHead.setHeader(key, this.headerMap.get(key).toString()); } } } System.out.println("请求头部 "); for (Header header : httpHead.getAllHeaders()) { System.out.println(header.getName() + ":" + header.getValue()); } System.out.println(); // 设置配置请求参数 RequestConfig requestConfig RequestConfig.custom().setConnectTimeout(connectTimeout)// 连接主机服务超时时间 .setConnectionRequestTimeout(connectionRequestTimeout)// 请求超时时间 .setSocketTimeout(socketTimeout)// 数据读取超时时间 .build(); // 为httpHead实例设置配置 httpHead.setConfig(requestConfig); // 执行head请求得到返回对象 response httpClient.execute(httpHead); // 通过返回对象获取返回数据 HttpEntity entity response.getEntity(); // 通过EntityUtils中的toString方法将结果转换为字符串 result.setBody(EntityUtils.toString(entity, "UTF8")); result.setStatusCode(response.getStatusLine().getStatusCode()); Map headerMap new HashMap (); for (Header header : response.getAllHeaders()) { headerMap.put(header.getName(), header.getValue()); } result.setHeaders(headerMap); } catch (Exception e) { e.printStackTrace(); } finally { // 关闭资源 if (null ! response) { try { response.close(); } catch (IOException e) { e.printStackTrace(); } } if (null ! httpClient) { try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } } return result; } private String toHex(byte[] data) { StringBuilder sb new StringBuilder(data.length 2); byte[] var2 data; int var3 data.length; for (int var4 0; var4 2) { String encodeStr null; encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + str; } } else { String[] s str.split(""); if (s.length > 2) { String encodeStr URLEncoder.encode(s[1], "UTF8"); str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } else { String encodeStr ""; str s[0] + "" + encodeStr; afterQuery afterQuery + "&" + str; } } } } } catch (Exception e) { e.printStackTrace(); } return afterQuery; } } 3. HexUtils.java java package com.ffcs.ebp.ebpsdk; public class HexUtils { private static final char[] HEXES { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; / byte数组 转换成 16进制小写字符串 / public static String bytes2Hex(byte[] bytes) { if (bytes null bytes.length 0) { return null; } StringBuilder hex new StringBuilder(); for (byte b : bytes) { hex.append(HEXES[(b >> 4) & 0x0F]); hex.append(HEXES[b & 0x0F]); } return hex.toString(); } / 16进制字符串 转换为对应的 byte数组 / public static byte[] hex2Bytes(String hex) { if (hex null hex.length() 0) { return null; } char[] hexChars hex.toCharArray(); byte[] bytes new byte[hexChars.length / 2]; // 如果 hex 中的字符不是偶数个, 则忽略最后一个 for (int i 0; i headerMap new HashMap<>(); // headerMap.put("queryMetricDataInfo", "{"regionId":"cnsz1","dim":"instanceid,98cdcc8a8e544788ab9cc94ccee429c7","filter":"average","from":"1658473040","to":"1658473040","metricName":"netbitRecv","namespace":"AGT.ECS","period":"1"},"platform":"3"}"); // headerMap.put("platform", "3"); // headerMap.put("consoleUrl", " // headerMap.put("UserAgent", "3333433"); // headerMap.put("XForwardedFor", "1231313"); // headerMap.put("regionId", "100054c0416811e9a6690242ac110002"); // headerMap.put("prodInstId","9dcaf0157c604100af79bdb8271527bc"); //请求地址 String url " //query参数(?后面拼接的参数。没有就不填) aaaa&bbbb String queryStr "regionID41f64827xxxxxxxxxffa3a5deb5d15d"; //body参数(没有就不填) String body ""; //APPID String ak "9f82cacd3f8235c66edfs5e899f098e6"; //appkey String sk "MlgzESz430hJgTzA4lkjuJvDMMLTqwBQRicVqV62VM"; String uuId UUID.randomUUID().toString(); //连接超时 int connectTimeout 35000; //连接请求超时 int connectionRequestTimeout 35000; //socket超时 int socketTimeout 60000; YunSign yunSign new YunSign(url, ak, sk, uuId, body, temp, contentType, queryStr, headerMap); Response response yunSign.toDo(method, connectTimeout, connectionRequestTimeout, socketTimeout); System.out.println("应答头部 "); for (Map.Entry entry : response.getHeaders().entrySet()) { System.out.println(entry.getKey().toString() + ":" + entry.getValue().toString()); } System.out.println(); System.out.println("请求结果 "); System.out.println(response.getBody()); } }
        来自:
        帮助文档
        对象存储 ZOS
        API参考
        如何调用API
        Java调用示例
      • 查看ip_listener列表
        参数 参数类型 说明 示例 下级对象 gwElbID String 网关负载均衡 ID gwlbxxx name String 名字 tset description String 描述 desc ipListenerID String 监听器 id listenerxxxx action Object 转发配置 action tcpIdleTimeout Integer TCP连接空闲时间 900 表 action
        来自:
        帮助文档
        弹性负载均衡 ELB
        API参考
        API
        2022-09-09
        新版
        gwlb网关负载均衡
        查看ip_listener列表
      • 1
      • ...
      • 55
      • 56
      • 57
      • 58
      • 59
      • ...
      • 139
      跳转至
      推荐热词
      天翼云运维管理审计系统天翼云云服务平台云服务备份云日志服务应用运维管理云手机云电脑天翼云云hbase数据库电信云大数据saas服务电信云大数据paas服务轻量型云主机天翼云客户服务电话应用编排服务天翼云云安全解决方案云服务总线CSB天翼云服务器配置天翼云联邦学习产品天翼云云安全天翼云企业上云解决方案天翼云产品天翼云视频云存储

      天翼云最新活动

      安全隔离版OpenClaw

      OpenClaw云服务器专属“龙虾“套餐低至1.5折起

      天翼云新春焕新季

      云主机开年特惠28.8元/年,0元秒杀等你来抢!

      云上钜惠

      爆款云主机全场特惠,2核4G只要1.8折起!

      中小企业服务商合作专区

      国家云助力中小企业腾飞,高额上云补贴重磅上线

      出海产品促销专区

      爆款云主机低至2折,高性价比,不限新老速来抢购!

      天翼云奖励推广计划

      加入成为云推官,推荐新用户注册下单得现金奖励

      产品推荐

      弹性云主机 ECS

      物理机 DPS

      GPU云主机

      镜像服务 IMS

      弹性伸缩服务 AS

      天翼云CTyunOS系统

      训推服务

      模型推理服务

      智算一体机

      推荐文档

      安全类问题

      管理服务器

      查看监控指标

      产品定义

      连接列表

      • 7*24小时售后
      • 无忧退款
      • 免费备案
      • 专家服务
      售前咨询热线
      400-810-9889转1
      关注天翼云
      • 旗舰店
      • 天翼云APP
      • 天翼云微信公众号
      服务与支持
      • 备案中心
      • 售前咨询
      • 智能客服
      • 自助服务
      • 工单管理
      • 客户公告
      • 涉诈举报
      账户管理
      • 管理中心
      • 订单管理
      • 余额管理
      • 发票管理
      • 充值汇款
      • 续费管理
      快速入口
      • 天翼云旗舰店
      • 文档中心
      • 最新活动
      • 免费试用
      • 信任中心
      • 天翼云学堂
      云网生态
      • 甄选商城
      • 渠道合作
      • 云市场合作
      了解天翼云
      • 关于天翼云
      • 天翼云APP
      • 服务案例
      • 新闻资讯
      • 联系我们
      热门产品
      • 云电脑
      • 弹性云主机
      • 云电脑政企版
      • 天翼云手机
      • 云数据库
      • 对象存储
      • 云硬盘
      • Web应用防火墙
      • 服务器安全卫士
      • CDN加速
      热门推荐
      • 云服务备份
      • 边缘安全加速平台
      • 全站加速
      • 安全加速
      • 云服务器
      • 云主机
      • 智能边缘云
      • 应用编排服务
      • 微服务引擎
      • 共享流量包
      更多推荐
      • web应用防火墙
      • 密钥管理
      • 等保咨询
      • 安全专区
      • 应用运维管理
      • 云日志服务
      • 文档数据库服务
      • 云搜索服务
      • 数据湖探索
      • 数据仓库服务
      友情链接
      • 中国电信集团
      • 天翼云国际站
      • 189邮箱
      • 天翼企业云盘
      • 天翼云盘
      ©2026 天翼云科技有限公司版权所有 增值电信业务经营许可证A2.B1.B2-20090001
      公司地址:北京市东城区青龙胡同甲1号、3号2幢2层205-32室
      • 用户协议
      • 隐私政策
      • 个人信息保护
      • 法律声明
      备案 京公网安备11010802043424号 京ICP备 2021034386号