默认分类

捷径与规律

每个人都在无意识中寻找捷径在学习、工作过程实现目标,而且每个人其实都已经潜意识里掌握了某个捷径,且一直应用在其目标实现过程中,大概是每个人都已经”信仰“他的捷径,迫使他能够继续努力实现目标。

而每个人所理解的捷径又各不同

从反面来看,有的人把风舞弊,非法等当作捷径

正面上的被认为是捷径的方法,更是丰富

有的人把勤奋,也就是用更多时间来完成目标,作为捷径

有的人把提高效率作为捷径

有的人把某种”天才“也就是所谓的技巧(什么快速记忆方法,快速什么…)作为捷径

也有的人把方法策略作为捷径…总之有无数多的捷径存在人们的思想中

我觉得最合理的捷径是掌握某个目标事物的存在规律,发展规律。前面举例的捷径都是将焦点定位在我们自身上,而我觉得捷径更应该从目标事物上去寻找。可能有人说,最大的敌人是自己,从自身寻找似乎更为重要。

我能够理解有这样的想法的人,我也明白知已知彼,百战百胜。从我的体会来看,失败大部分原因是不知道什么原因,在不知什么原因的情况下继续前进,更多的力量是来自改造自己带来的力量源泉。我们为什么不想想,如果我们能清楚知道失败原因的情况下再改造自己,是不是会更好呢。答案肯定是的。那么如何定位失败的原因呢,其实就是寻找目标事物存在规律与发展规律过程中可以找到答案的。

很多创业者初始原因就是改善生活,赚取更多钱,实现财务自由。从而眼睛盯着是钱,老是想着快速赚钱,快速赚更多的钱。自然寻找捷径是自然的事,如果确定做某件事来实现赚钱的目标,那么就要对某件事的存在与发展规律进行深入分析与研究,这点做好了,一定能够找到自己的捷径,就算失败也就是暂时的。

这也是告诉我们做什么事,必须对某事作调查分析,甚至去实践了解,从中找到一些规律,然后根据这些规律再进行自我调整,相信会达到一个意想不到的结果。

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: 捷径与规律

By LEO on 2010年07月4日 | 策划执行, 随笔技巧, 默认分类 | A comment?

nginx 500错误解决办法之一

今天工作人员在增加友情链接时,不成功,且报出nginx 500的错误

我用ulimit -n查一下,显示为1024,这个数字肯定少了,于是修改

vi /etc/rc.loca

加上以下内容
ulimit -SHn 65535
/usr/local/webserver/php/sbin/php-fpm start
/usr/local/webserver/nginx/sbin/nginx

并执行

ulimit -SHn 65535

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: nginx 500错误解决办法之一

By LEO on 2010年04月27日 | 默认分类 | A comment?

博客恢复了

由于没有备案,网站强制关了一个月,真是痛苦啊!

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: 博客恢复了

By LEO on 2010年04月19日 | 默认分类 | A comment?

putty连接不上centos

昨天配置好的centos5.3 64位,今天突然用putty远程连接不上,在输入密码之后,windows下报出

 Server unexpectedly closed network connection

我后来,从另外一台linux机器上直接输入ssh root@192.168.1.227 也不行,输入密码后报出

root@192.168.1.227s password:
Connection to 192.168.1.227 closed by remote host.
Connection to 192.168.1.227 closed.

从网上找了很多办法,包括防火墙等处理,都没有解决了,后来我想是不是ssh服务端程序有问题,于是想到升级ssh

yum -y install openssh

init 6

这样操作后,问题解决了。

