![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
rclijia
Linux C/C++, 网络协议分析
展开
-
linux系统编译wireshark源码
需求: 想在Linux系统上运行tshark,也就是wireshark的CLI版本,下载源码:https://github.com/wireshark/wireshark解压后,mkdir buildcd build使用如下参数,启用静态库,便于copy到其他机器使用,cmake.. -DBUILD_wireshark=OFF -DENABLE_STATIC=1如果提示缺少第三方依赖库,再yum install即可。 ...原创 2021-10-21 15:01:25 · 874 阅读 · 0 评论 -
wireshark源码编译安装
想在linux系统下使用高版本的tshark,其实就是wireshark,使用yum安装,最新版本只有1.10.14,太旧了,有些功能不支持。还是下载源码,自己编译吧,https://github.com/wireshark/wireshark/releasesjj最后下载了个2.xx版本,3.xx使用cmake编译,暂时没编译过,以后再更新。下载代码包,解压,执行如下命令:./autogen.sh./configure --with-qt=no原创 2021-10-09 17:44:20 · 1314 阅读 · 0 评论 -
Linux 程序性能分析 之 火焰图
分析一个软件的性能瓶颈到底在哪,有很多种方式,最简单的一种,就是在重要或频繁调用的函数,前后加上时间戳,两次相减即函数执行时间,例如:clock_gettime()xxx_function();clock_gettime()一个复杂的软件系统得有若干个重要核心函数,而且调用栈也不止一层,这么加debug代码,实在太麻烦了!下面介绍一下火焰图的使用,本文还是老规矩,不讲原理,不讲详细参数,不啰嗦,三步到位!先看hello world的直观效果,复杂的用法再举一反三,自己研原创 2021-07-04 22:02:45 · 671 阅读 · 0 评论 -
gopacket 安装部署之hello world
GO环境配置详见之前写的一篇文章:https://blog.csdn.net/rclijia/article/details/94390242原创 2021-06-10 15:11:34 · 564 阅读 · 0 评论 -
两张MD5值一样但实际不一样的图片
两张图片,人眼看去肯定是不一样的,图片的大小都是335104字节,但是md5sum的结果竟然都是:253dd04e87492e4fc3471de5e776bc3d图片是引用的,非原创,原文地址:https://crypto.stackexchange.com/questions/1434/are-there-two-known-strings-which-have-the-same-md5-hash-value...原创 2021-03-05 16:27:14 · 3550 阅读 · 10 评论 -
git patch 说明
联网的模式下就不详述了,可以使用git fetch , git pull, git checkout, git commit, git push等操作同步,本文主要说一下离线模式下,不能使用上述命令的情况下,怎么同步版本。假设目前最新开发版本 git log记录如下:commit 5555555555555555555commit 4444444444444444444commit 3333333333333333333commit 2222222222222222222commit原创 2020-10-24 12:46:11 · 2092 阅读 · 0 评论 -
git fetch获取不到远程分支的问题
项目比较大,首次clone 时选择了Depth=1,然后再想切换到特定分支时,发现看不见远程分支,即用了 git fetch也不行,后来发现是本地的.git/config文件的问题,之前是这样的:[remote "origin"] url = https://xxx.com/xxx.git fetch = +refs/heads/master:refs/remotes/origin/master后来改成:[remote "origin"] url = xx.原创 2020-10-23 21:06:56 · 5077 阅读 · 2 评论 -
tcpdump指定捕包长度
tcpdump -s 参数用于指定最大捕获长度,不能精确指定数据包的实际长度,tcpdump 支持protocol[x:x]表达式,用于指定某协议[起始偏移量:数值类型长度],如指定IP包长度大于100:tcpdump ip[2:2] > 100此命令只会捕获IP包长度大于100字节的包,更方便用于网络检测。原创 2017-02-23 18:21:24 · 15037 阅读 · 0 评论 -
keepalived 高可用配置
配置样例MASTER! Configuration File for keepalivedglobal_defs { router_id LVS_DEVEL}vrrp_instance VI_1 { state MASTER interface eth0 virtual_router_id 108 priority 101 advert_int 1 authentication { auth_type PASS原创 2020-09-20 11:17:02 · 230 阅读 · 0 评论 -
linux系统下查看进程在哪个CPU核心运行
现在的CPU基本都是多核心了,如果想看一个进程运行在哪个CPU核心,怎么做呢?有如下几类办法:1.taskset 输入如下命令:taskset -c -p <pid>如果是显示这样, 说明没有绑定到具体CPU核心,会在0-3范围内随机调度。[root@iZ25j /]# taskset -c -p 20238pid 20238's current affinity list: 0-3如果显示这样:pid 5357's current affinity...原创 2020-05-28 23:21:37 · 2931 阅读 · 0 评论 -
Linux系统常用IPv6调试命令
添加ipv6地址: ifconfig eth0 inet6 add 2001::192:168:1:101/64删除ipv6地址: ifconfig eth0 inet6 del 2001::192:168:1:101/64添加静态MAC绑定(类似ipv4下的arp -s): ip -6 neigh add 2001::192:168:1:102lladdr 00...原创 2020-04-06 17:52:08 · 2133 阅读 · 0 评论 -
突破客户端单机65535最大连接数限制
现在的服务器,C10K, C100K, 甚至C1000K都不是什么大问题了,如果只有一台服务器,一个测试客户端,两个机器各只有一块网卡, 服务器仅开启一个监听端口,比如HTTP 80,那么这两台机器之间最大并发连接数,理论上就是65535,即把所有端口全用完,没法再多了!因为TCP四元组里,SERVER_IP, SERVER_PORT, CLIENT_IP都是固定的,只有CLIEN...原创 2020-06-27 21:06:03 · 1817 阅读 · 2 评论 -
rpm conflict 安装包冲突问题
最近发现一个问题:所有代码都是自研,使用cmake, make package生成的rpm包,安装时总是提示与其他模块冲突:google上搜了若干页面,也没正确答案。百思不得其解!后来无意中想到,这个编译环境不是Linux物理机,而是虚拟机,代码所在的编译目录是windows物理机的共享目录,为了便于和windows物理机同步方便,把这个目录打包移动到真正的linux...原创 2020-03-30 15:14:23 · 1319 阅读 · 0 评论 -
ansible 远程获取变量 更新模板
ansible可使用template,设置变量,根据不同的环境,批量更新配置。比如ip地址,每个部署环境可能都不同,不能写成固定值,可使用如下方式,为每个机器自动更新配置,比如某个confiig.j2文件:ipaddress={{ template_ip }}通常,变量“template_ip”在执行ansible之前,就预先知道的,一般放在group_vars文件夹里面,但...原创 2020-03-19 16:33:03 · 461 阅读 · 0 评论