﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-开心就好-文章分类-linux application</title><link>http://www.cppblog.com/shaovie/category/2726.html</link><description>做最好的自己</description><language>zh-cn</language><lastBuildDate>Wed, 28 May 2008 09:39:47 GMT</lastBuildDate><pubDate>Wed, 28 May 2008 09:39:47 GMT</pubDate><ttl>60</ttl><item><title>LINUX下的几个网络命令 </title><link>http://www.cppblog.com/shaovie/articles/13184.html</link><dc:creator>崔少伟</dc:creator><author>崔少伟</author><pubDate>Sat, 30 Sep 2006 07:32:00 GMT</pubDate><guid>http://www.cppblog.com/shaovie/articles/13184.html</guid><wfw:comment>http://www.cppblog.com/shaovie/comments/13184.html</wfw:comment><comments>http://www.cppblog.com/shaovie/articles/13184.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/shaovie/comments/commentRss/13184.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shaovie/services/trackbacks/13184.html</trackback:ping><description><![CDATA[
		<span class="content">修改主机IP<br />即时生效:<br /># ifconfig eth0 192.168.0.120 netmask 255.255.255.0<br />启动生效:<br />修改/etc/sysconfig/network-scripts/ifcfg-eth0<br /><br />重启网络 /etc/init.d/network restart<br /><br />修改host name<br />即时生效:<br /># hostname developer<br />启动生效:<br />修改/etc/sysconfig/network<br /><br />即时生效:<br /># route add default gw 192.168.0.254<br />启动生效:<br />修改/etc/sysconfig/network-scripts/ifcfg-eth0<br /><br />修改DNS<br />启动生效<br />vi /etc/resolv.conf<br /><br />查出22端口现在运行什么程序<br />lsof -i :22 </span>
