标签归档:linux

linux学习路线图

一、系统架构
1、确定和配置硬件设置
2、引导系统
3、运行级别、关闭和重新引导

二、Linux安装和包管理
1、设计硬盘布局
2、安装引导管理器
3、管理共享库
4、Debian包管理
5、RPM和YUM包管理功能

三、GNU和UNIX命令
1、Linux命令行
2、文本流和过滤器
3、文件和目录管理
4、流、管道和重定向
5、创建、监视和结束进程
6、处理进程执行优先级
7、使用正则表达式搜索文本文件
8、使用vi编辑文件

四、设备、Linux文件系统、文件系统分层结构标准
1、创建分区和文件系统
2、维护文件系统的完整性
3、控制文件系统的挂载和卸载
4、管理磁盘配额
5、管理文件权限和所有权
6、创建和更改硬链接和符号链接
7、查找和放置系统文件

五、Shell、脚本和数据管理
1、自定义和使用shell环境
2、自定义或编写简单脚本
3、SQL数据管理

六、用户界面和桌面
1、安装和配置X11
2、设置显示管理器
3、可访问性

七、管理任务
1、管理用户和组账户和相关系统文件
2、通过调度作业来自动化系统管理任务
3、本地化和国际化

八、基本系统服务
1、维护系统时间
2、系统日志
3、邮件传输代理(MTA)基础知识
4、管理打印机和打印

九、网络基础
1、Internet协议基础
2、基本网络配置
3、基本网络故障诊断
4、配置客户端DNS

十、安全性
1、执行安全性管理任务
2、设置主机安全
3、通过加密保护数据

redhat6.5使用ntfs格式U盘的方法

linux系统对于fat32一般默认就可以识别使用,但是对于ntfs需要安装ntfs-3g来使用。

如果配置好yum,则通过命令yum install ntfs-3g即可。

如果没有配置yum,需要先安装gcc,再安装ntfs-3g。

安装gcc可以参见这篇文章:https://www.eumz.com/2020-08/1958.html

安装好gcc后,下载ntfs-3g,可以通过这个链接下载:https://tuxera.com/opensource/ntfs-3g_ntfsprogs-2017.3.23.tgz

将安装包上传到/opt目录,解压tar -zxvf ntfs-3g_ntfsprogs-2017.3.23.tgz

进入到解压缩的目录下:
#cd ntfs-3g_ntfsprogs-2017.3.23
# ./configure
#make
#make install

插入ntfs格式U盘,fdisk -l查看,比如是/dev/sdb1
#mkdir /ntfs
#mount -t ntfs-3g /dev/sdb1 /ntfs

配置完成。

redhat6.5安装gcc编译器

首先挂在安装镜像:
# mount -o loop rhel-server-6.5-x86_64-dvd.iso /mnt

然后按照顺序安装即可:
# cd /mnt/Packages
# rpm -ivh glibc-common-xx.x86_64.rpm
# rpm -ivh kernel-headers-xx.x86_64.rpm
# rpm -ivh libgcc-xx.x86_64.rpm
# rpm -ivh glibc-xx.x86_64.rpm
# rpm -ivh libgomp-xx.x86_64.rpm
rpm -ivh nscd-xx.el6.x86_64.rpm
# rpm -ivh glibc-headers-xx.el6.x86_64.rpm
# rpm -ivh glibc-devel-xx.el6.x86_64.rpm
# rpm -ivh mpfr-xx.el6.x86_64.rpm
# rpm -ivh ppl-xx.el6.x86_64.rpm
# rpm -ivh cloog-ppl-xx.x86_64.rpm
# rpm -ivh cpp-xx.x86_64.rpm
# rpm -ivh gcc-xx.x86_64.rpm
# rpm -ivh libstdc++-xx.x86_64.rpm
# rpm -ivh libstdc++-devel-xx.x86_64.rpm
# rpm -ivh gcc-c++-xx.x86_64.rpm

linux系统常见文件系统ext2、ext3、ext4的区别

