云技术基础

学习视频笔记均来自B站UP主" 泷羽sec",如涉及侵权马上删除文章

笔记的只是方便各位师傅学习知识,以下网站只涉及学习内容,其他的都与本人无关,切莫逾越法律红线,否则后果自负

https://space.bilibili.com/350329294*

为什么要学云技术?

无论是防御还是进攻,强大的底层技术基础都是必要的 从防御的角度,了解底层技术才能知道如何构建防御体系 从进攻的角度,了解底层技术才能发现漏洞并且开发漏洞利用 攻击者和防御者都必须了解对方的运作方式

云技术历史

传统基础设施构建阶段:

以前构建系统的时候,需要购买设备,租用数据中心机柜,然后搭建基础设施。

特点:在这个阶段,构建系统需要购买大量的硬件设备,租用数据中心机柜,并手动搭建基础设施。这种方式不仅成本高昂,而且灵活性差,难以适应快速变化的市场需求。资源利用率低,扩展性差,难以满足大规模、高并发的业务需求。

虚拟化技术阶段

随着处理器的不断进化,虚拟机出现了。它能把一台机器的资源分成多台机器来使用,提高了资源利用率,变得更加灵活可拓展,实现了从裸机基础设施到虚拟化基础设施的转变。

特点:虚拟化技术提高了资源利用率,使得资源更加灵活可拓展。通过虚拟化技术,企业可以构建出从裸机基础设施到虚拟化基础设施的转变,降低了成本,提高了效率。

容器化技术阶段

接着,容器化技术登场,进一步提高了效率,实现了服务器,网络和存储的虚拟交付。

特点:容器化技术进一步提高了资源的利用效率,实现了服务器、网络和存储的虚拟交付。通过容器化技术,企业可以更加快速地部署和管理应用程序,降低了运维成本。

云计算阶段

现在,我们把最新一代的基础设施称为“云”。云计算不是单一的技术,而是众多技术的集合体,它包括了虚拟化技术、容器化技术、自动化技术、大数据技术等众多先进技术。

特点:云计算提供了按需付费、弹性扩展、高可用性等优势,使得企业可以更加灵活地应对市场需求的变化。通过云计算,企业可以快速地获取计算资源、存储资源和数据库资源等,降低了IT成本,提高了业务效率。

服务类型:云计算服务通常分为基础设施即服务(IaaS)、平台即服务(PaaS)和软件即服务(SaaS)三种类型。IaaS提供底层的计算、存储和网络资源;PaaS提供开发、测试和部署应用程序的平台;SaaS则提供完整的应用程序服务,用户无需关心底层的基础设施和平台。

云服务

云是一种 IT 基础设施系统,它将资源的创建抽象在软件层面。 云基础架构必须稳定且无频繁中断 地理分布的云基础设施提高容错能力 云必须能够快速扩展以满足需求

公有云服务商

Amazon web services (AWS) Azure google(GCP) .华为云,腾讯云,阿里云.... 组织可以使用openStack等工具在自己的数据中心搭建私有云。或者部分业务运行在 私有云中,部分运行在公有云中

云分类

 基础设施既服务(laas) 定义:IaaS 是云计算服务模式的最底层,它提供了基本的计算资源,如服务 器、存储设备、网络设备等,以虚拟机或裸金属服务器的形式出租给用户。用户 可以像使用自己的数据中心资源一样,在这些基础设施上安装操作系统、部署应 用程序、配置网络等。

示例:亚马逊的 AWS EC2(Elastic Compute Cloud)是典型的 IaaS 服务。用户 通过 AWS 控制台或 API,可以选择不同类型的 EC2 实例,这些实例具有不同的 CPU、内存、存储等配置。

平台既服务(PAAS)

定义:PaaS 在 IaaS 的基础上,提供了一个完整的应用程序开发和运行平台。它 包括操作系统、编程语言运行环境、数据库管理系统、中间件等,让开发者能够 专注于应用程序的开发,而无需关心底层的基础设施。 示例:Heroku 是一款流行的 PaaS 产品。开发者可以使用多种编程语言(如 Python、Ruby、Node.js 等)在 Heroku 平台上开发应用程序。Heroku 会自动处理 应用程序的部署、运行环境的配置、扩展等工作。