<img src ="http://www.cppblog.com/shaovie/aggbug/13184.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shaovie/" target="_blank">崔少伟</a> 2006-09-30 15:32 <a href="http://www.cppblog.com/shaovie/articles/13184.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>linux下抓包命令--tcpdump的使用 </title><link>http://www.cppblog.com/shaovie/articles/13183.html</link><dc:creator>崔少伟</dc:creator><author>崔少伟</author><pubDate>Sat, 30 Sep 2006 07:29:00 GMT</pubDate><guid>http://www.cppblog.com/shaovie/articles/13183.html</guid><wfw:comment>http://www.cppblog.com/shaovie/comments/13183.html</wfw:comment><comments>http://www.cppblog.com/shaovie/articles/13183.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cppblog.com/shaovie/comments/commentRss/13183.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/shaovie/services/trackbacks/13183.html</trackback:ping><description><![CDATA[
		<span class="content">例:tcpdump host 172.16.29.40 and port 4600 -X -s 500 <br /><font color="#ff0033">tcpdupm host 172.16.29.40 and port 4600 -X -s 500 -l -nn | teel data.txt //可以将数据保存下来</font><br />tcpdump采用命令行方式，它的命令格式为：<br />　　tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ]<br />　　　　　　　　　　[ -i 网络接口 ] [ -r 文件名] [ -s snaplen ]<br />　　　　　　　　　　[ -T 类型 ] [ -w 文件名 ] [表达式 ]<br /><br />　　1. tcpdump的选项介绍<br />　　　-a 　　　将网络地址和广播地址转变成名字；<br />　　　-d 　　　将匹配信息包的代码以人们能够理解的汇编格式给出；<br />　　　-dd 　　　将匹配信息包的代码以c语言程序段的格式给出；<br />　　　-ddd 　　　将匹配信息包的代码以十进制的形式给出；<br />　　　-e 　　　在输出行打印出数据链路层的头部信息；<br />　　　-f 　　　将外部的Internet地址以数字的形式打印出来；<br />　　　-l 　　　使标准输出变为缓冲行形式；<br />　　　-n 　　　不把网络地址转换成名字；<br />　　　-t 　　　在输出的每一行不打印时间戳；<br />　　　-v 　　　输出一个稍微详细的信息，例如在ip包中可以包括ttl和服务类型的信息；<br />　　　-vv 　　　输出详细的报文信息；<br />　　　-c 　　　在收到指定的包的数目后，tcpdump就会停止；<br />　　　-F 　　　从指定的文件中读取表达式,忽略其它的表达式；<br />　　　-i 　　　指定监听的网络接口；<br />　　　-r 　　　从指定的文件中读取包(这些包一般通过-w选项产生)；<br />　　　-w 　　　直接将包写入文件中，并不分析和打印出来；<br />　　　-T 　　　将监听到的包直接解释为指定的类型的报文，常见的类型有rpc （远程过程<br />调用）和snmp（简单　　　　　　　网络管理协议；）<br /><br />　　2. tcpdump的表达式介绍<br />　　　表达式是一个正则表达式，tcpdump利用它作为过滤报文的条件，如果一个报文满足表<br />达式的条件，则这个报文将会被捕获。如果没有给出任何条件，则网络上所有的信息包将会<br />被截获。<br />　　　在表达式中一般如下几种类型的关键字，一种是关于类型的关键字，主要包括host，<br />net，port, 例如 host 210.27.48.2，指明 210.27.48.2是一台主机，net 202.0.0.0 指明<br />202.0.0.0是一个网络地址，port 23 指明端口号是23。如果没有指定类型，缺省的类型是<br />host.<br />　　　第二种是确定传输方向的关键字，主要包括src , dst ,dst or src, dst and src ,<br />这些关键字指明了传输的方向。举例说明，src 210.27.48.2 ,指明ip包中源地址是210.27.<br />48.2 , dst net 202.0.0.0 指明目的网络地址是202.0.0.0 。如果没有指明方向关键字，则<br />缺省是src or dst关键字。<br />　　　第三种是协议的关键字，主要包括fddi,ip ,arp,rarp,tcp,udp等类型。Fddi指明是在<br />FDDI(分布式光纤数据接口网络)上的特定的网络协议，实际上它是"ether"的别名，fddi和e<br />ther具有类似的源地址和目的地址，所以可以将fddi协议包当作ether的包进行处理和分析。<br />其他的几个关键字就是指明了监听的包的协议内容。如果没有指定任何协议，则tcpdump将会<br />监听所有协议的信息包。<br />　　　除了这三种类型的关键字之外，其他重要的关键字如下：gateway, broadcast,less,<br />greater,还有三种逻辑运算，取非运算是 'not ' '! ', 与运算是'and','&amp;&amp;';或运算 是'o<br />r' ,'||'；<br />　　　这些关键字可以组合起来构成强大的组合条件来满足人们的需要，下面举几个例子来<br />说明。<br />　　　(1)想要截获所有210.27.48.1 的主机收到的和发出的所有的数据包：<br />　　　　#tcpdump host 210.27.48.1 <br />　　　(2) 想要截获主机210.27.48.1 和主机210.27.48.2 或210.27.48.3的通信，使用命令<br />：（在命令行中适用　　　括号时，一定要<br />　　　　#tcpdump host 210.27.48.1 and \ (210.27.48.2 or 210.27.48.3 \) <br />　　　(3) 如果想要获取主机210.27.48.1除了和主机210.27.48.2之外所有主机通信的ip包<br />，使用命令：<br />　　　　#tcpdump ip host 210.27.48.1 and ! 210.27.48.2<br />　　　(4)如果想要获取主机210.27.48.1接收或发出的telnet包，使用如下命令：<br />　　　　#tcpdump tcp port 23 host 210.27.48.1 <br /><br />　　3. tcpdump 的输出结果介绍<br />　　　下面我们介绍几种典型的tcpdump命令的输出信息<br />　　　(1) 数据链路层头信息<br />　　　使用命令#tcpdump --e host ice<br />　　　ice 是一台装有linux的主机，她的MAC地址是0：90：27：58：AF：1A<br />　　　H219是一台装有SOLARIC的SUN工作站，它的MAC地址是8：0：20：79：5B：46；上一条<br />命令的输出结果如下所示：<br />21:50:12.847509 eth0 &lt; 8:0:20:79:5b:46 0:90:27:58:af:1a ip 60: h219.33357 &gt; ice.<br />telne<br />t 0:0(0) ack 22535 win 8760 (DF)<br />　　分析：21：50：12是显示的时间， 847509是ID号，eth0 &lt;表示从网络接口eth0 接受该<br />数据包，eth0 &gt;表示从网络接口设备发送数据包, 8:0:20:79:5b:46是主机H219的MAC地址,它<br />表明是从源地址H219发来的数据包. 0:90:27:58:af:1a是主机ICE的MAC地址,表示该数据包的<br />目的地址是ICE . ip 是表明该数据包是IP数据包,60 是数据包的长度, h219.33357 &gt; ice.<br />telnet 表明该数据包是从主机H219的33357端口发往主机ICE的TELNET(23)端口. ack 22535<br />表明对序列号是222535的包进行响应. win 8760表明发送窗口的大小是8760.<br /><br />　　(2) ARP包的TCPDUMP输出信息<br />　　　使用命令#tcpdump arp <br />　　　得到的输出结果是：<br />　　22:32:42.802509 eth0 &gt; arp who-has route tell ice (0:90:27:58:af:1a)<br />　　22:32:42.802902 eth0 &lt; arp reply route is-at 0:90:27:12:10:66 (0:90:27:58:af<br />:1a)<br />　　分析: 22:32:42是时间戳, 802509是ID号, eth0 &gt;表明从主机发出该数据包, arp表明是<br />ARP请求包, who-has route tell ice表明是主机ICE请求主机ROUTE的MAC地址。 0:90:27:5<br />8:af:1a是主机ICE的MAC地址。<br /><br />　　(3) TCP包的输出信息<br />　　　用TCPDUMP捕获的TCP包的一般输出信息是：<br />　　src &gt; dst: flags data-seqno ack window urgent options<br />　　src &gt; dst:表明从源地址到目的地址, flags是TCP包中的标志信息,S 是SYN标志, F (F<br />IN), P (PUSH) , R (RST) "." (没有标记); data-seqno是数据包中的数据的顺序号, ack是<br />下次期望的顺序号, window是接收缓存的窗口大小, urgent表明数据包中是否有紧急指针. <br />Options是选项.<br /><br />　　(4) UDP包的输出信息<br />　　　用TCPDUMP捕获的UDP包的一般输出信息是：<br />　　route.port1 &gt; ice.port2: udp lenth<br />　　UDP十分简单，上面的输出行表明从主机ROUTE的port1端口发出的一个UDP数据包到主机<br />ICE的port2端口，类型是UDP， 包的长度是lenth</span>
<img src ="http://www.cppblog.com/shaovie/aggbug/13183.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/shaovie/" target="_blank">崔少伟</a> 2006-09-30 15:29 <a href="http://www.cppblog.com/shaovie/articles/13183.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>