ext2,即第二代扩展文件系统,英文是second extended filesystem,是linux系统内核所用的文件系统,用以代替ext,于1993年1月加入linux核心支持之中。

esx2对单一文件大小的支持是2TB,到linux2.6版本时,扩展到32TB。

ext3是第三代扩展文件系统,英文是Third extended filesystem,是一个日志文件系统。发布于2001年11月,从Linux 2.4.15版本内核开始,合并到内核主线中。

这种文件系统的出现主要是解决了以前文件系统在突然断电的情况下,下次开机可能会造成文件系统的资料不一致而去耗时重整修复这个问题。ext3是日志式的文件系统,如遇到断电等情况可通过日志记录直接回溯到被中断的部分,重整工作特别快,几乎不会花费太多时间,一般恢复ext3文件系统的时间只要数十秒。

ext3的设计目标就是提供对于ext2的高度兼容性,ext2转换成ext3很方便,但也使得ext3缺乏很多新功能新设计。ext3也只支持2TB的文件和32TB的文件系统。ext3支持32000个子目录。

ext4是第四代扩展文件系统,英文是Fourth extended filesystem,是一种日志文件系统。

最早出现在2006年11月的linux2.6.19内核中,不过只是试验阶段,在2008年12月25日的linux2.6.28版本,ext4才是稳定版。

ext4支持的最大文件大小是16TB,文件系统最大是1EB即1024TB。ext4理论上支持无限个子目录。

REDHAT启动时报错UNEXPECTED INCONSISTENCY的解决办法

现有一台HP DL380 G8服务器,安装redhat7.X系统,更换主板后,发现进不了系统,报错信息如下:

/dev/mapper/vg_xxx-lv_usr:UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY.
/dev/mapper/vg_xxx-lv_var:UNEXPECTED INCONSISTENCY;RUN fsck MANUALLY.

An error occurred during the file system check.
Dropping you to a shell;the system will reboot

对于这个故障,只需要按照提示fsck检查下磁盘相关分区即可。

输入root密码后,fsck -y /dev/mapper/vg_xxx-lv_usr,fsck -y /dev/mapper/vg_xxx-lv_var。

重启,但是出现另一个报错:
Starting system logger:Can’t open or create /var/run/syslogd.pid.
Can’t write pid.

对于这个报错,是因为root用户没有审计日志文件的权限,导致system logger启动失败,输入如下命令:
#chown root.root /var/log/audit/audit.log
#chmod 600 /var/log/audit/audit.log

重启,成功进入系统。

VMWARE WORKSTATION安装LINUX虚拟机时界面显示不全的解决办法

在部分版本的vmware workstation上安装linux虚拟机,比如centos、ubuntu等,会出现界面显示不全,导致无法直接点击按钮的问题,针对此问题,提供以下三种解决办法。

方法1是使用tab键切换至相关按钮。

方法2是按住alt的同时,鼠标左键点击并移动界面。

方法3是虚拟机设置——显示器——监视器分辨率,将该分辨率调小即可。

渗透测试信息收集工具篇

1、whois 查询网站及服务器信息

如果知道目标的域名,你首先要做的就是通过 Whois 数据库查询域名的注册信息,Whois 数据库是提供域名的注册人信息,包括联系方式,管理员名字,管理员邮箱等等,其中也包括 DNS 服务器的信息。

默认情况下,Kali 已经安装了 Whois 。你只需要输入要查询的域名即可:

利用以上收集到的邮箱、QQ、电话号码、姓名、以及服务商,可以针对性进行攻击,利用社工库进行查找相关管理员信息,另外也可以对相关 DNS 服务商进行渗透,查看是否有漏洞,利用第三方漏洞平台,查看相关漏洞。

2、Dig 使用

可以使用 dig 命令对 DNS 服务器进行挖掘,Dig 命令后面直接跟域名,回车即可,如图:

【Dig常用选项】

1 -c 选项,可以设置协议类型( class ),包括 IN (默认)、CH 和 HS。