软件既服务(SaaS) 定义:SaaS 是一种通过互联网提供软件应用服务的模式,用户无需在本地安装 软件,而是通过浏览器或专用客户端访问云端的软件应用。软件的维护、升级、 数据存储等工作都由 SaaS 提供商负责。 示例:Salesforce 是一款知名的 SaaS 产品,主要用于客户关系管理。企业用户 可以通过浏览器访问 Salesforce 的应用程序,进行客户信息管理、销售机会跟 踪、营销活动策划等业务操作。用户只需要一个账号和密码,就可以在任何有网 络连接的地方使用该软件。另外,微软的 Office 365 也是 SaaS 的典型代表,用户 可以在云端使用 Word、Excel、PowerPoint 等办公软件,并且可以实现多人协作 编辑文档等功能,数据存储在云端,方便用户随时随地访问。

云架构设计

 组件选择

确定架构(难改),选择绑定/非绑定组件(开发、开源、购买) 云原生组件: 为分布式系统设计,CNCF认证(非必须)、安全编码、开源(部分) laC:引导介质(Packer)、安装系统(Terraform)、 自动配置(Ansible)、 状态强制 (Monit)

集成部署 使用持续集成和持续交付(CICD) 管道来构建环境 包括测试、测量和扫描代码更改的自动化测试和部署(GitOps)

弹性可靠 任何单点故障都有故障转移或其他机制,使业务可以持续提供(冗余) GSLB (智能DNS、GTM)解决客户单访问的单点故障隐患

平衡控制 控制保护系统免受漏洞和内部攻击的组件,应平衡控制和可用性

 云设计模式 云架构设计不必从头开始, 使用已检验的设计模式是最佳选择

微服务架构 松散耦合、 模块化服务而设计,微服务协同工作以完成整体服务每个服务都可以 独立修改代码和重用,提高系统整体弹性和容错 大多数云利用微服务架构,云原生应用被构建充当微服务,便于水平扩展安全优势: 每个微服务应用强化、隔离,单一服务漏洞对整体系统影响小缺点:调试更加复杂, 需要跨不同服务跟踪事务;性能短板

零信任架构 对资源的每个请求都需要验证来源已授权,然后授权短期访问(令牌)实现ZTA的 一种常见方法是Open ID Connect (OIDC) 联盟访问 授权处于活动状态时可以访问任何联合内服务 密码重置是针对ZTA的常见攻击方式

安全控制

网络控制 传统架构使用防火墙实现网络控制,云环境网络抽象为SDN、SD WANSDN对不同的 接口(如API或GUI) 设置网络规则 通过mTLS不仅流量加密,也对客户端进行身份验证,拥有证书才能访问微服务访问 控制 不正确的访问管理可导致权限提升,甚至破坏整个基础设施 现代访问管理系统多使用令牌进行访问控制,提供对服务的短时访问权 JWT通常用于访问云端资源,伪造和破解密码是常见攻击手段 另一种类型的权限控制机制是强制访问控制MAC

身份管理 企业通常使用AD、LDAP进行身份管理 AWS IAM是身份和访问管理(IAM)的公共云服务 Google联盟认证OIDC经常用于2FA 云身份提供者(ldP)作为真实身份来源, 是更安全的解决方案(Azure AD)

容器与云 虚拟化中每个VM需要运行自己的操作系统, 显着增加了总体开销 容器化是一种更加现代的架构,容器共享内核与硬件,更快、更小、更高效 容器远没有虚拟化强大,因此容器是对虚拟化的补充,而非取代 容器的系统开销更小(可忽略),因此可以进一 步分离应用组件,例如搜索、登录、查 询、订单功能分开 容器使用映像作为模板生成。映像相当于计算机硬盘 容器使用不同发行版文件加载内核,运行容器