作者: 蔡文卫 Leo@yicike.com
版权所有:亿枝客比较购物搜索网(http://www.yicike.com/)

 

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: putty连接不上centos

By LEO on 2009年12月21日 | 默认分类 | A comment?

推荐一个国内优秀PHP开发框架thinkphp

比较下来,发现thinkphp2.0是国内比较优秀的框架,适合高中低各个层次学习使用。

我把使用过程中遇到问题记录下来如下:

1、怎么自动生成全部数据表的model和action

使用内置的build工具方法
配置好ThinkPHP\Tools\config.php 里面的数据库连接信息
然后进入cmd命令行,进入到ThinkPHP\Tools 所在目录后,输入:
php build.php 会出现提示信息,根据提示操作即可。

2、

 

作者: 蔡文卫 Leo@yicike.com
版权所有:亿枝客比较购物搜索网(http://www.yicike.com/)

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: 推荐一个国内优秀PHP开发框架thinkphp

By LEO on 2009年10月13日 | 默认分类

电子商务的理解

记得看过某位前辈把电子商务理解成两部分,即电子与商务,如下解释

像阿里就是电子,因为他不参与真正的交易与买卖,谈不上商务的存在,他依赖于平台挣钱

而很多传统企业利用网站买卖产品,这就是商务

而亚马逊有电子,提供平台,又有商务,参与产品交易

我觉得再加上一点就更清晰了

电子又分,基于商务的电子,与基于用户的电子

阿里其实是基于商家的电子,因为他的使命就是帮助生意人好做生意。

亿枝客也是电子,但是基于用户的电子,因为亿枝客的目标是帮助消费者找到合适产品。

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: 电子商务的理解

By LEO on 2009年09月25日 | 默认分类 | A comment?

轻松监控网络工具iptraf

IPTraf是一个IP网络监控工具。它拦截网络上的报文,给出报文各个部分的信息。

IPTraf能够用于监视IP网络的负载。IPTraf使用Linux内核的内置原始(raw)包捕获接口,可以广泛地用于以太网卡,支持FDDI适配器、ISDN适配器以及任何异步SLIP/PPP接口。 

你可以从http://iptraf.seul.org下载IPTraf。然后使用如下命令安装IPTraf: 
   
  解压文件 
   
  #tar zxvf Iptraf-2.4.0.tar.gz 
   
  #cd iptraf-x.y.z 
   
  执行setup脚本,这一步要以root的权限进行,setup会自动编译并把IPTraf安装到/usr/local/bin目录中,同时也会建立其它的目录: 
   
  ./Setup 

安装完成之后,只要在shell中输入: 
   
  #iptraf 
   
  就可以启动IPTraf。

我使用这个工具,主要是用来查看我们的WEB服务器的数据流量从哪个网卡口进出,尽量让流量从千兆口进出。所以给我帮助不少,谢谢开发些工具的人。

 

作者: Leo@yicike.com
原载: 亿枝客比较购物搜索引擎版权所有。转载时必须以链接形式注明作者和原始出处及本声明。

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: 轻松监控网络工具iptraf

By LEO on 2009年09月5日 | 默认分类

世界上最长的网址,汗

大家把下面地址,复制下来(不要点击,不然无效)放到火狐浏览器里看,会有想不到的结果哦!

不过,为了不让大家骂我,还是请大家不要这么做...

http://www.hugeurl.com/?MDQzMDc1ZDViZmZmYmZkYmNhOTZiOTAwYWY3
YTJhYmYmMTUmVm0wd2QyUXlVWGxWV0d4V1YwZDRWMVl3WkRSWFJteFZVMjA1
VjAxV2JETlhhMk0xVmpGYWMySkVUbGhoTWsweFdWZDRTMk14WkhGUmJGWlhZ
a2hDVVZacVFtRlpWMDE1VTJ0V1ZXSkhhRzlVVmxaM1ZsWmFkR05GWkZwV01E
RTFWVEowVjFaWFNraGhSemxWVmpOT00xcFZXbUZqVmtaMFVteFNUbUY2UlRG
V1ZFb3dWakZhV0ZOcmFHaFNlbXhXVm0weGIxSkdXbGRYYlVaclVqRmFTRll5
TVRSVk1rcElaSHBHVjJFeVVYZFpla3BIWXpGT2RWVnRhRk5sYlhoWFZtMXdU
MVF3TUhoalJscFlZbFZhY2xWcVFURlNNWEJHVjJ4T1ZXSkdjRlpXYlhSM1Zq
SktWVkpZWkZwV1JWcHlWVEJhVDJOc2NFaGpSbEpUVmxoQ1dsWnJXbGRaVjFG
NFZHdGtWbUpHV2xSWmJGWmhZMVphZEdSSFJrNVNiRm93V2xWYVQxWlhTbFpY
VkVwV1lrWktTRlpxUm1GU2JVbDZXa1prYUdFeGNHOVdha0poVkRKT2RGTnJa
RlJpVjNoVVZGY3hiMWRzV1hoYVJGSnBUV3RzTTFSVmFHOVhSMHBJVld4c1dt
SkdXbWhaTW5oWFl6RldjbHBHYUdsU00xRjZWakowVTFVeFduSk5XRXBxVWxk
NGFGVXdhRU5UUmxweFUydGFiRlpzV2xwWGExcDNWakZLVjJOSWJGZFdSVXBv
VmtSS1QyTXlUa1poUjNCVFlrVndWVlp0ZUc5Uk1XUnpWMjVLV0dKSFVtOVVW
bHBYVGxaYVdFNVZPV2hpUlhBd1ZsZDRjMWR0U2tkWGJXaGFUVlp3ZWxreWVH
dGtSa3AwWlVaa2FWWnJiekZXYlhCS1RWZEZlRmRZWkU1V1ZscFVXVlJHZDFZ
eGJISlhhM1JUVW14d2VGVldhRzloTVZwelYycEdWMDF1YUdoWlZXUkdaVWRP
UjJKR2FHaE5WbkJ2Vm10U1MxUXlVa2RVYmtwaFVteEtjRlpxVG05WFZscFlZ
MFU1YVUxWFVraFdNalZUVkd4T1NGVnVUbFpoYTBwNlZHdGFWbVZYVWtoa1Iy
aFhZWHBXU0ZacVNqUlZNV1IwVTJ0b2FGSnNTbGhVVmxwM1YwWnJlRmRyZEdw
aVZrcElWbGQ0YTJGV1NuUlBWRTVYVFc1b1dGbHFTa1psUm1SWldrVTFWMVpz
Y0ZWWFZsSkhaREZrUjJKSVNtRlNlbXh4V1d0YWQyVkdWWGxrUjBacFVteHdl
bFl5ZUhkWFIwVjRZMGhLV2xaWFVrZGFWV1JQVWpKR1IyRkhiRk5pYTBwMlZt
MTBVMU14VVhsVmEyUlVZbXR3YjFWcVNtOVdSbXhaWTBaa2JHSkhVbGxhVldN
MVlWVXhXRlZyYUZkTmFsWlVWa2Q0VDFOSFJrZFJiRnBwVmtWVmQxWnRjRWRW
TVZwMFVtdG9VRlp0YUZSVVZXaERVMnhhYzFwRVVtcE5WMUl3VlRKMGIyRkdT
bk5UYkdoVlZsWndNMVpyV21GalZrcDBaRWQwVTJFelFYZFhiRlpoWVRKR1dG
SllaR3BTVjNoWVdXeG9RMU14Y0ZaV1dHaFRUVmRTZWxsVldsTmhSVEZ6VTI1
b1YxWXpVbGhYVmxwYVpVWmtkVkpzVm1sV1IzaDZWMWQwWVdReVZrZFdXR3hy
VWpOU2IxbHNWbmRXTVd4MVkwVjBWMkpHYkRaWlZXaExWMnhhV0ZWclpHRldW
MUpRVldwS1IxSXlSa2hpUms1cFlUQndNbFp0TVRCVk1VMTRWVmhzVm1FeVVs
WlpiWFIzWVVaV2RHVkZkR3BTYkhCNFZrY3dOVll4V25OalJXaFlWa1UxZGxs
V1ZYaGpiVXBGVld4a1RsWXlhREpXTVZwaFV6RktjMVJ1VWxOaVIxSnZXVlJH
ZDFOV1draGtSMFphVm0xU1NWWlhkRzloTVVwMFlVWlNWVlpYYUVSVk1uaGhZ
ekZ3UlZWdGNFNVdNVWwzVmxSS01HSXlSa2RUYms1VVlrZG9WbFpzV25kTk1X
eFdWMjVrVTJKSVFraFdSM2hUVlRKRmVsRnFWbGRTTTJob1ZrUktSMWRHU2xs
YVIzQlRWak5vV1ZkWGVHOVJNVkpIWTBab2FtVnJXbGxWYlhSM1pWWmtjbGR0
T1doV01Ga3lWbTAxYjFZeFdrWlRibHBXVmtWYWVsWnFSbGRqTVdSellVZHNh
VlpyY0RaV01XUXdXVmRSZVZaclpGZFhSM2h5VldwT1UySXhiSE5XYm1SWFRW
ZDRNVmt3VmpCV01rcEhZa1JhV2xaV1NsQldNakZHWlZaV2NscEhSbGRXTVVw
UlZsUkNhMUl4U1hsU2EyaHBVbXMxY0ZsVVFuZE5iRnAwVFZSQ1ZrMVZNVFJX
Vm1oelZtMUZlVlZzV2xwaVdGSXpXVlZhVjJSSFZrWmtSM0JUWWtoQ05GWlVT
WGRPVjBwSVUydG9WbUpIZUdoV2JHUk9UVlpzVjFaWWFHcGlWWEJHVmxkNGEx
UnRSbk5YYkZaWFlUSlJNRlY2Umt0ak1YQkpWbXhTYVZKc2NGbFhWM1JoWkcx
V2MxZHJaRmRpVlZwaFZtcEdTMUl4VW5OWGJVWldVbXhzTlZsVmFFTldiVXBJ
WVVWU1YwMXVhSEpaZWtaaFpFZFNSMVJyTlZkTk1taGFWbTF3UzJReGJGZFdX
R2hZWVRGd1ZWbHJaRzlYUm14WVkzcEdhMkpIZUZkV01qRkhZV3hhY21OSWNG
aGhNWEIyVm1wS1MyTnNUbkppUm1SWFlsWkZkMVl4V21GWGJWWkhWRzVLV0dK
Rk5WaFZiRnBXVGxFOVBRPT0=

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: 世界上最长的网址,汗

By LEO on 2009年08月12日 | 默认分类

网络分析工具TcpDump 资料汇总

第一部分 TCPDUMP介绍

TCPDUMP简介

在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的。对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过sniffer工具来调试程序。

用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,只不过在没有使用sniffer工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不应该接收的信息包,sniffer工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的效果。

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是必不可少的。所以,今天我们就来看看Linux中强大的网络数据采集分析工具——TcpDump。

用简单的话来定义tcpdump,就是:dump the traffice on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。

作为互联网上经典的的系统管理员必备工具,tcpdump以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东东之一。

顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

tcpdump提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpdump存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。

普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
-----------------------
bash-2.02# tcpdump
tcpdump: listening on eth0
11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50
11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43
0000 0000 0080 0000 1007 cf08 0900 0000
0e80 0000 902b 4695 0980 8701 0014 0002
000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97
ffff 0060 0004 ffff ffff ffff ffff ffff
0452 ffff ffff 0000 e85b 6d85 4008 0002
0640 4d41 5354 4552 5f57 4542 0000 0000
0000 00
^C
------------------------

首先我们注意一下,从上面的输出结果上可以看出来,基本上tcpdump总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数

TcpDump的参数化支持

  tcpdump支持相当多的不同参数,如使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存,等等。

  然而更复杂的tcpdump参数是用于过滤目的,这是因为网络中流量很大,如果不加分辨将所有的数据包都截留下来,数据量太大,反而不容易发现需要的数据包。使用这些参数定义的过滤规则可以截留特定的数据包,以缩小目标,才能更好的分析网络中存在的问题。tcpdump使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的。请使用man tcpdump查看这些过滤规则的具体用法。

  显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内核中的bpfilter伪设备。一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP堆栈才行。在FreeBSD下,这就需要内核支持伪设备bpfilter。因此,在内核中取消bpfilter支持,就能屏蔽tcpdump之类的网络分析工具。

  并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板。

  May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled

  虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行分析、分类统计、发现并报告错误却是更关键的问题。网络中的数据包属于不同的协议,而不同协议数据包的格式也不同。因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲更为重要。昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持tcp、udp等低层协议。

  从上面tcpdump的输出可以看出,tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

TCP功能

数据过滤

不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,而且数据太多不利于分析。所以,我们应当先想好需要哪些数据,TcpDump提供以下参数供我们选择数据:

-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。

例如:tcpdump -b arp 将只显示网络中的arp即地址转换协议信息。

-i 选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接口上通过的数据。例如:

tcpdump -i eth0 只显示通过eth0接口上的所有报头。

src、dst、port、host、net、ether、gateway这几个选项又分别包含src、dst 、port、host、net、ehost等附加选项。他们用来分辨数据包的来源和去向,src host 192.168.0.1指定源主机IP地址是192.168.0.1,dst net 192.168.0.0/24指定目标是网络192.168.0.0。以此类推,host是与其指定主机相关无论它是源还是目的,net是与其指定网络相关的,ether后面跟的不是IP地址而是物理地址,而gateway则用于网关主机。可能有点复杂,看下面例子就知道了:

tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24

过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头。

tcpdump ether src 00:50:04:BA:9B and dst……

过滤源主机物理地址为XXX的报头(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽)。

Tcpdump src host 192.168.0.1 and dst port not telnet

过滤源主机192.168.0.1和目的端口不是telnet的报头。

ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。
例如:

tcpdump ip src……

只过滤数据-链路层上的IP报头。

tcpdump udp and src host 192.168.0.1

只过滤源主机192.168.0.1的所有udp报头。

数据显示/输入输出

TcpDump提供了足够的参数来让我们选择如何处理得到的数据,如下所示:

-l 可以将数据重定向。

如tcpdump -l >tcpcap.txt将得到的数据存入tcpcap.txt文件中。

-n 不进行IP地址到主机名的转换。

如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0 < ntc9.1165> router.domain.net.telnet,使用-n后变成了:eth0 < 192.168.0.9.1165 > 192.168.0.1.telnet。

-nn 不进行端口名称的转换。

上面这条信息使用-nn后就变成了:eth0 < ntc9.1165 > router.domain.net.23。

-N 不打印出默认的域名。

还是这条信息-N 后就是:eth0 < ntc9.1165 > router.telnet。

-O 不进行匹配代码的优化。
-t 不打印UNIX时间戳,也就是不显示时间。
-tt 打印原始的、未格式化过的时间。
-v 详细的输出,也就比普通的多了个TTL和服务类型。

 
TCPDUMP的安装

 在linux下tcpdump的安装十分简单,一般由两种安装方式。一种是以rpm包的形式来进行安装。另外一种是以源程序的形式安装。
  1. rpm包的形式安装
    #rpm -ivh tcpdump-3_4a5.rpm
  这样tcpdump就顺利地安装到你的linux系统中。怎么样,很简单吧。
  2. 源程序的安装
     #tar xvfz tcpdump-3_4a5.tar.Z
    rpm的包可以使用如下命令安装:
     #rpm -ivh tcpdump-3_4a5.src.rpm
    这样就把tcpdump的源代码解压到/usr/src/redhat/SOURCES目录下.

第二步 做好编译源程序前的准备活动

在编译源程序之前,最好已经确定库文件libpcap已经安装完毕,这个库文件是tcpdump软件所需的库文件 。同样,你同时还要有一个标准的c语言编译器。在linux下标准的c 语言编译器一般是gcc。 在tcpdump的源程序目录中。有一个文件是Makefile.in,configure命令就是从Makefile.in文件中自动产生Makefile文件。在Makefile.in文件中,可以根据系统的配置来修改BINDEST 和 MANDEST 这两个宏定义,缺省值是
      BINDEST = @sbindir@
      MANDEST = @mandir@
 
第一个宏值表明安装tcpdump的二进制文件的路径名,第二个表明tcpdump的man 帮助页的路径名,你可以修改它们来满足系统的需求。

  第三步 编译源程序
 
使用源程序目录中的configure脚本,它从系统中读出各种所需的属性。并且根据Makefile.in文件自动生成Makefile文件,以便编译使用.make 命令则根据Makefile文件中的规则编译tcpdump的源程序。使用make install命令安装编译好的tcpdump的二进制文件。
 
总结一下就是:
 
      # tar xvfz tcpdump-3_4a5.tar.Z
      # vi Makefile.in
      # . /configure
      # make
      # make install

关于tcpdump更详细的信息,请查看Man tcpdump。

第二部分 使用说明

Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是必不可少的。所以,今天我们就来看看Linux中强大的网络数据采集分析工具——TcpDump。

    顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。

    和Linux终端状态下的其他软件一样,TcpDump也是依靠参数来工作,本文将结合实例来说明。

    数据过滤

    不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,而且数据太多不利于分析。所以,我们应当先想好需要哪些数据,TcpDump提供以下参数供我们选择数据:

    -b在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。

    例如:tcpdump -b arp将只显示网络中的arp即地址转换协议信息。

    -i选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接口上通过的数据。例如:

    tcpdump -i eth0只显示通过eth0接口上的所有报头。

    src、dst、port、host、net、ether、gateway这几个选项又分别包含src、dst、port、host、net、 ehost等附加选项。他们用来分辨数据包的来源和去向,src host 192.168.0.1指定源主机IP地址是192.168.0.1,dst net 192.168.0.0/24指定目标是网络192.168.0.0。以此类推,host是与其指定主机相关无论它是源还是目的,net是与其指定网络相关的,ether后面跟的不是IP地址而是物理地址,而gateway则用于网关主机。可能有点复杂,看下面例子就知道了:

    tcpdump src host 192.168.0.1 and dst net 192.168.0.0/24
    过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头。

    tcpdump ether src 00:50:04:BA:9B and dst……
    过滤源主机物理地址为XXX的报头(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽)。

    Tcpdump src host 192.168.0.1 and dst port not telnet
    过滤源主机192.168.0.1和目的端口不是telnet的报头。

    ip icmp arp rarp和tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。例如:
    tcpdump ip src……
    只过滤数据-链路层上的IP报头。

    tcpdump udp and src host 192.168.0.1
    只过滤源主机192.168.0.1的所有udp报头。

    数据显示/输入输出

    TcpDump提供了足够的参数来让我们选择如何处理得到的数据,如下所示:

    -l可以将数据重定向。

    如tcpdump -l>tcpcap.txt将得到的数据存入tcpcap.txt文件中。

    -n不进行IP地址到主机名的转换。

    如果不使用这一项,当系统中存在某一主机的主机名时,TcpDump会把IP地址转换为主机名显示,就像这样:eth0<ntc9.1165> router.domain.net.telnet,使用-n后变成了:eth0<192.168.0.9.1165> 192.168.0.1.telnet。

    -nn不进行端口名称的转换。

    上面这条信息使用-nn后就变成了:eth0<ntc9.1165>router.domain.net.23。

    -N不打印出默认的域名。

    还是这条信息-N后就是:eth0<ntc9.1165>router.telnet。

    -O不进行匹配代码的优化。

    -t不打印UNIX时间戳,也就是不显示时间。

    -tt打印原始的、未格式化过的时间。

    -v详细的输出,也就比普通的多了个TTL和服务类型。

    好了,说了这么多,是不是觉得TcpDump这个工具很好?它还有好多功能限于篇幅不能一一介绍,多读一读“帮助”都会有很大的收获,这也算是进入Linux世界的一条捷径吧。

 

第三部分 更多使用例子

第一种是关于类型的关键字,主要包括host,net,port, 例如 host 210.27.48.2,指明 210.27.48.2是一台主机,net 202.0.0.0 指明 202.0.0.0是一个网络地址,port 23 指明端口号是23。如果没有指定类型,缺省的类型是host.

第二种是确定传输方向的关键字,主要包括src , dst ,dst or src, dst and src ,这些关键字指明了传输的方向。举例说明,src 210.27.48.2 ,指明ip包中源地址是210.27.48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字,则缺省是src or dst关键字。

第三种是协议的关键字,主要包括fddi,ip,arp,rarp,tcp,udp等类型。Fddi指明是在FDDI(分布式光纤数据接口网络)上的特定 的网络协议,实际上它是"ether"的别名,fddi和ether具有类似的源地址和目的地址,所以可以将fddi协议包当作ether的包进行处理和 分析。其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议,则tcpdump将会监听所有协议的信息包。
 

除了这三种类型的关键字之外,其他重要的关键字如下:gateway, broadcast,less,greater,还有三种逻辑运算,取非运算是 not ! , 与运算是and,&&;或运算 是or ,││;这些关键字可以组合起来构成强大的组合条件来满足人们的需要,下面举几个例子来说明。
  普通情况下,直接启动tcpdump将监视第一个网络界面上所有流过的数据包。
# tcpdump
tcpdump: listening on fxp0
11:58:47.873028 202.102.245.40.netbios-ns > 202.102.245.127.netbios-ns: udp 50
11:58:47.974331 0:10:7b:8:3a:56 > 1:80:c2:0:0:0 802.1d ui/C len=43
                       0000 0000 0080 0000 1007 cf08 0900 0000
                       0e80 0000 902b 4695 0980 8701 0014 0002
                       000f 0000 902b 4695 0008 00
11:58:48.373134 0:0:e8:5b:6d:85 > Broadcast sap e0 ui/C len=97
                       ffff 0060 0004 ffff ffff ffff ffff ffff
                       0452 ffff ffff 0000 e85b 6d85 4008 0002
                       0640 4d41 5354 4552 5f57 4542 0000 0000
                       0000 00
使用-i参数指定tcpdump监听的网络界面,这在计算机具有多个网络界面时非常有用,
使用-c参数指定要监听的数据包数量,
使用-w参数指定将监听到的数据包写入文件中保存
 A想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包:
#tcpdump host 210.27.48.1
B想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令:(在命令行中适用 括号时,一定要
#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
C如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
D如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
#tcpdump tcp port 23 host 210.27.48.1
E 对本机的udp 123 端口进行监视 123 为ntp的服务端口
# tcpdump udp port 123

F 系统将只对名为hostname的主机的通信数据包进行监视。主机名可以是本地主机,也可以是网络上的任何一台计算机。下面的命令可以读取主机hostname发送的所有数据:
#tcpdump -i eth0 src host hostname
G 下面的命令可以监视所有送到主机hostname的数据包:
#tcpdump -i eth0 dst host hostname
H  我们还可以监视通过指定网关的数据包:
#tcpdump -i eth0 gateway Gatewayname
I 如果你还想监视编址到指定端口的TCP或UDP数据包,那么执行以下命令:
#tcpdump -i eth0 host hostname and port 80
J 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包
,使用命令:
#tcpdump ip host 210.27.48.1 and ! 210.27.48.2
K 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信,使用命令
:(在命令行中适用 括号时,一定要
#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \)
L 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包,使用命令:
 #tcpdump ip host 210.27.48.1 and ! 210.27.48.2
M 如果想要获取主机210.27.48.1接收或发出的telnet包,使用如下命令:
 #tcpdump tcp port 23 host 210.27.48.1

如果条件很多的话  要在条件之前加and 或 or 或 not
#tcpdump -i eth0 host ! 211.161.223.70 and ! 211.161.223.71 and dst port 80
如果在ethernet 使用混杂模式 系统的日志将会记录
May  7 20:03:46 localhost kernel: eth0: Promiscuous mode enabled.
May  7 20:03:46 localhost kernel: device eth0 entered promiscuous mode
May  7 20:03:57 localhost kernel: device eth0 left promiscuous mode
tcpdump对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpdump 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: 网络分析工具TcpDump 资料汇总

By LEO on 2009年08月8日 | 默认分类

不用软驱,在linux上也能安装RAID驱动程序

自上次RAID安装失败后,我另外购买了一块adapter sata raid 2410sa 卡,准备测试四块机器安装RAID5.

环境如下:

主板:Inter Server S5000VSA

CPU:xeon 四核 5405*2

内存:16G

硬盘:4块西部数据500GSATA

RAID: 主板自带RAID0

系统:Centos5.3 64位

遗憾的是,这次RAID5还是没有达成,原因是官方没有提供centos5 64位的驱动,只是实现了RAID0.

不过,倒是掌握了不用软驱,也能安装RAID驱动程序的办法,想想前几天还专门购买了一个软驱,真是亏啊。

办法很简单,上次其实提到过,如下:

1) 创建RAID,这一步,我就不讲相信大家都会。
2) 启动Centos安装,并且将驱动程序复制到你的移动硬盘里(注意最好是第一盘符),直接IMG文件就可以了。
3) 在安装的第一个界面,输入  linux nostorage
4) 进入安装过程中,一直看到“Add device” 按钮.
5) 点击 “Add Device”,出现一系列的驱动
6) 按F2,就跳出选择软盘,或者移动硬盘
7) 我们选择移动硬盘,找到驱动程序文件,一般是IMG文件,选中后再点OK按钮。
8 ) 这时会回到刚才看到的驱动程序列表界面
9) 选中刚才加进来的驱动,建议大家记住自己的驱动型号,厂商等信息,以便快速定位。
11) 点击 OK
12) 驱动程序就被加载,并出现在新增加设置列里
13) 点击 Done
14) 继续安装,完成了。