2 -f 选项,dig 支持从一个文件里读取内容进行批量查询,这个非常体贴和方便。文件的内容要求一行为一个查询请求。来个实际例子吧:

3 -4 和 -6 两个选项,用于设置仅适用哪一种作为查询包传输协议,分别对应着 IPv4 和 IPv6。

4 -t 选项,用来设置查询类型,默认情况下是 A,也可以设置 MX 等类型,来一个例子:

5 -q 选项,其实它本身是一个多余的选项,但是它在复杂的 dig 命令中又是那么的有用。-q 选项可以显式设置你要查询的域名,这样可以避免和其他众多的参数、选项相混淆,提高了命令的可读性,来个例子:

6 -x 选项,是逆向查询选项。可以查询 IP 地址到域名的映射关系。举一个例子:

【跟踪 dig 全过程】

dig 非常著名的一个查询选项就是 +trace,当使用这个查询选项后,dig 会从根域查询一直跟踪直到查询到最终结果,并将整个过程信息输出出来

【精简 dig 输出】

使用 +nocmd 的话,可以节省输出 dig 版本信息。

Dig 可以用来查域传送漏洞

前面介绍了 dig 的使用,若将查询类型设定为 axfr,就能得到域传送数据。这也是我们要用来测试 DNS 域传送泄露的命令

3、Nslookup 用法

nslookup 是站长较为常用的工具之一,它甚至比同类工具 dig 的使用人数更多,原因是它的运行环境是 windows ,并且不需要我们再另外安装什么东西。dig 是在 linux 环境里运行的命令,不过也可以在 windows 环境里使用,只是需要安装 dig windows 版本的程序。

Nslookup 命令以两种方式运行:非交互式和交互式。本文第一次提到 “交互式” 的概念,简单说明:交互式系统是指执行过程中允许用户输入数据和命令的系统。而非交互式系统,是指一旦开始运行,不需要人干预就可以自行结束的系统。因此,nslookup 以非交互式方式运行,就是指运行后自行结束。而 “交互式”,是指开始运行后,会要求使用者进一步输入数据和命令。

DNS 记录类型:

A 地址记录 AAAA 地址记录 AFSDB Andrew 文件系统数据库服务器记录 ATMA ATM 地址记录 CNAME 别名记录 HINFO 硬件配置记录,包括 CPU 、操作系统信息 ISDN 域名对应的 ISDN 号码 MB 存放指定邮箱的服务器 MG 邮件组记录 MINFO 邮件组和邮箱的信息记录 MR 改名的邮箱记录 MX 邮件服务器记录 NS 名字服务器记录 PTR 反向记录 RP 负责人记录 RT 路由穿透记录 SRV TCP 服务器信息记录 TXT 域名对应的文本信息 X25 域名对应的 X.25 地址记录

举例说明:

设置类型为 ns

下面的例子查询 baidu.com 使用的 DNS 服务器名称:

下面的例子展示如何查询 baidu.com 的邮件交换记录:

查看网站 cname 值。

查看邮件服务器记录( -qt=MX )

同样 nslookup 也可以验证是否存在域传送漏洞,步骤如下:

1) nslookup 进入交互式模式

2) Server 设置使用的 DNS 服务器

3) ls 命令列出某个域中的所有域名

4、fierce 工具

在进行了基本域名收集以后,如果能通过主域名得到所有子域名信息,再通过子域名查询其对应的主机 IP,这样我们能得到一个较为完整的信息。除了默认使用,我们还可以自己定义字典来进行域名爆破。

使用 fierce 工具,可以进行域名列表查询:fierce -dns domainName

输出结果表明,程序首先进行了域传送测试,域传送通过一条命令就能获取服务器上所有的域名信息。如果一次就能简单获取服务器上所有记录域名信息,就不再暴力破解。