在Ubuntu上生成cent os7容器

安装Docker 使用Docker这个流行的容器化工具 确保你已经安装了Docker。如果没有安装,可以使用以下命令安装:

 sudo apt-get update

sudo apt-get install docker.io

检查是否安装成功 docker -v

启用Docker sudo service docker start

启动成功后,没有错误信息输出。 可以使用 sudo docker ps命令来验证 Docker 是否正常启动。

sudo docker ps

Docker配置中国镜像源

首先,需要找到 daemon.json 文件。在 Linux 系统中,该文件通常位 于/ etc/docker/ 目录下。如果没有这个文件,可以使用文本编辑器(如 nano )创建一个。

网易云镜像源: { } "registry-mirrors": ["https://hub - mirror.c.163.com/"]

 重启 Docker 服务 :完成配置后,需要重启 Docker 服务使配置生效。在 Ubuntu 或 Debian 系统中,可以使用命令 sudo service docker restart ;在 CentOS 或 RHEL 系统中,可以使用 sudo systemctl restart docker

Docker中安装CentOS 7

拉取CentOS 7的官方Docker镜像: sudo docker pull centos:7

运行一个基于CentOS 7镜像的容器:

sudo docker run -it --name my_centos7 centos:7 /bin/bash

sudo docker run -d --name my_centos7 centos:7 /bin/bash

两命令都会创建, exit 退出后仍然存在,可使用 docker ps -a进行查看 在这个命令中:

-it 选项允许你交互式地运行容器,会占用终端。OR或者 -d 选项(Detached,分离 模式),容器就会在后台启动并运行,不会占用当前终端

--name my_centos7 给容器命名为my_centos7。

执行上述命令后,你会进入到一个新的CentOS 7容器中,可以在这个环境中执行 CentOS 7系统的命令。

centos:7 指定使用的镜像。

 /bin/bash 启动容器后执行的命令,这里启动了bash让你能与容器交互。 现在就是进入了CentOS 7中而并非之前的服务器 输入exit 就会退出容器

容器与云

 创建Apache容器后台运行

 docker container run -d --rm -p 8080:80 httpd

第一次运行镜像的容器时都会有Unable 这是很常见的情况,因为本来就没有,所 以需要Docker去网上pull

使用curl命令检查搭建是否成功

curl localhost:8080

存在回显,有具体标签,表示搭建成功

Docker

常用命令 查看所有正在运行容器

docker container ls

查看所有已经创建的容器

docker ps -a

查看特定容器的进程信息

 docker top

登陆后台运行的容器

docker exec -it 290b81b8fbfa /bin/bash—

使用设置的参数

name也是可以的.如: /bin/bash docker exec -it my_centos7

停止容器

docker container stop 290b81b8fbfa

挂载宿主机目

 docker container run -d --rm -p 8080:80 -v /home/user/webroot/:/usr/local/apache2/htdocs/ httpd

-d 参数 功能:表示以 “分离(detached)” 模式运行容器。 含义和作用:当容器以这种模式启动后,它会在后台运行,不会占用当前的 命令行终端。这使得你可以在启动容器后,继续在终端中执行其他任务,比 如启动其他容器、检查容器状态或者运行其他系统命令等。例如,你可以在 启动这个 httpd 容器后,马上使用 启动并在后台运行。

--rm 参数 docker ps 命令查看容器是否已经成功 功能:设置容器在退出时自动删除。 含义和作用:一旦容器内的任务完成或者因为某种原因(如发生错误、手动 停止等)停止运行,Docker 会自动删除这个容器。这有助于保持 Docker 环境 的整洁,避免大量无用的容器占用磁盘空间。特别是在临时测试或者短期运 行容器的场景下非常有用,比如你只是想快速测试一下 置,使用完后容器自动删除,不需要手动清理。

