1.2 虚拟化vs容器 传统的虚拟化技术是通过硬件模拟或者操作系统软件实现,而容器技术可以比传统虚拟化更轻量级。...1.3 前世和今生 今生是docker大流行的时代,而前世就是早于1982年的chroot工具,以及后面经过改进并且现在还在使用的lxc技术。早期的docker的代码实现基于LXC(0.9之前)。...Linux容器功能是基于 cgroups 和 Namespace 来实现的....LXC依赖于epel-release的安装,EPEL(Extra Packages for Enterprise Linux)是Fedora 社区打造提供高质量软件包的项目,相当于一个第三方源。...LXC所有命令 3.2 创建一个容器 使用预定义的模板创建一个容器。它会根据模板设置自动下载依赖环境包并安装。
1.2 虚拟化vs容器 传统的虚拟化技术是通过硬件模拟或者操作系统软件实现,而容器技术可以比传统虚拟化更轻量级。...1.3 前世和今生 今生是docker大流行的时代,而前世就是早于1982年的chroot工具,以及后面经过改进并且现在还在使用的lxc技术。早期的docker的代码实现基于LXC(0.9之前)。...二、LXC(Linux容器)的两个重要概念 Linux容器功能是基于 cgroups 和 Namespace 来实现的....lxc-checkconfig检查下操作系统对容器技术的支持 image.png 四、LXC的使用 4.1 LXC工具包概览 LXC所有的操作工具api都在这里,可以对LXC进行相应的操作。...1.png 4 .2 创建一个容器 使用预定义的模板创建一个容器。它会根据模板设置自动下载依赖环境包并安装。
linux下nmap的使用-linux网络扫描技术 本文转载自linux下nmap的使用-linux网络扫描技术 一、nmap on linux 官网 https://nmap.org/ ?...这项技术最大的优点是,你勿需root权限。任何UNIX用户都可以自由使用这个系统调用。这种扫描很容易被检测到,在目标主机的日志中会记录大批的连接请求以及错误信息。...nmap使用的第三种技术是:发送一个SYN包,然后等待一个RST或者SYN/ACK包。对于非root用户,nmap使用connect()方法。...换句话说,nmap使用一些技术检测目标主机操作系统网络协议栈的特征。nmap使用这些信息建立远程主机的指纹特征,把它和已知的操作系统指纹特征数据库做比较,就可以知道目标主机操作系统的类型。...注意:这项命令在GNU/Linux下使用。如果在其它平台,你可能要使用其它的命令/选项。 Nmap的不同选项和-s标志组成了不同的扫描类型,比如:一个Ping-scan命令就是"-sP".
防火墙有两种:数据包过滤、应用层防火墙 200人以下的需要128MB的数据包过滤防火墙就够了 防火墙结构:单机防火墙、网关式防火墙、透明防火墙 DMZ网关...
Linux kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。...内核源码:Linux-4.1.15 实验环境:CentOS(x86_64)、树莓派1b 一、kprobes技术背景 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用、何时被调用...因此kprobes技术具有对内核执行流程影响小和操作方便的优点。 kprobes技术包括的3种探测手段分别时kprobe、jprobe和kretprobe。...五、总结 kprobes内核探测技术作为一种内核代码的跟踪及调试手段,开发人员可以动态的跟踪内核函数的执行,相较与传统的添加内核日志等调试手段,它具有操作简单,使用灵活,对原始代码破坏小等多方面优势。...本文首先介绍了kprobes的技术背景,然后介绍了其中kprobe技术使用方法并且通过源代码详细分析了arm架构和x86_64架构的原理和实现方式。
Linux kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。...内核源码:Linux-4.1.15 实验环境:CentOS(x86_64)、树莓派1b 2022年嵌入式开发想进互联网大厂,你技术过硬吗?...腾讯T6-9首发“Linux内核源码嵌入式开发进阶笔记”,差距不止一点点哦 一、kprobes技术背景 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用、何时被调用、执行是否正确以及函数的入参和返回值是什么等等...因此kprobes技术具有对内核执行流程影响小和操作方便的优点。 kprobes技术包括的3种探测手段分别时kprobe、jprobe和kretprobe。...内核学习网站: Linux内核源码/内存调优/文件系统/进程管理/设备驱动/网络协议栈 二、kprobe原理 下面来介绍一下kprobe是如何工作的。
Linux内核调试技术——kprobe使用与实现(一) 在上一篇文章中介绍了内核加载的方式使用kprobe的方法,现在介绍一下使用debugfs接口使用kprobe的方法。...最后补充一点,若此时需要查看函数调用的栈信息(stacktrace),可以使用如下命令激活stacktrace输出: ?
Linux内核调试技术——kprobe使用与实现(一) Linux内核调试技术——kprobe使用与实现(二) Linux内核调试技术——kprobe使用与实现(三) Linux内核调试技术——kprobe...使用与实现(四)--kprobe内核注册过程 kprobe探测模块调用register_kprobe向kprobe子系统注册一个kprobe探测点实例,代码路径kernel/kprobes.c ?...开始进入地址有效性检测流程,首先判断以下3个条件,必须全部满足:1、被探测地址在内核的地址段中;2、地址不在kprobe的黑名单之中;3、不在jump lable保留的地址空间中(内核jump lable特性使用...首先__kprobes_text_start和__kprobes_text_end被定义在include/asm-generic/Vmlinux.lds.h中,使用宏__kprobes标记的函数被归入该...简单的总结一下:即使用宏NOKPROBE_SYMBOL和宏__kprobes标记的内核函数不可以被探测kprobe。
本文介绍kprobes中的第二种探测技术jprobe,它基于kprobe实现,不能在函数的任意位置插入探测点,只能在函数的入口处探测,一般用于监测函数的入参值。...1、jprobe使用实例 使用jprobe探测函数的入参值,需要编写内核模块。...可见jprobe的注册流程非常的简单,它的本质就是注册一个kprobe,利用kprobe机制实现探测,只是探测回调函数并非用户自己定义,使用jprobe私有的而已。...这里使用int3指令再次触发CPU3异常,并且异常出的地址已经不再是BREAKPOINT_INSTRUCTION了,所以会进入到kprobe_int3_handler的以下流程执行: ?...3、总结 jprobe探测技术基于kprobe实现,是kprobes三种探测技术中的第二种,内核开发人员可以用它来探测内核函数的调用以及调用时的入参值,使用非常方便。
Linux内核调试技术——kprobe使用与实现(一) Linux内核调试技术——kprobe使用与实现(二) Linux内核调试技术——kprobe使用与实现(三) Linux内核调试技术——kprobe...使用与实现(四) Linux内核调试技术——kprobe使用与实现(五)-触发kprobe探测和回调 前文中,从register_kprobe函数注册kprobe的流程已经看到,用户指定的被探测函数入口地址处的指令已经被替换成架构相关的
Linux kprobes调试技术是内核开发者们专门为了便于跟踪内核函数执行状态所设计的一种轻量级内核调试技术。...因此kprobes技术具有对内核执行流程影响小和操作方便的优点。 kprobes技术包括的3种探测手段分别时kprobe、jprobe和kretprobe。...kprobes的技术原理并不仅仅包含存软件的实现方案,它也需要硬件架构提供支持。...其中涉及硬件架构相关的是CPU的异常处理和单步调试技术,前者用于让程序的执行流程陷入到用户注册的回调函数中去,而后者则用于单步执行被探测点指令,因此并不是所有的架构均支持,目前kprobes技术已经支持多种架构...目前,使用kprobe可以通过两种方式,第一种是开发人员自行编写内核模块,向内核注册探测点,探测函数可根据需要自行定制,使用灵活方便;第二种方式是使用kprobes on ftrace,这种方式是kprobe
Linux内核调试技术——kprobe使用与实现(一) Linux内核调试技术——kprobe使用与实现(二) 对于kprobe功能的实现主要利用了内核中的两个功能特性:异常(尤其是int 3),单步执行...并且把异常返回的地址修改为保存的原指令码; 5)代码返回,执行原有指令,执行结束后触发单步异常; 6)在单步异常的处理中,清除单步标志,执行post_handler流程,并最终返回; 在了解了kprobe的基本原理和使用后...首先初始化hash表的各个链表头,用来保存后面调用kprobe_register函数注册的struct kprobes实例(会使用探测地址作为索引),同时初始化kretprobe用到的自旋锁。...接下来调用populate_kprobe_blacklist函数将kprobe实现相关的代码函数保存到kprobe_blacklist这个链表中去,用于后面注册探测点时判断使用,注意这里的__start_kprobe_blacklist...而_kprobe_blacklist段中保存了实现kprobes的关键代码路径,这些代码是不可以被kprobe自己所探测的,在源码定义相关函数时使用NOKPROBE_SYMBOL宏将函数放到这个段中:
在 使用 Go 和 Linux Kernel 技术探究容器化原理 一文中,我们揭秘了容器的本质就是一个特殊的进程,特殊在为其创建了 NameSpace 隔离运行环境,并用 Cgroups 为其控制资源开销...答案当然是可以的,在 Linux 网络虚拟化技术中就为我们提供了一种这样的用软件来模拟硬件网卡的方式: Veth(Virtual Ethernet devices)。...不过和使用 Veth 作为虚拟网卡的方式一样,贴心的 Linux 同样为我们提供了网桥(交换机)的虚拟实现方式:Bridge 。...所以我们还需要使用 NAT( Network Address Translation )技术:把 IP 数据报文头中的 IP 地址和端口转换成另一个 IP 地址和端口。...这一技术实现其实同样是使用到了 NAT 技术,只不过和上面的 SNAT 不同的是,这里我们需要修改的是目的 IP 地址,即 DNAT (Destination NAT),把宿主机上 8000 端口的流量请求转发到容器中的地址
容器技术的代表之作 Docker ,则是一个基于 Linux 操作系统,使用 Go 语言编写,调用了 Linux Kernel 功能的虚拟化工具。...为了更好地理解容器的本质,我们来看看容器具体使用了哪些 Linux Kernel 技术,以及在 Go 中应该如何去调用。...其实到这里,我们已经通过 NameSpace 技术帮进程隔离出自己单独的空间,并使用 Cgroups 技术限制和监控这些空间的资源开销,这种特殊的进程就是容器的本质。...但是除了利用 NameSpace 和 Cgroups 来实现 容器(container) ,在 Docker 中,还使用到了一个 Linux Kernel 技术:UnionFS 来实现 镜像(images...鉴于本篇文章的主旨 —— 使用 Go 和 Linux Kernel 技术探究容器化原理的主要技术点是 NameSpace 和 Cgroups 。
方法1:whereis python 查看所有python的路径,不止一个 方法2:which python 查看当前使用的python路径
LInux Hook技术实践 什么是hook 简单的说就是别人本来是执行libA.so里面的函数的,结果现在被偷偷换成了执行你的libB.so里面的代码,是一种替换。...为什么hook 恶意代码注入 调用常用库函数时打log 改变常用库函数的行为,个性化 怎么hook 这个东西在win里面有现成的api,但是在linux里面却要主动修改ELF文件,或者修改动态库链接路径...举个例子: 某些系统上select的实现可能与众不同,在没有fd就绪时,并不阻塞,而是忙等,这时便可以通过hook技术,在select中插入usleep,达到释放cpu的作用。
当通信结束后,该公共IP地址会被释放,以便其他设备使用。动态NAT能够有效利用公共IP地址资源,但配置相对复杂。...NAT技术的优缺点 优点 节省公有IP地址资源:通过NAT技术,内部网络可以使用私有IP地址进行通信,而仅需要一个或少数几个公共IP地址即可与外部网络通信。...提高网络安全性:NAT技术可以隐藏内部网络的真实IP地址,外部网络只能看到NAT设备所使用的公共IP地址,增加了网络的安全性。...支持远程访问:NAT技术可以与VPN(虚拟私人网络)等技术结合使用,实现远程访问功能。 缺点 可能影响网络性能:NAT设备在进行地址转换和数据包处理时,可能会增加网络延迟和丢包率。...随着云计算、物联网等新兴技术的发展,NAT技术将继续发挥重要作用。未来,NAT技术可能会与更多先进技术结合使用,如SDN(软件定义网络)、NFV(网络功能虚拟化)等,以进一步提高网络性能和安全性。
二、CGI技术的工作原理 CGI技术的工作原理可以概括为以下几个步骤: 客户端请求:用户通过Web浏览器向Web服务器发送HTTP请求,请求中可能包含需要处理的表单数据或其他用户输入。...三、CGI技术的特点 跨平台性:CGI技术可以在多种操作系统和Web服务器上运行,具有很好的跨平台性。 灵活性:CGI程序可以用多种编程语言编写,如Perl、Python、PHP、C等。...替代技术的发展:随着Web技术的不断发展和进步,现代Web开发更倾向于使用其他技术来替代CGI,如ASP、JSP、Servlets、Node.js等。...资源限制:配置Web服务器以限制单个CGI程序的资源使用(如CPU时间、内存使用量等),防止由于程序错误或恶意请求导致服务器资源耗尽。...随着Web技术的不断发展,现代Web开发更倾向于使用其他更先进的技术来替代CGI技术。然而,在特定场合下,CGI技术仍然具有一定的应用价值。
基本概念 linux内核的转发机制主要通过查表(tables)来完成, 而iptables则用来设置,管理和检查linux内核中ip包过滤规则表. table后面加了s说明可以定义多张表, 而每张表中又包含了若干链路...表(tables) 当前最新版本的iptables中包含了五个独立的表, 工作时使用哪张表取决于内核选项以及当前应用了哪个模块....具体应用 工具的产生终究要服务于生产, 光解释名词也不能形象地展现linux强大的内核转发机制,因此以几个小例子来说明iptables的具体使用, 并依据上述介绍来写出有实际效用的脚本. iptables...透明代理配置可以参考set up squid in linux....后记 对于linux内核转发的技术介绍感觉差不多了, 虽然没有完全表现出其强大的功能, 但相信有需要的人可以根据基本规则来举一反三; 通过google查看别人的iptables"脚本”, 也能获得很多灵感
模式 (同 "ex") -E Improved Ex mode -s 安静(批处理)模式 (只能与 "ex" 一起使用...Be verbose [level N] [log messages to fname] -D 调试模式 -n 不使用交换文件...,只使用内存 -r 列出交换文件并退出 -r (跟文件名) 恢复崩溃的会话 -L...F 以 Farsi 模式启动 -T 设定终端类型为 -u 使用...编辑加密的文件 --startuptime Write startup timing messages to -i 使用
领取专属 10元无门槛券
手把手带您无忧上云