但从结果上看,“Unsucessful in zone transfer” , 域传送测试是失败了。接着执行暴力破解,测试的数量取决于字典中提供的字符串数量,上例中没有指定字典,在默认情况下在 Kali 中使用 /usr/share/fierce/hosts.txt。一个内部网络的 DNS 域名服务器可以提供大量信息,这些信息可以在以后评估网络漏洞。

5、theHarvester 的使用

theHarvester 是一个社会工程学工具,它通过搜索引擎、PGP 服务器以及 SHODAN 数据库收集用户的 email ,子域名,主机,雇员名,开放端口和 banner 信息。

-d 服务器域名 -l 限制显示数目 -b 调用搜索引擎(baidu,google,bing,bingapi,pgp,linkedin,googleplus,jigsaw,all) -f 结果保存为HTML和XML文件 -h 使用傻蛋数据库查询发现主机信息

实例1:

theHarvester -d sec-redclub.com -l 100 -b baidu

实例2:

输出到 html 文件中,可以更清晰的看到搜索的网站信息的模型。

theHarvester -d sec-redclub.com -l 100 -b baidu -fmyresults.html

6、DNS 枚举工具 DNSenum

DNSenum 是一款非常强大的域名信息收集工具。它能够通过谷歌或者字典文件猜测可能存在的域名,并对一个网段进行反向查询。它不仅可以查询网站的主机地址信息、域名服务器和邮件交换记录,还可以在域名服务器上执行 axfr 请求,然后通过谷歌脚本得到扩展域名信息,提取子域名并查询,最后计算 C 类地址并执行 whois 查询,执行反向查询,把地址段写入文件。本小节将介绍使用 DNSenum 工具检查 DNS 枚举。在终端执行如下所示的命令:

输出的信息显示了 DNS 服务的详细信息。其中,包括主机地址、域名服务地址和邮件服务地址,最后会尝试是否存在域传送漏洞。

使用 DNSenum 工具检查 DNS 枚举时,可以使用 dnsenum 的一些附加选项,如下所示。

–threads[number]:设置用户同时运行多个进程数。 -r:允许用户启用递归查询。 -d:允许用户设置 WHOIS 请求之间时间延迟数(单位为秒)。 -o:允许用户指定输出位置。 -w:允许用户启用 WHOIS 请求。

7、subDomainsbrute 二级域名收集