-p 8080:80 参数 功能:进行端口映射。 含义和作用:左边的 httpd 服务器的配 8080 是宿主机(运行 Docker 的物理机或虚拟机)上 的端口,右边的80是容器内 httpd 服务器默认监听的端口。通过这种映 射,外部客户端(如浏览器)访问宿主机的 8080 端口时,请求会被转发到 容器内 httpd 服务器监听的 80 端口。这就使得你可以通过宿主机的 8080 端口来访问容器内 httpd 服务器提供的网页服务。例如,在浏览器中输入宿 主机的 IP 地址加上 8080 端口(如 http://[宿主机IP]:8080 ),就可以访 问容器内 httpd 服务器上的网页。

-v /home/user/webroot/:/usr/local/apache2/htdocs/ 参数 功能:进行目录挂载。 含义和作用:左边的 /home/user/webroot/ 是宿主机上的一个目录,右边 的/ usr/local/apache2/htdocs/ 是容器内 httpd 服务器存放网页文档的 默认目录。通过这种挂载,将宿主机上的目录挂载到容器内相应的目录。这 样做有很多好处,一是方便在宿主机上直接对要提供给 httpd 服务器的网页 文档进行编辑、更新等操作。例如,你在宿主机的 /home/user/webroot/ 目录下新建一个 index.html 文件,容器内的 httpd 服务器就能直接使用 这个文件来提供网页服务。二是实现了数据的持久化和共享,即使容器重新 启动或者被删除后重新创建,只要宿主机上挂载的目录中的数据没有丢失, 容器内的 httpd 服务器就可以继续使用这些数据来提供网页服务。

 httpd 部分 功能:指定要运行的容器所基于的镜像名称。 含义和作用: httpd 是一个常用的用于搭建 Apache HTTP 服务器的镜像。 通过运行基于这个镜像的容器,容器内部会启动 httpd 服务器,从而能够对 外提供网页服务。当容器启动后, httpd 服务器会根据容器内的配置和挂载 的网页文档目录来提供相应的网页内容

侦听宿主机80端口

docker container run -d --rm --network host -v

/home/user/webroot/:/usr/local/apache2/htdocs/ httpd

--network host

功能: 将容器的网络模式设置为 “host” 模式。

含义和作用: 在这种模式下,容器会直接使用宿主机的网络栈。容器内的网络接口和端 口将直接与宿主机相同,不再进行端口映射操作。例如,容器内 httpd 服务器监听的80端口,将直接在宿主机的80端口上进行监听。这对于 一些需要直接使用宿主机网络资源或者需要避免网络地址转换(NAT)带 来的复杂性的应用场景很有用。不过,这种模式也有一定的风险,因为容 器内的服务将直接暴露在宿主机网络上,可能会增加安全风险。

Podman

Podman 是 Docker 的替代产品

无守护进程

运行容器 (不加sudo启动报错,默认禁止侦听1024以下端口) sudo podman run -d --r-m --network host httpd pod是共享名称的多个容器的集合 创建名为wha的空pod (加入两个容器,访问容器1) podman pod create --name wha podman run -d --pod wha httpd podman run -pod wha -it alpine/curl /bin/bash 验证curl curl localhost PODMAN 大部分容器化过程都采用开放容器计划(OCI) 标准 因此Podman和Docker可互操作

容器的真相

 Linux没有被称为“容器”的单一特性 实际上“容器"是阻止进程访问其他进程和资源的特性组合。由于这些发生在内核级 别,所以可以控制“容器”的限制级别 容器的历史 197x年代引入chroot 1999年FreeBSD发布Jails, 在chroot之上提供更多限制(Linux不支持) 2002年引入namespaces,在需要时可分离内核资源 位于单独入namespace中的进程不知道主机网络或其他进程网络 2006年谷歌引入进程容器,后被称为cgroup,可将内存和CPU资源限制在特定进程中 结合cgroup和命名空间发布了Linux容器(LXC) 项目,可创建在单独命名空间中运行 的容器 ●Linux中八种用户命名空间 挂载、进程ID(PID)、网络、进程间通信(IPC)、Unix分时(UTS)、用户ID、控制组、 时间、syslog 容器 是一种轻量级的虚拟化技术,用于将应用程序及其所有依赖项打包在一起,以便 在不同的计算环境中进行移植和运行。容器提供了一种隔离的运行环境,使得不同应 用程序能够在独立的文件系统、网络和进程空间中运行,从而提升了安全性和稳定性 容器是一个轻量级、可执行的软件包,包含运行某个特定应用所需的所有代码、运行 时环境、库和配置文件。与运行在物理或虚拟机上的应用不同,容器与宿主机共享内 核,但在用户空间中以隔离的方式运行。这种隔离确保了不同容器之间的独立性,避 免了相互干扰

Chroot

 chroot是Linux上最原始的沙盒之一 ,可以指示进程的新根目录 chroot中的进程可以访问网络、挂载和其他内核功能,攻击者如破解其中进程, 则能够逃逸到主机其余部分 进入chroot目录

sudo chroot /home/userlroots/min/ /bin/bash

ps au root 48086 S 01:21 0:00 sudo chroot /home/student/roots/bionic/ /bin/bash

查看系统进程信息(ps命令),并且筛选出用户为 root ,进程 ID 为 48086 ,进程状态为S(可中断睡眠状态,通常表示进程正在等待某些事件完 成),启动时间为 01:21 ,占用 CPU 时间为 0:00 的进程相关内容。这个进程 对应的命令是

 sudo chroot /home/student/roots/bionic/ /bin/bash

虽然chroot实现了某种形式的分段,但并不完美。命名空间可实现每个进程分离 网络、进程和其他命名空间

命名空间

Linux允许根据各种内核特性对进程进行分割 Linux中八种命名空间 挂载、进程ID(PID)、 网络、进程间通信(IPC)、 Unix分时(UTS)、用户ID、 控制 组、时间、syslog

1. 以PID命名空间为例,查看当前shell的PID echo $$ $$ 是一个特殊变量,表示当前shell进程的进程ID(PID)

2. 在新命名空间中运行bash (容器化环境) sudo unshare --fork --pid --mount /bin/bash

3. 进一步隔离命名空间 ps aux root1 ... May100:08 /sbin/init mount-t proc none /proc root1 ... May 100:09 /bin/bash mount 是用于挂载文件系统的命令。

-t proc 表示要挂载的文件系统类型是

proc. 这个操作通常用于在特定的环境(比如容器或者经过命名空间隔离的环境)中重 新建立proc文件系统,以实现对进程相关信息的访问控制或者隔离 我们发现/sbin/init变为/bin/bash,这就起到一个命名隔离的效果

4. 隔离网络命名空间 ip a

sudo unshare -fpmun --root /home/user/roots/ --mount-proc /bin/bash

ip a

Capabilities

Docker默认不使用用户命名空间。为了防止特权内核调用,其使用内核capabilities和 seccomp配置文件限制访问 Linux具有特权或非特权进程 具有正确权限的非特权进程可以写入系统文件,但特权进程几乎无所不能用户权限过 于宽泛,当非特权用户只需要特殊权限时,可使用Capabilities Linux将一些系统级任务分组为40多个类别,称为Capabilities 能力允许非特权进程运行特定的系统级任务,而无需授予其完全访问权 内核限制进程使用自定义数据包创建原始套接字的能力 内核不支持半开TCP连接 nmap 127.0.0.1-sS 非特权用户需要运行调用原始套接字能力的命令 SUID(所有者为root)

#提权隐患

sudo cp /usr/bin/nmap /usr/bin/nmap-cap

sudo setcap cap_ net raw+eip /usr/bin/

nmap-capo nmap-cap --privileged 127.0.0.1-sS

命令解释 sudo cp /usr/bin/nmap /usr/bin/nmap-cap这一步是使用管理员权限(sudo)将系统中的 nmap 工具复制一份并命名为 nmap-cap。 sudo setcap cap_net_raw+eip /usr/bin/nmap-cap这一步是给新复制的 nmap-cap 工具赋予 特定的权限,使其能够进行原始套接字操作等高级权限操作。 nmap-cap --privileged 127.0.0.1 -sS这一步是使用具有特殊权限的 nmap-cap 工具去扫 描本地地址。 这里的提权隐患在于: 随意提升工具的权限可能会被恶意用户利用。如果一个恶意用户获得了对这个工具的 控制,或者通过某种方式利用这个工具的高权限状态,就可能对系统进行破坏,比如 访问本不应该被访问的系统资源、窃取敏感信息等。 这种提权操作可能会绕过系统 正常的安全机制。系统通常有一系列的权限控制和安全策略来防止未经授权的操作, 但通过这种方式提权可能会打破这些安全防线,使系统更容易受到攻击。 如果这个 工具被黑客利用,他们可以利用其高权限来进一步渗透系统,甚至完全控制整个系 统,给系统的安全性带来极大的威胁。 常见Capabilities CAP_ CHOWN:允许进程修改文件所有者 CAP NET ADMIN: 对网络配置(IP、 防火墙等)执行管理任务0 CAP NET_ BIND SERVICE:允许绑定低于1024的端口 CAP _NET _RAW: 允许使用RAW套接字 CAP_ SYS_ ADMIN: “根"权限(危险),启用过多的功能集CAP_ SYS_ BOOT: 允许重 新启动主机 CAP_ SYS_ MODULE:允许加载和卸载内核模块 CAP_ SYS_ TIME:允许进程设置系统时钟 CAP SYS_ CHROOT:允许使用chroot CAP AUDIT _WRITE: 允许写入内核审计日志

Kubernetes(k8s)

介绍 Kubernetes,通常简称为 K8s,是一个开源的容器编排平台。它可以自动化部署、 扩展和管理容器化应用程序。Kubernetes 能够在多个服务器上高效地运行容器,确保 应用的高可用性和可扩展性。 核心概念 Pod Pod 是 Kubernetes 中最小的可部署单元,它可以包含一个或多个容器。这些容器共享 网络命名空间和存储卷,并且被一起调度和管理。 Deployment Deployment 用于管理 Pod 的副本数量和更新策略。它可以确保应用始终保持指定数 量的副本在运行,并且可以实现滚动更新等功能。 Service Service 定义了一组 Pod 的访问方式。它提供了一个稳定的 IP 地址和端口,使得外部 可以通过这个地址访问到一组 Pod。 Node Node 是 Kubernetes 中的工作节点,它可以是物理服务器或虚拟机。每个 Node 上运 行着 Kubelet 和容器运行时,负责管理容器的生命周期。

安装Minikube(用于本地开发的 Kubernetes 环境)

  1. 下载 Minikube 二进制文件 可以从 Minikube 官方网站下载适合你系统架构的版本。例如,对于 64 位的 Linux 系统,使用以下命令下载:

curl -LO

https://storage.googleapis.com/minikube/releases/latest/minikube linux-amd64

2. 使下载的二进制文件可执行。 chmod +x minikube-linux-amd64

3. 将可执行文件移动到 PATH 中的目录(例如 /usr/local/bin ),以便在任何 位置都能方便地使用 sudo mv minikube-linux-amd64 /usr/local/bin/minikube

启动Minikube minikube start 注意 :如果直接使用root用户启动它会报错,所以su切换到其他用户再启动 验证Minikube 是否成功启动 minikube status

部署应用到 Kubernetes 安装kubectl 下载k ubectl 二进制文件

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

使二进制文件可执行

chmod +x kubectl

将ku bectl 移动到 PATH 中的目录(例如 sudo mv kubectl /usr/local/bin/ /usr/local/bin ) 创建一个 Deployment

kubectl create deployment nginx --image=nginx

部署 Nginx 服务器。

 查看 Deployment kubectl get deployments 创建一个 Service kubectl expose deployment nginx --port=80 --type=NodePort 让外部访问 Nginx 服务器。 查看 Service kubectl get services 访问应用 在 Service 信息中找到 NodePort 的端口号,使用“:”在浏览器中访问 Nginx 服务器。 扩展应用 扩展 Deployment 的副本数量 kubectl scale deployment nginx --replicas=3 查看副本数量 kubectl get deployments 更新应用 更新 Deployment 的镜像 使用以下命令将 Nginx 的镜像更新为一个新的版本: kubectl set image deployment/nginx nginx=new-image:version 查看更新进度 使用以下命令查看 Deployment 的更新进度: kubectl rollout status deployment/nginx 我服务器太拉了,就不展示具体图片了

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/914526.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

借助 Pause 容器调试 Pod

借助 Pause 容器调试 Pod 在 K8S 中,Pod 是最核心、最基础的资源对象,也是 Kubernetes 中调度最小单元。在介绍 Pause 容器之前需要先说明下 Pod 与容器的关系来理解为什么需要 Pause 容器来帮助调试 1. Pod 与 容器的关系 Pod 是一个抽象的逻辑概念&…

为何数据库推荐将IPv4地址存储为32位整数而非字符串?

目录 一、IPv4地址在数据库中的存储方式? 二、IPv4地址的存储方式比较 (一)字符串存储 vs 整数存储 (二)IPv4地址"192.168.1.8"说明 三、数据库推荐32位整数存储方式原理 四、存储方式对系统性能的影响…

独家|京东上线自营秒送,拿出二十年底牌和美团竞争

京东自营秒送开启招商,即时零售也要全托管? 作者|王迟 编辑|杨舟 据「市象」独家获悉,京东将在近期上线自营秒送业务,目前已经开始邀约制招商。「市象」获得的招商资料显示,和5月刚升级上线的京东秒送以POP模式不同&…

观成科技:Vagent注入的内存马加密通信特征分析

概述 vagent是一个使用Java语言开发的内存马注入工具。攻击者在利用vagent注入内存马之后可以利用别的代理工具或是webshell工具连接内存马进行通信。vagent对部分工具的内存马做了一些简单的魔改以达到绕过部分检测设备的目的。 vagent注入的内存马通信特征分析 vagent工具…

新增支持Elasticsearch数据源,支持自定义在线地图风格,DataEase开源BI工具v2.10.2 LTS发布

2024年11月11日,人人可用的开源BI工具DataEase正式发布v2.10.2 LTS版本。 这一版本的功能变动包括:数据源方面,新增了对Elasticsearch数据源的支持;图表方面,对地图类和表格类图表进行了功能增强和优化,增…

Ubuntu24.04安装搜狗输入法详细教程

本章教程,介绍如何在Ubuntu24.04版本操作系统上安装搜狗输入法。 一、下载安装包 搜狗输入法linux版本下载地址:https://shurufa.sogou.com/linux 二、安装步骤 1、更新源 sudo apt update2、安装fcitx输入法框架 sudo apt install fc

vxe-table 3.10+ 进阶高级用法(一),根据业务需求自定义实现筛选功能

vxe-table 是vue中非常强大的表格的,公司项目中复杂的渲染都是用 vxe-table 的,对于用的排序。筛选之类的都能支持,而且也能任意扩展,非常强大。 默认筛选功能 筛选的普通用法就是给对应的列指定参数: filters&#…

一文搞懂 ARM 64 系列: PACISB

1 PAC AMR64提供了PAC(Pointer Authentication Code)机制。 所谓PAC,简单来说就是使用存储在芯片硬件上的「密钥」,一个「上下文」,与「指针地址」进行加密计算,得出一个「签名」,将这个「签名」写入指针的高bit上。 计…

Spark 共享变量:广播变量与累加器解析

Spark 的介绍与搭建:从理论到实践_spark环境搭建-CSDN博客 Spark 的Standalone集群环境安装与测试-CSDN博客 PySpark 本地开发环境搭建与实践-CSDN博客 Spark 程序开发与提交:本地与集群模式全解析-CSDN博客 Spark on YARN:Spark集群模式…

基于Matlab 火焰识别技术

课题介绍 森林承担着为人类提供氧气以及回收二氧化碳等废弃气体的作用,森林保护显得尤其重要。但是每年由于火灾引起的事故不计其数,造成重大的损失。如果有一款监测软件,从硬件处获得的图像中监测是否有火焰,从而报警&#xff0…

Group By、Having用法总结(常见踩雷点总结—SQL)

Group By、Having用法总结 目录 Group By、Having用法总结一、 GROUP BY 用法二、 HAVING 用法三、 GROUP BY 和 HAVING 的常见踩雷点3.1 GROUP BY 选择的列必须出现在 SELECT 中(🤣最重要的一点)3.2 HAVING 与 WHERE 的区别3.3 GROUP BY 可以…

《JavaEE进阶》----20.<基于Spring图书管理系统①(登录+添加图书)>

PS:关于接口定义 接口定义,通常由服务器提供方来定义。 1.路径:自己定义 2.参数:根据需求考虑,我们这个接口功能完成需要哪些信息。 3.返回结果:考虑我们能为对方提供什么。站在对方角度考虑。 我们使用到的…

并发基础:(淘宝笔试题)三个线程分别打印 A,B,C,要求这三个线程一起运行,打印 n 次,输出形如“ABCABCABC....”的字符串

🚀 博主介绍:大家好,我是无休居士!一枚任职于一线Top3互联网大厂的Java开发工程师! 🚀 🌟 在这里,你将找到通往Java技术大门的钥匙。作为一个爱敲代码技术人,我不仅热衷于探索一些框架源码和算法技巧奥秘,还乐于分享这些宝贵的知识和经验。 💡 无论你是刚刚踏…

华为ensp实验二--mux vlan的应用

一、实验内容 1.实验要求: 在交换机上创建三个vlan,vlan10、vlan20、vlan100,将vlan100设置为mux-vlan,将vlan10设置为group vlan,将vlan20设置为separate vlan;实现vlan10的设备在局域网内可以进行互通&…

Hadoop + Hive + Apache Ranger 源码编译记录

背景介绍 由于 CDH(Clouderas Distribution Hadoop )近几年已经开始收费并限制节点数量和版本升级,最近使用开源的 hadoop 搭了一套测试集群,其中的权限管理组件用到了Apache Ranger,所以记录一下编译打包过程。 组件…

物联网对商业领域的影响

互联网彻底改变了通信方式,并跨越了因地理障碍造成的人与人之间的鸿沟。然而,物联网(IoT)的引入通过使设备能够连接到互联网,改变了设备的功能。想象一下,你的闹钟连接到互联网,并且能够用你的声…

PYNQ 框架 - 中断(INTR)驱动

目录 1. 简介 2. 分析 2.1 Block Design 2.2 AXI Timer 2.2.1 IP 基本信息 2.2.2 IP 地址空间 2.2.3 级联模式 2.2.4 生成/捕获模式 2.3 AXI Interrupt 2.3.1 IP 基本信息 2.3.2 IP 地址空间 2.3.3 相关概念 2.3.4 参数配置 2.3.5 中断确认寄存器 3. PYNQ 代码 …

HTB:Photobomb[WriteUP]

目录 连接至HTB服务器并启动靶机 使用nmap对靶机进行端口开放扫描 再次使用nmap对靶机开放端口进行脚本、服务扫描 使用ffuf进行简单的子域名扫描 使用浏览器直接访问该域名 选取一个照片进行下载,使用Yakit进行抓包 USER_FLAG:a9afd9220ae2b5731…

ts枚举 enum

枚举( enum )可以定义⼀组命名常量,它能增强代码的可读性,也让代码更好维护。调用函数时传参时没有任何提示,编码者很容易写错字符串内容。并且⽤于判断逻辑的是连续且相关的⼀组值,那此时就特别适合使用枚…

Android Studio | 修改镜像地址为阿里云镜像地址,启动App

在项目文件的目录下的 settings.gradle.kts 中修改配置,配置中包含插件和依赖项 pluginManagement {repositories {maven { urluri ("https://www.jitpack.io")}maven { urluri ("https://maven.aliyun.com/repository/releases")}maven { urlu…