avatar
文章
140
标签
139
分类
17
首页
归档
标签
分类
友链
咕咕
搜索
首页
归档
标签
分类
友链

咕咕

Linux内核软件框架-Netfilter概述
发表于2019-01-03|Netfilter•Linux
一、简述Netfilter是Linux内核中的一个软件框架,用于管理网络数据包。不仅具有网络地址转换(NAT)的功能,也具备数据包内容修改、以及数据包过滤等防火墙功能。利用运作于用户空间的应用软件,如iptables等,来控制Netfilter,系统管理者可以管理通过Linux操作系统的各种网络数据包。1990年代,Netfilter在Linux 2.3.15版时进入Linux内核,正式应用于Linux 2.4版。 现今许多市面上许多的IP分享器或无线网络路由器(Wireless router),多是嵌入式Linux平台,并利用Netfilter的数据包处理能力,提供NAT以及防火墙的功能。此外,Netfilter平台的模块化设计使得功能具可扩展性,以及Linux核心本身属于开放的源代码,能够免费获取源代码进行修改与扩展。Netfilter平台中制定了五个数据包的挂载点(Hook),分别是PRE_ROUTING、INPUT、OUTPUT、FORWARD与POST_ROUTING。 二、原理Linux网络内核中存在5条内置chain,针对于每条chain,Netfilter都有与之...
PrettyTable-Python使用笔记
发表于2019-01-02|PrettyTable•Python
一、简述PrettyTable是一个简单的Python库,旨在快速,轻松地在视觉上吸引人的ASCII表中表示表格数据。 它的灵感来自PostgreSQL shell psql中使用的ASCII表。 PrettyTable允许选择要打印的列,列的独立对齐(左对齐或右对齐或居中)以及通过指定行范围打印“子表”。GitHub 二、安装与使用# 安装:使用pip可以方便的安装PrettyTablepip install PrettyTable# 使用:python代码中引入该库import prettytable as pt 三、相关API介绍3.1、创建表3.1.1、普通创建表:import prettytable as pttb = pt.PrettyTable() 3.1.2、从已有的文件中创建# 【利用CSV文件创建】# + 变量pt将是一个完全填充的PrettyTable对象;# + CSV文件的第一行将被解释为字段名称并用于表头;# + 可以通过传递“field_names”关键字参数来指定自己的字段名称;from prettytable import from_c...
Linux下的Cache/Buffer
发表于2019-01-01|内存
经常在使用 Linux 的时候会发现有一些内存经常被 Cache 和 Buffer 占用,而关于这两者之间的关系与区别却不了解,这篇文章主要就是介绍一下两者的区别与相关的运维手段。 一、含义 Cache(缓存):指 CPU 和内存之间高速缓存,为了调高CPU和内存之间数据交换而设计,用来给文件做缓存(相关的是PageCache),主要是针对读操作设计的; Buffer(缓冲):指在写入磁盘前的存储在内存中的内容,为了提高内存和硬盘(或其他I/O设备的数据交换而设计),主要是针对写操作设计的; 下面为Linux下free指令显示的信息,以下简单描述一下各选项的含义: [root@* ~]# free -g total used free shared buff/cache availableMem: 125 2 109 1 13 120Swap: 7 ...
Netfilter的数据包过滤器iptables
发表于2019-01-01|iptables•Netfilter
一、iptables简介iptables是一款基于Netfilter的Linux防火墙的管理工具,可实现完成封包过滤、封包重定向和网络地址转换(NAT)等功能。 二、iptables的基本概念2.1、iptables的规则表 表(tables):提供特定的功能,iptables内置了4个表,即filter表、nat表、mangle表和raw表,分别用于实现包过滤,网络地址转换、包重构(修改)和数据跟踪处理; 链(chains):数据包传播的路径,每一条链其实就是众多规则中的一个检查清单,每一条链中可以有一条或数条规则; 规则(rules):当一个数据包到达一个链时,iptables就会从链中第一条规则开始检查,看该数据包是否满足规则所定义的条件,如果满足规则,系统就会根据该条规则所定义的方法处理该数据包,如果不满足规则,继续检查下一条规则,如果该数据包不符合链中任一条规则,iptables就会根据该链预先定义的默认策略来处理数据包; 2.2、iptables的规则链 PREROUTING链:数据进入网卡,首先会进入PREROUTING链,内核依据数据包的目的IP判断是否需要传送...
共享库LD_PRELOAD环境变量分析
发表于2019-01-01|C/C++
一、简介LD_PRELOAD是Linux/Unix系统的一个环境变量,它影响程序的运行时的链接(Runtime linker),它允许在程序运行前定义优先加载的动态链接库。这个功能主要就是用来有选择性的载入不同动态链接库中的相同函数。通过这个环境变量,我们可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖正常的函数库。一方面,我们可以以此功能来使用自己的或是更好的函数(无需别人的源码),而另一方面,我们也可以以向别人的程序注入程序,从而达到特定的目的。 动态库的搜索路径搜索的先后顺序是: 编译目标代码时指定的动态库搜索路径(可指定多个搜索路径,按照先后顺序依次搜索); 环境变量LD_LIBRARY_PATH指定的动态库搜索路径(可指定多个搜索路径,按照先后顺序依次搜索); 配置文件/etc/ld.so.conf中指定的动态库搜索路径(可指定多个搜索路径,按照先后顺序依次搜索); 默认的动态库搜索路径/lib; 默认的动态库搜索路径/usr/lib; 二、模拟实现这里并不是直接替换系统中的函数调用,而是采用添加hook的方式进行; main.c #include ...
RPM打包记录
发表于2019-01-01|RPM
一、简介RPM(Redhat Package Manager)是一个开放的软件包管理系统,用于Redhat、CentOS、Fedora等Linux 分发版的常见的软件包管理器。因为它允许分发已编译的软件,所以用户只用一个命令就可以安装软件。 RPM拥有功能强大的查询选项。我们可以搜索数据库来查询软件包或文件。RPM软件包中的文件是以压缩格式存放的,拥有一个定制的二进制头文件,其中包含有关包和内容的信息,可以让我们对单个软件包的查询简便又快速。 RPM另一个强大的功能是进行软件包的验证。如果我们担心误删了某个软件包中的某个文件,我们就可以对它进行验证。任何非正常现象将会被通知。如果需要的话还可以重新安装该软件包。在重新安装过程中,所有被修改过的配置文件将被保留。 RPM设计目标之一就是要保持软件包的原始特征, 就象该软件的原始发布者发布软件时那样。通过使用RPM我们可以拥有最初的软件和最新的补丁程序,还有详细的软件构建信息。 概括的说:RPM有五种基本的操作功能(不包括创建软件包):安装、卸载、升级、查询、和验证。 二、打包基础2.1 打包环境本文使用CentOS作为rpm打包的打...
使用snoopy进行execve/execv、connect、init_module hook
发表于2019-01-01|Linux•Hook
一、简述Snoopy旨在通过提供已执行命令的日志来帮助系统管理员,它对用户和应用程序是完全透明,通过将它链接到程序中,以提供对execve()调用的封装,记录信息通过syslog完成。 Snoopy development has been migrated to github. Please follow the link “Snoopy Logger Web Site” below. Snoopy is designed to aid a sysadmin by providing a log of commands executed. Snoopy is completely transparent to the user and applications. It is linked into programs to provide a wrapper around calls to execve(). Logging is done via syslog. 二、注意事项 Hook函数的覆盖完备性,对于Linux下的指令执行来说,有7个glibc的api都可实现指令执行...
Linux操作系统知识点整理
发表于2018-12-12|Linux•Notes
一、系统工具相关1.1、CPU性能工具: 平均负载: uptime:最简单; top:提供了最全的指标; /proc/loadavg:常用于监控系统; 系统CPU使用率: vmstat:只可以动态查看; mpstat:只可以动态查看; top:只可以动态查看; sar:不仅可以动态查看,还可以记录历史数据; /proc/stat:是其他性能工具的数据来源,也可用于监控; 进程CPU使用率: top:可以按照CPU使用率给进程排序; ps:可以按照CPU使用率给进程排序; pidstat:只显示实际用了CPU的进程; htop:可以以不同的颜色显示,更加直观; atop:可以以不同的颜色显示,更加直观; 系统上下文切换: vmstat:除了上下文切换的次数,还提供运行状态和不可中断状态进程的数量; 进程上下文切换: pidstat:注意加上-w选项; 软中断: top:提供软中断CPU的使用率; mpstat:提供了各种软中断在每个CPU上的运行次数; /proc/softirps:提供了各种软中断在每个CPU上的运行次数; 硬中断: vmstat:提供总的...
网站收藏列表
发表于2018-11-27|收藏
一、网站分类列表1.1、推荐技术类网站 编程狂人周刊 码农周刊 开发者头条-今日头条 阿里-数据库内核月报 阿里-中间件团队博客 美团技术团队 360核心安全技术博客 1.2、设计类网站 Icon-阿里巴巴矢量图标库 Easyicon图标下载 艺术字体在线生成 1.3、在线工具 在线工具箱 站长工具 ATOOL在线工具 ProcessOn在线流程图 在线编程工具 搞定设计-在线PS 图片背景抠除 1.4、阅读类 少数派 MottoIN-专注于互联网信息安全的科技媒体 InfoQ 1.5、搜索/导航类 鸠摩搜书-电子书搜索引擎 DuckDuckGo 一款不追踪你的搜索引擎 Bing搜索 安全圈-信息安全导航页 1.6、国内镜像站 PHPComposer 清华大学开源软件镜像站 1.7、在线学习 合天网安实验室 1.8、其他工具 射手网(伪)字幕下载 [Archive网站历史记录查询](
GDB使用笔记
发表于2018-11-26|C/C++•GDB•代码调试
GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c++程序员,gdb是必不可少的工具; 一、 gdb基本指令介绍1.1 gdb交互命令 start:开始调试; n:一条一条的执行; backtrace/bt:查看函数调用栈帧; info/i locals:查看当前栈帧局部变量; frame/f:选择栈帧,在查看局部变量; print/p:打印变量的值; finish:运行到当前函数返回; set var sum=0:修改变量的值; list/l 行号或函数名:列出源码; display/undisplay sum:每次停下显示变量的值/取消跟踪; x/7b input:打印存储器内容,b–每个字节一组,7–7组; disassemble:反汇编当前函数或指定函数; si:一条指令一条指令调试 而 s 是一行一行代码; info registers:显示所有寄存器的当前值; x/20 $esp:查看内存中开始的20个数; run(简写r):其作用...
1…91011…14
avatar
bugwz
持续学习,持续进步
文章
140
标签
139
分类
17
最新文章
CephFS RADOS 对象数据解析
CephFS RADOS 对象数据解析2026-02-10
ProxyAssistant - 强大的浏览器代理管理扩展
ProxyAssistant - 强大的浏览器代理管理扩展2026-01-25
Ceph 命令注册及执行流程
Ceph 命令注册及执行流程2025-12-06
Ceph 日志实现分析
Ceph 日志实现分析2025-11-22
Ceph 和 LinuxKernel 版本时间对照表
Ceph 和 LinuxKernel 版本时间对照表2025-11-08
分类
  • Redis17
    • RedisCluster1
    • RedisModule10
    • 异地多活1
    • 演进史3
    • 特性1
    • 相关库1
  • 论文10
标签
存储介质 TSDB 浏览器扩展 区块链 进程 RedisTimer GitHub Pages nc 刷机 LVS CuckooFilter Ceph 论文 许可证 Mac sar MIUI 虚拟化 Tmux 爬虫 内网穿透 Interrupt VPN Ubuntu Linux 代理服务器 RedisProtobuf PicGo Markdown 哈希表 Windows 收藏 正则匹配 T-Digest Latex Hexo 代码调试 pptpd LibMR Hook
归档
  • 二月 2026 1
  • 一月 2026 1
  • 十二月 2025 1
  • 十一月 2025 2
  • 十月 2025 1
  • 八月 2025 1
  • 六月 2025 1
  • 五月 2025 1
网站信息
文章数目 :
140
本站总字数 :
557.1k
© 2019 - 2026 By bugwz框架 Hexo 8.1.1|主题 Butterfly 5.5.3