eth0000
❶ tcpmp是什么意思.干什么用的.哪里有详细的资料,
TCPDUMP简介
在传统的网络分析和测试技术中,嗅探器(sniffer)是最常见,也是最重要的技术之一。sniffer工具首先是为网络管理员和网络程序员进行网络分析而设计的。对于网络管理人员来说,使用嗅探器可以随时掌握网络的实际情况,在网络性能急剧下降的时候,可以通过sniffer工具来分析原因,找出造成网络阻塞的来源。对于网络程序员来说,通过sniffer工具来调试程序。
用过windows平台上的sniffer工具(例如,netxray和sniffer pro软件)的朋友可能都知道,在共享式的局域网中,采用sniffer工具简直可以对网络中的所有流量一览无余!Sniffer工具实际上就是一个网络上的抓包工具,同时还可以对抓到的包进行分析。由于在共享式的网络中,信息包是会广播到网络中所有主机的网络接口,只不过在没有使用sniffer工具之前,主机的网络设备会判断该信息包是否应该接收,这样它就会抛弃不应该接收的信息包,sniffer工具却使主机的网络设备接收所有到达的信息包,这样就达到了网络监听的效果。
Linux作为网络服务器,特别是作为路由器和网关时,数据的采集和分析是必不可少的。所以,今天我们就来看看Linux中强大的网络数据采集分析工具——TcpDump。
用简单的话来定义tcpmp,就是:mp the traffice on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具。
作为互联网上经典的的系统管理员必备工具,tcpmp以其强大的功能,灵活的截取策略,成为每个高级的系统管理员分析网络,排查问题等所必备的东东之一。
顾名思义,TcpDump可以将网络中传送的数据包的“头”完全截获下来提供分析。它支持针对网络层、协议、主机、网络或端口的过滤,并提供and、or、not等逻辑语句来帮助你去掉无用的信息。
tcpmp提供了源代码,公开了接口,因此具备很强的可扩展性,对于网络维护和入侵者都是非常有用的工具。tcpmp存在于基本的FreeBSD系统中,由于它需要将网络界面设置为混杂模式,普通用户不能正常执行,但具备root权限的用户可以直接执行它来获取网络上的信息。因此系统中存在网络分析工具主要不是对本机安全的威胁,而是对网络上的其他计算机的安全存在威胁。
普通情况下,直接启动tcpmp将监视第一个网络界面上所有流过的数据包。
-----------------------
bash-2.02# tcpmp
tcpmp: 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
------------------------
首先我们注意一下,从上面的输出结果上可以看出来,基本上tcpmp总的的输出格式为:系统时间 来源主机.端口 > 目标主机.端口 数据包参数
TcpDump的参数化支持
tcpmp支持相当多的不同参数,如使用-i参数指定tcpmp监听的网络界面,这在计算机具有多个网络界面时非常有用,使用-c参数指定要监听的数据包数量,使用-w参数指定将监听到的数据包写入文件中保存,等等。
然而更复杂的tcpmp参数是用于过滤目的,这是因为网络中流量很大,如果不加分辨将所有的数据包都截留下来,数据量太大,反而不容易发现需要的数据包。使用这些参数定义的过滤规则可以截留特定的数据包,以缩小目标,才能更好的分析网络中存在的问题。tcpmp使用参数指定要监视数据包的类型、地址、端口等,根据具体的网络问题,充分利用这些过滤规则就能达到迅速定位故障的目的。请使用man tcpmp查看这些过滤规则的具体用法。
显然为了安全起见,不用作网络管理用途的计算机上不应该运行这一类的网络分析软件,为了屏蔽它们,可以屏蔽内核中的bpfilter伪设备。一般情况下网络硬件和TCP/IP堆栈不支持接收或发送与本计算机无关的数据包,为了接收这些数据包,就必须使用网卡的混杂模式,并绕过标准的TCP/IP堆栈才行。在FreeBSD下,这就需要内核支持伪设备bpfilter。因此,在内核中取消bpfilter支持,就能屏蔽tcpmp之类的网络分析工具。
并且当网卡被设置为混杂模式时,系统会在控制台和日志文件中留下记录,提醒管理员留意这台系统是否被用作攻击同网络的其他计算机的跳板。
May 15 16:27:20 host1 /kernel: fxp0: promiscuous mode enabled
虽然网络分析工具能将网络中传送的数据记录下来,但是网络中的数据流量相当大,如何对这些数据进行分析、分类统计、发现并报告错误却是更关键的问题。网络中的数据包属于不同的协议,而不同协议数据包的格式也不同。因此对捕获的数据进行解码,将包中的信息尽可能的展示出来,对于协议分析工具来讲更为重要。昂贵的商业分析工具的优势就在于它们能支持很多种类的应用层协议,而不仅仅只支持tcp、udp等低层协议。
从上面tcpmp的输出可以看出,tcpmp对截获的数据并没有进行彻底解码,数据包内的大部分内容是使用十六进制的形式直接打印输出的。显然这不利于分析网络故障,通常的解决办法是先使用带-w参数的tcpmp 截获数据并保存到文件中,然后再使用其他程序进行解码分析。当然也应该定义过滤规则,以避免捕获的数据包填满整个硬盘。
TCP功能
数据过滤
不带任何参数的TcpDump将搜索系统中所有的网络接口,并显示它截获的所有数据,这些数据对我们不一定全都需要,而且数据太多不利于分析。所以,我们应当先想好需要哪些数据,TcpDump提供以下参数供我们选择数据:
-b 在数据-链路层上选择协议,包括ip、arp、rarp、ipx都是这一层的。
例如:tcpmp -b arp 将只显示网络中的arp即地址转换协议信息。
-i 选择过滤的网络接口,如果是作为路由器至少有两个网络接口,通过这个选项,就可以只过滤指定的接口上通过的数据。例如:
tcpmp -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则用于网关主机。可能有点复杂,看下面例子就知道了:
tcpmp src host 192.168.0.1 and dst net 192.168.0.0/24
过滤的是源主机为192.168.0.1与目的网络为192.168.0.0的报头。
tcpmp ether src 00:50:04:BA:9B and dst……
过滤源主机物理地址为XXX的报头(为什么ether src后面没有host或者net?物理地址当然不可能有网络喽)。
Tcpmp src host 192.168.0.1 and dst port not telnet
过滤源主机192.168.0.1和目的端口不是telnet的报头。
ip icmp arp rarp 和 tcp、udp、icmp这些选项等都要放到第一个参数的位置,用来过滤数据报的类型。
例如:
tcpmp ip src……
只过滤数据-链路层上的IP报头。
tcpmp udp and src host 192.168.0.1
只过滤源主机192.168.0.1的所有udp报头。
数据显示/输入输出
TcpDump提供了足够的参数来让我们选择如何处理得到的数据,如下所示:
-l 可以将数据重定向。
如tcpmp -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下tcpmp的安装十分简单,一般由两种安装方式。一种是以rpm包的形式来进行安装。另外一种是以源程序的形式安装。
1. rpm包的形式安装
#rpm -ivh tcpmp-3_4a5.rpm
这样tcpmp就顺利地安装到你的linux系统中。怎么样,很简单吧。
2. 源程序的安装
#tar xvfz tcpmp-3_4a5.tar.Z
rpm的包可以使用如下命令安装:
#rpm -ivh tcpmp-3_4a5.src.rpm
这样就把tcpmp的源代码解压到/usr/src/redhat/SOURCES目录下.
第二步 做好编译源程序前的准备活动
在编译源程序之前,最好已经确定库文件libpcap已经安装完毕,这个库文件是tcpmp软件所需的库文件 。同样,你同时还要有一个标准的c语言编译器。在linux下标准的c 语言编译器一般是gcc。 在tcpmp的源程序目录中。有一个文件是Makefile.in,configure命令就是从Makefile.in文件中自动产生Makefile文件。在Makefile.in文件中,可以根据系统的配置来修改BINDEST 和 MANDEST 这两个宏定义,缺省值是
BINDEST = @sbindir@
MANDEST = @mandir@
第一个宏值表明安装tcpmp的二进制文件的路径名,第二个表明tcpmp的man 帮助页的路径名,你可以修改它们来满足系统的需求。
第三步 编译源程序
使用源程序目录中的configure脚本,它从系统中读出各种所需的属性。并且根据Makefile.in文件自动生成Makefile文件,以便编译使用.make 命令则根据Makefile文件中的规则编译tcpmp的源程序。使用make install命令安装编译好的tcpmp的二进制文件。
总结一下就是:
# tar xvfz tcpmp-3_4a5.tar.Z
# vi Makefile.in
# . /configure
# make
# make install
关于tcpmp更详细的信息,请查看Man tcpmp。
❷ ENS域名成“新宠”,下一个NFT热潮
我曾经在文章中介绍过ENS。它是以太坊域名服务的全称。简单地说就是用户可以申请一个ENS域名,然后把这个域名和自己使用的钱包地址挂钩。这样一来,在加密世界中但凡需要使用钱包地址的地方就可以用这个域名来替代地址。
一个ENS域名可以是字母组合,可以是数字组合,也可以是字母和数字的组合,它的后缀统一为“.eth”。
在使用中用方便记忆的字符替代一长串容易输错的地址会给用户带来极大的方便,并减少交易出错的几率。
大家如果经常逛推特,就会发现很多海外加密圈的大V都会把自己的ENS域名挂在自己的头像旁边。头像是自己喜爱的头像类项目,旁边就是自己喜欢的域名。
这几乎成了大V们的标配。
ENS发展历程中最大的事件恐怕要算去年的代币空投。在那次空投中,很多早期用户都得到了价值不菲的代币。
除此以外,ENS在业内一直都很低调,属于那种稳打稳扎的项目,大家不会忘记它,但也不会对它特别兴奋。
但近一个星期以来,网上突然刮起了一阵域名风暴,两个网上组织“999Club”(999俱乐部)和“10KClub”(10K俱乐部)突然风靡起来。
这两个俱乐部是什么意思呢?
999Club是由持有3位纯数字域名(比如111.eth、392.eth、420.eth等)的爱好者自发形成的一个组织。从000.eth到999.eth,这样的域名总共有1000个,其中最大的就是999,所以这个俱乐部就被命名为999Club。
10KClub是指由持有4位纯数字域名(比如8051.eth、2296.eth等)的爱好者自发形成的一个组织。从0000.eth到9999.eth,这样的域名总共有10000个(10000通常在英语里简称10K),所以这个俱乐部就被命名为10KClub。
所以这两类域名加起来总共只有11000个,在数量上可以描述为“稀有”。
这两个组织形成后经常联合在一起举办各种网上活动和宣传,最主要的是宣传3位纯数字域名和4位纯数字域名的珍惜性。
此外由于一些著名的头像类项目比如无聊猿、加密朋克等都是10000个头像,所以10K俱乐部认为用数字ENS一方面可以代表自己持有的NFT,另一方面也是用ENS表达身份的一种方式。
这段时间,这两个俱乐部的会员们最喜欢在推特上问候和宣传的话语就是:你的号码是多少?我可不是问你的电话号码。
他们用这种隐含、新潮的方式推广3位和4位数字域名。
网上对这个风潮形成了极度反差的两类意见。在反对者中不乏NFT领域的一些大V。下面我节选了网上的一系列对话,其中A是反对这种风潮的典型,B是支持这种风潮的典型。
A:我始终看不出用数字做域名有什么用?
B:用数字做域名比用字母更好记并且更容易推广。
A;用一个有意义的单词作为域名不是更好记吗?
B:并不是所有的国家都习惯用字母,比如在中国,使用纯数字做互联网域名的例子就很多。
A:你们问“你的号码是多少?”有意义吗?我为什么要记那么多号码?在现实生活中,我即便打电话时都会给电话号码标上人名,打电话的时候直接点那个人的名字就好了。我几乎不用数字,更记不住那么多数字。
B:你在用是不是方便记忆来衡量它有没有价值?
A:如果想打造稀有性,我们可以有很多种叙事方法,为什么单单捧数字?
B:因为太巧了,NFT领域的头部项目几乎都和10000有关,都是10000个。这形成了一种潜移默化的文化,我们现在就用数字把这种文化彰显出来。另外我们可以有10000个加密朋克,还有10000个无聊猿、后来又有10000个Azuki。你看,10000个头像类项目在不断涌现,我没有朋克,可以有无聊猿,没有无聊猿还会有Azuki,所以我们还会有下一个10000的机会。但在ENS,10000以内的数字域名只有11000个。
A:花比普通域名贵不少的钱买一个3位、4位数字的ENS你真的觉得值得吗?这就是个标识而已。
B:别忘了,以前你哪怕花20美元买个小图片,你都不敢和别人说。但今天如果你花20万美元买个稀有的无聊猿,你会骄傲得不得了。你忘了你自己曾经的经历吗?
这段对话在我看来还是比较精彩的。
但是这两类域名到底会不会真的形成一种风潮,我认为还有很大很大的变数,其中最重要的还是要看这两个俱乐部的组织者们能不能把这种社区影响力扩大到线下,扩大到普通民众,并像无聊猿那样从普通民众进入到传统精英圈,形成一种自下而上的共识。
如果能做到这样,这个风潮或许能持续,但如果不行,这股风潮恐怕也是昙花一现。
❸ linux 重启网卡 Device eth0 has different MAC address than expected, ignoring 如何解决
这个提示是指网口的mac地址已经变化,但是设备名称没有变化,导致设备名称和mac地址无法匹配,linux无法挂载该网口。换种说法就是该网口的配置文件里的mac地址和该网口实际的mac地址不符合。
这种情况一般发生在虚拟机迁移,或者更换网卡的时候,解决方案如下:
1:记录网口的实际地址,执行ifconfig eth0
其中HWaddr后面就是网口实际的mac地址
2:更改配置文件中的mac地址
打开eth0的网口配置文件: /etc/sysconfig/network-scripts/ifcfg-eth0
(该地址可能随着不同的操作系统有所不同)
在文件中寻找 HWADDR= 这行,如果没有就新加一行。把这行后面的值改成第一步看到的mac地址值,例如 HWADDR="00:0C:29:2D:2D:CF",然后保存退出
3:通过service network restart重启网卡,或者通过ifup eth0启动网卡(该命令会检查配置文件)
❹ linux 双网卡只能识别一个
怎么感觉我答过这个问题。
你没写配置文件吧,在/etc/sysconfig/network-scripts/里面,
要自己写个配置文件,ifcfg-eth1具体怎么配置,可参照ifcfg-eth0
或者网上查资料!
娃,你分好多啊!