这次还测试了intel S5000VSA自带的RAID安装RAID10,发现就算安装了驱动,能够顺利安装完,但是重新启动就会有问题,与上次一样,

attempt to access beyond end of device
sda: rw=0, want=1953278938, limit=976773168
Buffer I/O error on device sda2, logical block 1952877312
attempt to access beyond end of device
sda: rw=0, want=1953278939, limit=976773168
Buffer I/O error on device sda2, logical block 1952877313
attempt to access beyond end of device
sda: rw=0, want=1953278940, limit=976773168
Buffer I/O error on device sda2, logical block 1952877314
attempt to access beyond end of device
sda: rw=0, want=1953278941, limit=976773168
Buffer I/O error on device sda2, logical block 1952877315
attempt to access beyond end of device
sda: rw=0, want=1953278942, limit=976773168
Buffer I/O error on device sda2, logical block 1952877316
attempt to access beyond end of device
sda: rw=0, want=1953278943, limit=976773168
Buffer I/O error on device sda2, logical block 1952877317
attempt to access beyond end of device
sda: rw=0, want=1953278944, limit=976773168
Buffer I/O error on device sda2, logical block 1952877318
attempt to access beyond end of device
sda: rw=0, want=1953278945, limit=976773168
Buffer I/O error on device sda2, logical block 1952877319
attempt to access beyond end of device
sda: rw=0, want=1953278938, limit=976773168
Buffer I/O error on device sda2, logical block 1952877312

由此,我判断是自带的RAID不支持,4块500G硬盘构成的将近1T的容量,其实还是觉得奇怪,可事实如此,哎.除非这块主板有问题。看来,下次网上购物电脑配件得了解清楚再出手。

原创文章,转载请注明: 转载自亿赐客比较购物搜索网

本文链接地址: 不用软驱,在linux上也能安装RAID驱动程序

By LEO on | 默认分类