以我作为管理员的经验,在网络连接中经常遇到十分难以排查的故障问题。对于这类情况, tcpdump 便能派上用场。
tcpdump 是一个命令行应用程序,可让你捕获和分析通过系统的网络流量。它通常用于帮助解决网络问题以及安全工具。 tcpdump 是一个强大且多功能的工具,包括许多选项和过滤器,可用于各种情况。由于它是一个命令行工具,因此非常适合在没有 GUI 的远程服务器或设备中运行,以收集可以稍后分析的数据。它也可以在后台启动或使用 cron 等工具作为预定作业启动。 1. 在 Linux 上安装 Tcpdump 包含在多个 Linux 发行版中,因此你可能已经安装了它。使用以下命令检查你的系统上是否安装了 tcpd
https://docs.djangoproject.com/en/1.11/ref/models/fields/
在前文中讲述了Linux服务端TCP的某个链路变成CLOSE_WAIT状态,然后由于客户端已经关闭了(发送了RST标志的报文),那么服务端如果继续向这个链路中写入数据的话就会收到SIGPIPE信号而终止,这篇文章主要通过客户端进入CLOSE_WAIT后由于收到服务端产生的RST标志报文进入死循环的情况。注:RST表示复位,用来关闭异常的连接。
上午查阅 Rust 官网内部博客,看到 Rust 1.51.0 stable 预发布版本已经开放测试。正式发布版本定于 UTC 标准时 2021-03-25,北京时间估计要到本周五。
最近项目遇到了一个非常神奇的问题,细节不过多描述了,问题大概跟下图中的拓扑类似,就是路由器将数据包发给了服务器的eth1口,但是服务器的路由是从eth2出去,导致了此服务器不响应外部任何的业务请求。
本文记录我写的一个测试代码在 Linux 上踩坑的经验。在 Linux 上可能存在一些文件的文件长度是 0 但文件里面依然可以读取到内容。之前我不知道有这样的设计,导致了我大量逻辑判断文件长度为 0 就不执行,从而让运行结果不符合预期
本篇介绍USB摄像头的使用,实现的功能是通过摄像头进行拍照,生成jpg格式图片。
在Linux后端服务网络通信开发中,可能会遇到CLOSE_WAIT的状况。引起TCP CLOSE_WAIT状态的情况很多,归根结底还是由于被动关闭的一方没有关闭socket链路导致的。这篇文章主要是通过用一个简单的例子通过TCPDUMP和Wireshark这两个工具来模拟产生CLOSE_WAIT的情况,下一篇主要是对这个问题的原理解释。
最近需要支持国产的 UOS 系统,这个系统我采用了 Xamarin 加上 GTK 开发,而我的日志系统有一个功能是记录日志的时候传入当前的文件路径,此时 NuGet 包是在 Windows 下构建的,因此传入的路径是 Window 构建服务器路径。此时在 Linux 上尝试获取文件名就炸了
usbmon 即 usb monitor,是 linux 内置的 usb 抓包工具。
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁。用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操作。在Linux GUI日益完善的今天,在系统管理等领域,Shell编程仍然起着不可忽视的作用。深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一。
在Linux TCP通信的调试中,tcpdump应该算是很好的一个工具。这篇文章主要使用Windows作为客户端,向作为服务端的Linux中的一个socket监听端口发送报文信息,然后在Linux中用TCPDUMP工具进行抓包。通过这个实例,可以较为完整的了解TCP通信中的“三次握手”等过程。
线上应用故障排查之一:高CPU占用 一个应用占用CPU很高,除了确实是计算密集型应用之外,通常原因都是出现了死循环。 以我们最近出现的一个实际故障为例,介绍怎么定位和解决这类问题。 image.png 根据top命令,发现PID为28555的Java进程占用CPU高达200%,出现故障。 通过ps aux | grep PID命令,可以进一步确定是tomcat进程出现了问题。但是,怎么定位到具体线程或者代码呢? 首先显示线程列表: ps -mp pid -o THREAD,tid,time image.
还有一种像Linux一样直接修改R中的相当于Linux中的.bashrc/环境文件一样的R的环境文件.Rprofile即可
前面谈过如何隐藏一个进程,我说过,隐藏procfs接口那无异于掩耳盗铃,正确的做法应该是将task_struct从任何链表中摘除,仅仅保留于run queue。
设备树(Device Tree),将这个词分开就是“设备”和“树”,描述设备设备树的文件叫做DTS(Device Tree Source),这个DTS文件采用了树形结构来描述板机设备,也就是开发板信息,比如CPU数量、内存基地址、IIC接口上接了那些设备、SPI接口上接了那些设备等。如最开始的图片所示! 在图片中,树的主干就是系统总线,IIC控制器、SPI控制器等都是接到系统主线的分支上的。通过DTS这个文件描述设备信息是有相关的语法规则的,并且在Linux内核中只有3.x版本以后的才支持设备树。
在Nginx中也有默认虚拟主机,跟httpd类似,第一个被Nginx加载的虚拟主机就是默认主机,但和httpd不相同的地方是,它还有一个配置用来标记默认虚拟主机,也就是说,如果没有这个标记,第一个虚拟主机为默认虚拟主机。
在Shell编程快速入门指南一文中已经简单介绍了字符串的变量命名、截取、获取长度等操作,但通常我们对字符串的操作的需求远远不止这些,Shell本身一起已经内置了一些对字符串的操作。
最近发现了个好的工具,是监控网卡及网络流量的叫NICSTAT,这里我通过这个例子来说明
也就是说增长到1000的数组如果没有事先指定大小,会发生13次Arrays.copyOf动作,拷贝代价多大?继续分析
本文记录了如何使用工具对redis数据进行恢复备份,涉及的有Redis-Dump,MySQL,Redis管道命令。
现在手游的server 端,一般都用哪种语言开发? 业界主要的是c/c++ + Python/lua模式做游戏服务器。c/c++做网络通讯数据传输,python/lua做业务逻辑。这样既保持了网络传输
mmap/munmap接口是用户空间的最常用的一个系统调用接口,无论是在用户程序中分配内存、读写大文件,链接动态库文件,还是多进程间共享内存,都可以看到mmap/munmap的身影。
https://www.tcpdump.org/manpages/tcpdump.1.html
linux下文件分割可以通过split命令来实现,可以将一个大文件拆分成指定大小的多个文件,并且拆分速度非常的快,可以指定按行数分割和安大小分割两种模式。Linux下文件合并可以通过cat命令来实现,非常简单。
网络编程几乎是每一门编程语言都会涉及的内容,虽然各种语言调用的方式可能不一样,但它们背后的原理支持都是一样的。因此本文将从TCP的连接的建立说起。在此之前,假设你已经对计算机网络有了最基本的认识。
IPv4和IPv6是Internet上常用的两种IP地址协议。在Linux系统中,您可以通过配置网络接口来设置IPv4和IPv6地址。本文将详细介绍如何在Linux中配置IPv4和IPv6地址。
在开始配置IP地址之前,您需要确定要配置的网络接口。执行以下命令来列出当前系统上的网络接口:
wc命令的功能为统计指定文件中的字节数、字数、行数, 并将统计结果显示输出。 # wc [options] filenames 以下是该命令提供的选项和用法。 -c, --bytes 输出目标文件中字节的计数结果 -m, --chars 输出目标文件的中字符的计数结果 -l, --lines 输出目标文件中 行 的计数结果 --files0-from=F 从NUL-terminated指明的名字在文件F中的文件中读取,如
有的时候需要对文件执行删除删除操作,这个时候比较常用的会使用vi命令中的dd命令,比如先执行10G(跳转到第10行),然后再执行20dd(删除20行),但实际情况未必是这么常规,比如说,要删除文件中,某行长度超过200个字符的行,如果文本比较小,还好,如果是几万行,几十万行的呢? 这个想用vi就不现实了。 我然想到的办法就是:比如说,通过sed,awk,egrep命令来达到目的。 举个简单例子。
操作系统很早就开始使用内存映射文件(Memory Mapped File)来作为进程间的共享存储区,这是一种非常高效的进程通讯手段。.NET 4.0新增加了一个System.IO. MemoryMappedFiles命名空间,其中添加了几个类和相应的枚举类型,从而使我们可以很方便地创建内存映射文件。Mono 3.2也有这个类来操作Linux下的内存映射文件,《MemoryMappedFile 在 Mono in Linux 的开发笔记》详细的介绍了Mono和.NET 4的实现区别,为了让代码能够在Linux
目前我们对EasyCVR私有协议SDK的开发已经进入了测试阶段,EasyCVR可以通过私有协议SDK的形式(eSDK)接入华为视频平台,接入的第一步就是资源准备接口,下面提供华为视频平台对接第一步资源准备接口的使用方法。
# 1.创建目录 [root@summer exporter]# mkdir -p /opt/exporter [root@summer exporter]# cd /opt/exporter # 2.解压 [root@summer src]# tar -zxvf redis_exporter-v1.13.1.linux-amd64.tar.gz redis_exporter-v1.13.1.linux-amd64/ redis_exporter-v1.13.1.linux-amd64/README.
VLAN是网络栈的一个附加功能,且位于下两层。首先来学习Linux中网络栈下两层的实现,再去看如何把VLAN这个功能附加上去。下两层涉及到具体的硬件设备,日趋完善的Linux内核已经做到了很好的代码隔离,对网络设备驱动也是如此,如下图所示:
使用用法 tcpdump -i any host ip地址(例192.168.1.1) -n 请先确保安装了tcpdump 安装命令 yum install tcpdump -y 输出结果 tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 12:
3、这就部署完成了,也启动好了,我们去看看监控主机列表有没有刚部署agent的主机信息
开发板: Exynos4412(Cortex-A9) ----友善之臂Tiny4412
设备树(Device Tree),将这个词分开就是“设备”和“树”,描述设备树的文件叫做 DTS(DeviceTree Source),这个 DTS 文件采用树形结构描述板级设备,也就是开发板上的设备信息,比如CPU 数量、 内存基地址、IIC 接口上接了哪些设备、SPI 接口上接了哪些设备等等。
IP协议是互联网最基础的协议,在使用tcpdump查看数据包的时候,有时候对一些字段的汉所以不是很明确 比如: [tim@localhost ~]$ sudo tcpdump -i any -n icmp -vvvv tcpdump: listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes 21:11:21.505189 IP (tos 0x0, ttl 64, id 36112, offset 0
在.NET Framework时代,我们生成验证码大多都是用System.Drawing。
它是由一个非营利基金会设计和拥有的OISF(Open Information Security Foundation)。
MAD (libmad)是一个开源的高精度 MPEG 音频解码库,支持 MPEG-1(Layer I, Layer II 和 LayerIII(也就是 MP3)。LIBMAD 提供 24 -bit 的 PCM 输出,完全是定点计算,非常适合没有浮点支持的平台上使用。使用 libmad 提供的一系列 API,就可以非常简单地实现 MP3 数据解码工作。
在前面的直播基因组系列,我们讲解过那些比对不少我们人类的参考基因组序列的数据,其实可以细致的进行探究。 直播】我的基因组(十五):提取未比对的测序数据 这里主要参考这篇文章的图4:http://ww
我喜欢Shell,所以喜欢Linux。在Linux世界里,你可以做到最大化的按自己的心去折腾,最大化的解放双手,同时享受敲击键盘的乐趣……
在这篇文章中,我们将简单介绍如何在通过TCP通信的位置无关代码(PIC)中实现数据加密。
在2016年5月份至2016年6月份 Red hat CVE漏洞库发布了5个“重要”“严重”等级的安全漏洞,针对出现的安全漏洞,发布了对应的Bugzilla。安全公告每月更新一次,旨在查找解决严重的漏洞问题。
OpenSSL可以直接使用命令对文件件进行base64的编码与解码,利用OpenSSL提供的API同样可以做到这一点。
pymongo来操作MongoDB数据库,但是直接把对于数据库的操作代码都写在脚本中,这会让应用的代码耦合性太强,而且不利于代码的优化管理
领取专属 10元无门槛券
手把手带您无忧上云