二级域名是指顶级域名之下的域名,在国际顶级域名下,它是指域名注册人的网上名称;在国家顶级域名下,它是表示注册企业类别的符号。我国在国际互联网络信息中心(Inter NIC) 正式注册并运行的顶级域名是CN,这也是我国的一级域名。在顶级域名之下,我国的二级域名又分为类别域名和行政区域名两类。类别域名共7个,包括用于科研机构的ac;国际通用域名com、top;用于教育机构的edu;用于政府部门的gov;用于互联网络信息中心和运行中心的net;用于非盈利组织的org。而行政区域名有34个,分别对应于我国各省、自治区和直辖市。(摘自百度百科

以上为工具默认参数,如果是新手,请直接跟主域名即可,不用进行其它设置。

python subDomainsbrute.py sec-redclub.com

就可以直接运行,等待结果,最后在工具文件夹下面存在txt文件,直接导入扫描工具就可以进行扫描了。

8、layer子域名检测工具

layer子域名检测工具主要是windows一款二级域名检测工具,利用爆破形式。

工具作者:http://www.cnseay.com/4193/

域名对话框直接输入域名就可以进行扫描了,工具显示比较细致,有域名、解析 ip、cnd 列表、web 服务器和网站状态,这些对于一个安全测试人员,非常重要。如下操作:

回显示大部分主要二级域名。

9、Nmap

Nmap 是一个网络连接端口扫描软件,用来扫描网上电脑开放的网络连接端口。确定哪些服务运行在哪些连接端口,并且推断计算机运行哪个操作系统。它是网络管理员必用的软件之一,以及用以评估网络系统安全。

功能:

1、 主机发现

2、 端口扫描

3、 版本侦测

4、 OS侦测

几种部署方式:

1、Kail 集成环境

2、单独安装(使用 yum 工具直接安装)

3、PentestBox 环境

4、Windows 版等等

Nmap 的参数和选项繁多,功能非常丰富。我们先来看一下 Nmap 的通用命令格式:(详细教程及下载方式参见:http://nmap.org/

Nmap < 扫描选项 > < 扫描目标 >

主机发现的原理与 Ping 命令类似,发送探测包到目标主机,如果收到回复,那么说明目标主机是开启的。Nmap 支持十多种不同的主机探测方式,比如发送 ICMP ECHO/TIMESTAMP/NETMASK 报文、发送 TCPSYN/ACK 包、发送 SCTP INIT/COOKIE-ECHO 包,用户可以在不同的条件下灵活选用不同的方式来探测目标机。

主机发现的基本用法:

-sL: List Scan 列表扫描,仅将指定的目标的IP列举出来,不进行主机发现。 -sn: Ping Scan 只进行主机发现,不进行端口扫描。 -Pn: 将所有指定的主机视作开启的,跳过主机发现的过程。 -PS/PA/PU/PY[portlist]: 使用TCPSYN/ACK或SCTP INIT/ECHO方式进行发现。 -PE/PP/PM: 使用ICMP echo,timestamp, and netmask 请求包发现主机。 -PO[protocollist]: 使用IP协议包探测对方主机是否开启。 -sP:Ping 指定范围内的 IP 地址 -n/-R: -n表示不进行DNS解析;-R表示总是进行DNS解析。 –dns-servers <serv1[,serv2],…>: 指定DNS服务器。 –system-dns: 指定使用系统的DNS服务器 –traceroute: 追踪每个路由节点

扫描局域网 192.168.80.1/24 范围内哪些 IP 的主机是活动的。

命令如下:

nmap –sn 192.168.80.1/24

由图可知:192.168.80.1、192.168.80.254、192.168.80.166 三台主机处于存活状态。

扫描局域网 192.168.80.100-200 范围内哪些 IP 的主机是活动的。

命令如下:

nmap –sP 192.168.80.100-200

端口扫描是 Nmap 最基本最核心的功能,用于确定目标主机的 TCP/UDP 端口的开放情况。默认情况下,Nmap 会扫描 1000 个最有可能开放的 TCP 端口。Nmap 通过探测将端口划分为 6 个状态:

open:端口是开放的。 closed:端口是关闭的。 filtered:端口被防火墙 IDS/IPS 屏蔽,无法确定其状态。 unfiltered:端口没有被屏蔽,但是否开放需要进一步确定。 open|filtered:端口是开放的或被屏蔽。 closed|filtered :端口是关闭的或被屏蔽。

端口扫描方面非常强大,提供了很多的探测方式:

TCP SYN scanning TCP connect scanning TCP ACK scanning TCP FIN/Xmas/NULL scanning UDP scanning

其他方式

-sS/sT/sA/sW/sM: 指定使用 TCPSYN/Connect()/ACK/Window/Maimon scans 的方式来对目标主机进行扫描。 -sU: 指定使用 UDP 扫描方式确定目标主机的UDP端口状况。 -sN/sF/sX: 指定使用 TCP Null,FIN, and Xmas scans 秘密扫描方式来协助探测对方的 TCP 端口状态。 –scanflags <flags>: 定制 TCP 包的 flags。 -sI zombiehost[:probeport]: 指定使用 idle scan 方式来扫描目标主机(前提需要找到合适的 zombie host ) -sY/sZ: 使用 SCTPINIT/COOKIE-ECHO 来扫描 SCTP 协议端口的开放的情况。 -sO: 使用 IP protocol 扫描确定目标机支持的协议类型。 -b <FTP relay host>: 使用 FTPbounce scan 扫描方式 -p 指定端口扫描

在此,我们以主机 192.168.80.166 为例。命令如下:

nmap-sS -p0-65535 -T4 192.168.80.166

参数 -sS 表示使用 TCP SYN 方式扫描 TCP 端口;-p0-65535 表示扫描所有端口;-T4 表示时间级别配置 4 级;

扫描特定端口是否开放

nmap -p21,80,445,3306 192.168.80.166

简要的介绍版本的侦测原理。版本侦测主要分为以下几个步骤:

1、首先检查 open 与 open|filtered 状态的端口是否在排除端口列表内。如果在排除列表,将该端口剔除。

2、如果是 TCP 端口,尝试建立 TCP 连接。尝试等待片刻(通常 6 秒或更多,具体时间可以查询文件 nmap-services-probesProbe TCP NULL q|| 对应的 totalwaitms )。通常在等待时间内,会接收到目标机发送的 “WelcomeBanner” 信息。nmap 将接收到的 Banner 与 nmap-services-probesNULL probe 中的签名进行对比。查找对应应用程序的名字与版本信息。

3、如果通过 “Welcome Banner” 无法确定应用程序版本,那么 nmap 再尝试发送其他的探测包(即从 nmap-services-probes 中挑选合适的 probe ),将 probe 得到回复包与数据库中的签名进行对比。如果反复探测都无法得出具体应用,那么打印出应用返回报文,让用户自行进一步判定。

4、如果是 UDP 端口,那么直接使用 nmap-services-probes 中探测包进行探测匹配。根据结果对比分析出 UDP 应用服务类型。

5、如果探测到应用程序是 SSL,那么调用 openSSL 进一步的侦查运行在 SSL 之上的具体的应用类型。

6、如果探测到应用程序是 SunRPC,那么调用 brute-force RPC grinder 进一步探测具体服务。

具体参数解释

-sV: 指定让 Nmap 进行版本侦测 –version-intensity <level>: 指定版本侦测强度 ( 0-9 ),默认为 7 。数值越高,探测出的服务越准确,但是运行时间会比较长。 –version-light: 指定使用轻量侦测方式 ( intensity 2 ) –version-all: 尝试使用所有的probes进行侦测 ( intensity 9 ) –version-trace: 显示出详细的版本侦测过程信息。

对主机 192.168.80.166 进行版本侦测。

命令如下:

nmap -sV -p0-65535 -T4 192.168.80.166

Nmap 使用 TCP/IP 协议栈指纹来识别不同的操作系统和设备。在 RFC 规范中,有些地方对 TCP/IP 的实现并没有强制规定,由此不同的 TCP/IP 方案中可能都有自己的特定方式。Nmap 主要是根据这些细节上的差异来判断操作系统的类型的。

具体实现方式如下:

Nmap 内部包含了 2600 多已知系统的指纹特征(在文件 nmap-os-db 文件中)。将此指纹数据库作为进行指纹对比的样本库。分别挑选一个 open 和 closed 的端口,向其发送经过精心设计的 TCP/UDP/ICMP 数据包,根据返回的数据包生成一份系统指纹。将探测生成的指纹与 nmap-os-db 中指纹进行对比,查找匹配的系统。如果无法匹配,以概率形式列举出可能的系统。

-O: 指定 Nmap 进行 OS 侦测。 –osscan-limit: 限制 Nmap 只对确定的主机的进行 OS 探测(至少需确知该主机分别有一个 open 和 closed 的端口)。 –osscan-guess: 大胆猜测对方的主机的系统类型。由此准确性会下降不少,但会尽可能多为用户提供潜在的操作系统。

命令如下:

nmap –O 192.168.80.166

-vv 详细显示扫描状态

nmap -p21,80,445,3306 -vv 192.168.80.166

–script 使用 nse 脚本,也可自行编写 nse 脚本,nmap 有 580 多个脚本

nmap –script=auth 192.168.80.166

–script=brute 对弱口令进行暴力破解

nmap –script=brute 192.168.80.166

–script=default 使用默认 nse 脚本搜集应用的信息

nmap –script=default 192.168.80.166

–script=vuln 检测常见漏洞

nmap –script=vuln 192.168.80.166

优势:

1、功能灵活强大,支持多种目标,大量计算机的同时扫描;

2、开源,相关帮助文档十分详细;

3、流行,由于其具有强大的扫描机探测功能,,已被成千上万安全专家使用。

劣势:

Nmap 参数众多,难以一一记忆;

10、DirBuster

DirBuster 是一款路径及网页暴力破解的工具,可以破解出一直没有访问过或者管理员后台的界面路径。

安装方式:

Java 运行环境 + DirBuster 程序包

使用方式:

1、直接双击 DirBuster.jar 打开软件,在 URL 中输入目标 URL 或者主机 IP 地址

2、在 file with list of dirs/files 栏后点击 browse,选择破解的字典库为 directory-list-2.3-small.txt

3、将 File extension 中填入正确的文件后缀,默认为 php ,如果为 jsp、asp、aspx 页面,需要填入 jsp、asp、aspx 同样可以选择自己设置字典,线程等等

4、其他选项不变,点击右下角的 start,启动目录查找

5、观察返回结果,可点击右下角的 report,生成目录报告

优点:

1、敏感目录发掘能力强

2、OWASP安全机构极力推荐

缺点:

探测目录依赖字典文件(可以说工具只是辅助,在不同的人手里,工具有不同的功效,为什么呢?因为核心是字典,牛逼的人经过常年的渗透测试收集到的字典足够精准足够全面,所以新手可以先学习工具,想要成长还是要搞清楚原理。)

linux系统tcpdump丢包问题解决方法

在一台suse linux上使用tcpdump命令抓包,出现“packets dropped by kernel”,一般造成这种丢包的原因是libcap抓到包后,tcpdump上层没有及时取出,导致libcap缓冲区溢出,从而覆盖了未处理包,显示为dropped by kernel,这里的kernel并不是说是被linux内核抛弃的,而是被tcpdump的内核,即libcap抛弃掉。
解决方法:

根据以上分析,可以通过改善tcpdump上层的处理效率来减少丢包率,下面的几步根据需要选用,每一步都能减少一定的丢包率。

1.最小化抓取过滤范围,即通过指定网卡,端口,包流向,包大小减少包数量

2. 添加-n参数,禁止反向域名解析
tcpdump -i eth0 dst port 1234 and udp -s 2048 -n -X -tt >a.pack
大多数情况这样就可以解决
可以通过改善tcpdump上层的处理效率来减少丢包率

3. 将数据包输出到cap文件
tcpdump -i eth0 dst port 1234 and udp -s 2048 -n -X -tt -w a.cap

4. 用sysctl修改SO_REVBUF参数,增加libcap缓冲区长度

Linux LVM分区扩容方法

现有一台Linux服务器,采用LVM分区,现在新增一块10G硬盘,需将10G硬盘扩容给/data分区,操作步骤如下:

1、vgdisplay查看vg,vg name为VolGroup

2、fdisk -l查看新增硬盘为sdb,
pvcreat /dev/sdb
pvdisplay查看pv

3、df -h
查看/data所在的逻辑卷的名称

4、将/dev/sdb增加到vg里,vg name为VolGroup
查看vg,vg容量已经由39.8G变为49.8G

5、lvextend -L +9.8G 将9.8G增加到文件系统

6、df -h后容量没变,还需要
#e2fsck -f /dev/mapper/VolGroup-lv_root
#resize2fs /dev/mapper/VolGroup-lv_root

7、df -h已经可以看到/data已经由20G变为30G

 

CPU节能模式导致linux操作系统宕机的解决办法

有台HP DL380 G6服务器,安装有redhat linux as5.6 64位操作系统,安装好操作系统后,服务器有时出现宕机现象,每次重启后都恢复正常,经查看日志发现有CPU frequency相关的信息,根据该信息可以看出CPU不支持频率调整,需要设置“CPUFREQ_ENABLED=no”和“SUSPEND2RAM_FORCE=yes”的参数。

经过分析可以看出宕机现象是由服务器上CPU的节能模式引起,解决的办法就是在BIOS中关闭CPU的节能模式,或者修改cpufreq的配置参数:
#vi /etc/powersave/cpufreq
CPUFREQ_ENABLED=”no”
重启/etc/init.d/powersave即可。

cpufreq技术:

在cpufreq中内置了5种策略:performance、powersave、userspace、ondemand、conservation。默认采用ondemand策略,在该策略里每80个毫秒就采集一次cpu的使用率,同时假设前后两次cpu使用率是相同的。通过前一次的cpu使用率推出后一个cpu使用率,完了进行频率设置。所以就总的思想来说还不是很难理解。

变频技术是指CPU硬件本身支持在不同的频率下运行,系统在运行过程中可以根据随时可能发生变化的系统负载情况动态在这些不同的运行频率之间进行切换,从而达到对性能和功耗做到二者兼顾的目的。

虽然多个处理器生产厂家都提供了对变频技术的支持,但是其硬件实现和使用方法必然存在着细微甚至巨大的差别。这就使得每个处理器生产厂家都需要按照其特殊的硬件实现和使用方法向内核中添加代码,从而让自己产品中的变频技术在 Linux 中得到支持和使用。然而,这种内核开发模式所导致的后果是各个厂家的实现代码散落在 Linux 内核代码树的各个角落里,各种不同的实现之间没有任何代码是共享的,这给内核的维护以及将来添加对新的产品的支持都带来了巨大的开销,并直接导致了cpufreq 内核子系统的诞生。

管理策略:

Linux内部共有五种对频率的管理策略userspace,conservative,ondemand,powersave和 performance

1.performance :CPU会固定工作在其支持的最高运行频率上;

2.powersave :CPU会固定工作在其支持的最低运行频率上。因此这两种governors 都属于静态 governor ,即在使用它们时 CPU 的运行频率不会根据系统运行时负载的变化动态作出调整。这两种 governors 对应的是两种极端的应用场景,使用performance governor 体现的是对系统高性能的最大追求,而使用 powersave governor则是对系统低功耗的最大追求。

3.Userspace:最早的 cpufreq 子系统通过 userspace governor 为用户提供了这种灵活性。系统将变频策略的决策权交给了用户态应用程序,并提供了相应的接口供用户态应用程序调节 CPU 运行频率使用。 (可以使用Dominik 等人开发了 cpufrequtils工具包 )

4.ondemand :userspace是内核态的检测,效率低。而ondemand正是人们长期以来希望看到的一个完全在内核态下工作并且能够以更加细粒度的时间间隔对系统负载情况进行采样分析的 governor。当CPU有负载的时候选用最大的主频,当CPU空闲的时候一步步降低.

5.conservative : ondemand governor 的最初实现是在可选的频率范围内调低至下一个可用频率。即根据CPU使用情况进行升或降频,这种降频策略的主导思想是尽量减小对系统性能的负面影响,从而不会使得系统性能在短时间内迅速降低以影响用户体验。

但是在 ondemand governor 的这种最初实现版本在社区发布后,大量用户的使用结果表明这种担心实际上是多余的, ondemand governor 在降频时对于目标频率的选择完全可以更加激进。因此最新的 ondemand governor 在降频时会在所有可选频率中一次性选择出可以保证 CPU 工作在 80% 以上负荷的频率,当然如果没有任何一个可选频率满足要求的话则会选择 CPU 支持的最低运行频率。大量用户的测试结果表明这种新的算法可以在不影响系统性能的前提下做到更高效的节能。在算法改进后, ondemand governor 的名字并没有改变,而 ondemand governor 最初的实现也保存了下来,并且由于其算法的保守性而得名 conservative 。

Ondemand降频更加激进,conservative降频比较缓慢保守,事实使用ondemand的效果也是比较好的。和ondemand管理器不同的是,在CPU负载高的时候conservative 并不直接跳上最高的主频,而是采用步进的方式来升高主频。