快捷搜索:

UNIX 网络分析

开始之前

本教程面向有以下需求的 Unix 系统治理员:他们必要找到一些措施来发明和判断有关其收集布局和设置设置设备摆设摆设的信息,包括各个机械上容许的办事和系统有哪些。要从本教程得到最大年夜的收益,您该当具有 UNIX 操作系统的基础常识,以及基础懂得收集和 Internet 协议 (IP) 的运作要领。

关于本教程

在造访一个 UNIX 系统时,以致是懂得现有系统时,有关系统若何运行的一个关键部分便是收集设置设置设备摆设摆设。您必要清楚并懂得收集的许多方面,以便精确地识别问题并防患于未然。经由过程应用一些基础的对象和敕令,可以确定单个系统的大年夜量设置设置设备摆设摆设,理解了这些常识后,就可以很好地确定收集另外部分的设置设置设备摆设摆设。经由过程一些额外的对象,可以将常识扩展到收集中的更多的系统和办事。

在本教程中,您将在 UNIX 情况中应用一些基础的对象,掘客有关系统设置设置设备摆设摆设的信息。经由过程理解这些对象并应用它们得到的信息,您将能够更好地舆解系统收集设置设置设备摆设摆设和它的事情道理。您还将钻研可以涵盖更广泛收集的对象和办理规划,得到有关收集的更具体的信息、其潜在的安然问题,这有助于找出和诊断问题的关键信息点。

理解主机的收集设置设置设备摆设摆设

要更好地舆解收集,第一步是理解当前应用的机械的收集设置设置设备摆设摆设。这将为您供给许多参考基准,比如当前主机的 IP 地址、DNS 设置设置设备摆设摆设以及可以连接并与之通信的其他机械。

查找设置设置设备摆设摆设信息

确定正在应用的机械确当前设置设置设备摆设摆设可以使您得到对情况的基础懂得。您的第一个义务是确定当前机械的 IP 地址和收集掩码(mask)。经由过程这两个值,可以确定机械的地址,以及可以与之直接在收集上建立连接的其他机械(比如,不必要应用路由器)。

在确定 IP 地址之前,经由过程应用 hostname 敕令得到系统的主机名(拜见清单 1)。

清单 1. 得到主机名

$ hostname

sulaco

在选择 -a 选项时,ifconfig 敕令将显示所有已设置设置设备摆设摆设的收集设备确当前设置设置设备摆设摆设信息。例如,清单 2 展示了 ifconfig 敕令在一台 Solaris 机械上的输出。

清单 2. ipconfig 在 Solaris 上的输出

$ ifconfig -a

lo0: flags=2001000849 mtu 8232 index 1

inet 127.0.0.1 netmask ff000000

pcn0: flags=201004843

mtu 1500 index 2

inet 192.168.1.25 netmask fffffc00 broadcast 192.168.3.255

lo0: flags=2002000849 mtu 8252 index 1

inet6 ::1/128

pcn0: flags=202004841 mtu 1500 index 2

inet6 fe80::20c:29ff:fe7f:dc5/10

从这个输出中可以看到,有一个回路(loopback)设备 lo0,本地主机的地址为 127.0.0.1。还可以看到,这个设备还有一个等效的 IPv6 地址。

pcn0 设备的设置设置设备摆设摆设如下:收集地址为 192.168.1.25,收集掩码为 fffffc00,相称于 255.255.252.0。可以看到,在这里地址是应用 DHCP 设置的(从 DHCP 标记列表)。

收集掩码异常紧张,只要知道了收集掩码,就可以知道所在收集的大年夜小(经由过程注册的 IP 地址)。在本例中,255.255.252.0 等同于 4 类 C 地址,由于 256(最大年夜主机数)减去 252 (应用了掩码的主机数)即是 4。

经由过程同时应用掩码和设置设置设备摆设摆设后的 IP 地址,可以推想出本地收集中 IP 地址的范围。因为 IP 区块平日按照完备的组进行划分,并且是按顺序进行的,是以可以推想出全部收集中散播的 IP 地址的范围为从 192.168.0.0 到 192.168.3.255。您可以得出这一结论,由于应用 4 类 C 地址,您平日会将全部范围(192.168.0.0-192.168.255.255)划分为相等的区块 —— 此中地址前缀 192.168.1.x 必须位于 4 个地址中的第一个区块中。

不合的操作系统应用不合的要领输出信息(和细节)。清单 3 展示了一个 Linux® 系统的输出。

清单 3. Linux 系统的输出

eth0   Link encap:Ethernet HWaddr 00:1d:60:1b:9a:2d

inet addr:192.168.0.2 Bcast:192.168.3.255 Mask:255.255.252.0

inet6 addr: fe80::21d:60ff:fe1b:9a2d/64 Scope:Link

UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1

RX packets:2371085881 errors:36 dropped:0 overruns:0 frame:36

TX packets:2861233776 errors:0 dropped:0 overruns:0 carrIEr:0

collisions:0 txqueuelen:1000

RX bytes:913269364222 (850.5 GiB) TX bytes:3093820025338 (2.8 TiB)

Interrupt:23 Base address:0x4000

lo    Link encap:Local Loopback

inet addr:127.0.0.1 Mask:255.0.0.0

inet6 addr: ::1/128 Scope:Host

UP LOOPBACK RUNNING MTU:16436 Metric:1

RX packets:279755697 errors:0 dropped:0 overruns:0 frame:0

TX packets:279755697 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:388038389807 (361.3 GiB) TX bytes:388038389807 (361.3 GiB)

清单 4 展示了 Mac OS X™ 系统的输出。

清单 4. Mac OS X 系统的输出

lo0: flags=8049 mtu 16384

inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1

inet 127.0.0.1 netmask 0xff000000

inet6 ::1 prefixlen 128

gif0: flags=8010

mtu 1280

stf0: flags=0 mtu 1500

inet 192.168.0.101 netmask 0xfffffc00 broadcast 192.168.3.255

ether 00:16:cb:a0:3b:cb

media: autoselect (1000baseT ) status: active

supported media: autoselect 10baseT/UTP  10baseT/UTP

10baseT/UTP  10baseT/UTP

100baseTX  100baseTX

100baseTX  100baseTX

1000baseT  1000baseT

1000baseT  none

fw0: flags=8822

mtu 2030

lladdr 00:17:f2:ff:fe:7b:84:d6

media: autoselect  status: inactive

supported media: autoselect

en1: flags=8822

mtu 1500

ether 00:17:f2:9b:3d:38

media: autoselect ()

supported media: autoselect

en5: flags=8963 mtu 1500

inet6 fe80::21c:42ff:fe00:8%en5 prefixlen 64 scopeid 0x7

inet 10.211.55.2 netmask 0xffffff00 broadcast 10.211.55.255

ether 00:1c:42:00:00:08

media: autoselect status: active

supported media: autoselect

en6: flags=8963 mtu 1500

inet6 fe80::21c:42ff:fe00:9%en6 prefixlen 64 scopeid 0x8

inet 10.37.129.2 netmask 0xffffff00 broadcast 10.37.129.255

ether 00:1c:42:00:00:09

media: autoselect status: active

supported media: autoselect

在任何环境下,平日都可以找到所连接的收集设备的 Internet 地址和掩码。显然,假如拥有多个收集设备,那么可以在输出中得到有关每个设备的信息,并且有可能从一个机械中造访各类不合的收集和系统。

查找名称解析办事

下一步是确定当前机械的设置设置设备摆设摆设,这个设置设置设备摆设摆设该当与名称办事系统的设置设置设备摆设摆设关联起来,名称办事将在您造访另一台机械上的办事时将系统的名称和域名转换为 IP 地址。

大年夜多半机械上的这一设置设置设备摆设摆设是经由过程 /etc/nsswitch.conf 文件实现的,该文件包孕了各类命名办事(主机、用户等等)以及应用各类办事(DNS、NIS 或本地文件)进行解析的顺序。可以拜见清单 5。

清单 5. 解析名称办事系统

passwd:   files

group:   files

hosts:   files dns

ipnodes:  files dns

networks:  files

protocols: files

rpc:    files

ethers:   files

netmasks:  files

bootparams: files

publickey: files

netgroup:  files

automount: files

aliases:  files

services:  files

printers:  user files

auth_attr: files

prof_attr: files

project:  files

tnrhtp:   files

tnrhdb:   files

例如,在清单 5 中,首先解析主机名信息:在系统中查找本地文件(比如 /etc/hosts),然后再查找域名系统(DNS)。

假如 DNS 已经进行了设置设置设备摆设摆设,那么 /etc/resolv.conf 文件将奉告您应用哪些机械来将名称转换为 IP 地址。清单 6 展示了一个样例文件。

清单 6. 哪些机械将名称转换为 IP 地址

domain example.pri

nameserver 192.168.0.2

nameserver 192.168.0.3

$ ping www.example.com

PING www.example.com (67.205.21.169) 56(84) bytes of data.

64 bytes from mcslp.com (67.205.21.169): icmp_seq=1 ttl=44 time=193 ms

64 bytes from mcslp.com (67.205.21.169): icmp_seq=2 ttl=44 time=194 ms

64 bytes from mcslp.com (67.205.21.169): icmp_seq=3 ttl=44 time=197 ms

64 bytes from mcslp.com (67.205.21.169): icmp_seq=4 ttl=44 time=194 ms

^C

--- www.example.com ping statistics ---

4 packets transmitted, 4 received, 0% packet loss, time 3039ms

rtt min/avg/max/mdev = 193.737/195.120/197.123/1.353 ms

将这个连接到 Internet 办事所需的光阴(193 毫秒)与连接本地主机所需光阴(0.23 毫秒)进行对照。

ping 对象还可以快速判断您是否能够到达您盼望连接到的远程主机。在实际上不存在的主机上运行 ping 将返回一个异常详细的差错(拜见清单 15)。

清单 15. 在实际上不存在的主机上运行 ping

$ ping notinhere

PING notinhere (192.168.0.110) 56(84) bytes of data.

>From bear.mcslp.pri (192.168.0.2) icmp_seq=1 Destination Host Unreachable

>From bear.mcslp.pri (192.168.0.2) icmp_seq=2 Destination Host Unreachable

>From bear.mcslp.pri (192.168.0.2) icmp_seq=3 Destination Host Unreachable

^C

--- notinhere ping statistics ---

5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 4039ms

假如盼望直接对机械查询信息,那么这些信息很有用。可以应用 dig 和 nslookup 等对象提取有关名称办事和名称解析以及 IP 地址的信息。

反省路由

收集以外的主机(即与当前 IP 地址比拟,越过了收集掩码的范围之外)被发送到一个路由器,从路由器转发到另一台机械。路由器可以在任何一级收集上应用,包括部门之间、不合物理位置,以及 Internet 之类的公共和外部站点。

netstat 敕令将奉告您,当您的机械盼望与 “本地 收集以外的机械通信时,将与那些机械或路由器建立联系。例如,下面的清单 7 来自于一台 Solaris 机械。

清单 7. netstat 敕令

$ netstat -r

Routing Table: IPv4

Destination      Gateway      Flags Ref   Use   Interface

-------------------- -------------------- ----- ----- ---------- ---------

default       voyager.example.pri UG    1    139 pcn0

192.168.0.0     solaris2.example.pri U     1    447 pcn0

solaris2       solaris2       UH    1     35 lo0

Routing Table: IPv6

Destination/Mask      Gateway          Flags Ref  Use  If

--------------------------- --------------------------- ----- --- ------- -----

fe80::/10          fe80::20c:29ff:fe7f:dc5   U    1    0 pcn0

solaris2          solaris2          UH   1    0 lo0

ping 对象的不合实现应用不合的事情要领。在 Linux 和 Mac OS X 上,此对象在默认环境下将赓续发送包并等待相应,直到应用 Control-C 强制利用法度榜样终止。

在 Solaris™、AIX® 和其他一些 Unix 版本中,ping 对象仅仅表示远程主机是否发出相应(拜见清单 12),而没有其他进一步的动作。

清单 12. 在 UNIX 系统上仅履行 Ping 操作

$ ping bear

bear is alive

要履行更长的测试,应用 -s 选项,如清单 13 所示。

清单 13. 应用 -s 选项履行 ping

$ ping -s bear

PING bear: 56 data bytes

64 bytes from bear.mcslp.pri (192.168.0.2): icmp_seq=0. time=0.288 ms

64 bytes from bear.mcslp.pri (192.168.0.2): icmp_seq=1. time=0.247 ms

64 bytes from bear.mcslp.pri (192.168.0.2): icmp_seq=2. time=0.208 ms

64 bytes from bear.mcslp.pri (192.168.0.2): icmp_seq=3. time=0.230 ms

^C

----bear PING Statistics----

4 packets transmitted, 4 packets received, 0% packet loss

round-trip (ms) min/avg/max/stddev = 0.208/0.243/0.288/0.034

每一行的 time 字段表示每个包的速率和延迟(发出相应之前的延迟,平日表示活动的级别)。当竣事输出时,将得到所发送和接管的包的数量的汇总和光阴统计数据。

ping 包所需通报的间隔越远,从远程主机得到的相应光阴越长。例如,假如考试测验 ping Internet 中的一个公共办事器,那么获取相应包的光阴将会显明增添(拜见清单 14)。

清单 14. ping Internet 中的一个公共办事器

假如狐疑有未知的或不盼望的用户或谋略机连接到这台机械上,那么这些信息十分有用。

要查找关于其他机械的信息,必要查看收集上的其他谋略机。

查找有关其他主机的信息

得到了有关您的机械的基础信息后,可以进一步查看收集中的其他机械,从而判断它们的可用性和供给的办事。经由过程应用精确的对象,以致可以确定这些机械正在运行的操作系统和它们可能共享的办事。

反省主机

反省远程机械的最简单也是最显着的对象便是应用 ping 对象查看某个特定主机是否启动并且可用。ping 对象履行一些异常简单的操作。它将一个数据包发送给远程主机来哀求一个相应。当接管到相应后,ping 对象将谋略光阴差异,发送并接管包所用的光阴可以注解某台机械与 ping 对象当前位置的间隔的远近。

例如,假如 ping 您的收集中的某台机械,那么很可能很快就会获得 ping 包的相应(拜见清单 11)。

清单 11. ping 自己的收集中的机械

$ ping bear

PING bear.mcslp.pri (192.168.0.2): 56 data bytes

64 bytes from 192.168.0.2: icmp_seq=0 ttl=64 time=0.154 ms

64 bytes from 192.168.0.2: icmp_seq=1 ttl=64 time=0.162 ms

64 bytes from 192.168.0.2: icmp_seq=2 ttl=64 time=0.149 ms

64 bytes from 192.168.0.2: icmp_seq=3 ttl=64 time=0.161 ms

64 bytes from 192.168.0.2: icmp_seq=4 ttl=64 time=0.162 ms

64 bytes from 192.168.0.2: icmp_seq=5 ttl=64 time=0.161 ms

^C

--- bear.mcslp.pri ping statistics ---

6 packets transmitted, 6 packets received, 0% packet loss

round-trip min/avg/max/stddev = 0.149/0.158/0.162/0.005 ms

可以从这个输出中看到,机械异常繁忙。第三列显示了应用冒号分隔的主机名和端口,分手针对每个打开的连接或侦听连接。假如 TCP 或 UDP 办事号与某个已知的端口号匹配(如 /etc/services 文件中定义的那样),那么办事的名称将被显示在输出中。对付主机,将显示主机名、备用的 IP 地址或 ‘*’ 符号。星号表示办事和端口是打开的并且正在侦听所有 IP 地址。

例如,可以从输出中看到,机械被设置设置设备摆设摆设为支持 NFS,并且具有打开的(已经建立的)连接,如清单 9 所示。

清单 9. 机械被设置设置设备摆设摆设为支持 NFS

$ netstat -a|grep nfs

tcp    0   0 *:nfs        *:*           LISTEN

tcp    1   0 bear.example.pri:nfs sulaco.example.p:51900 CLOSE_WAIT

tcp    0   0 bear.example.pri:nfs narcissus.example.p:62968 ESTABLISHED

tcp    1   0 bear.example.pri:nfs sulaco.example.p:59172 CLOSE_WAIT

tcp    0   0 bear.example.pri:nfs sulaco.example.p:65320 ESTABLISHED

tcp    1   0 bear.example.pri:nfs sulaco.example.p:53877 CLOSE_WAIT

udp    0   0 *:nfs          *:*

也可以应用这个输出查看哪些机械今朝正在和这台机械通信。例如,可以提取一个与这台机械建立连接的机械列表,措施是查看第 5 列,进行排序并从列表中移除重复的内容(拜见清单 10)。

清单 10. 提取一个已建立连接的机械列表

$ netstat -a|egrep 'tcp|udp'|grep ESTABLISHED|awk '{ print $5; }'|cut -d: -f1|sort|uniq

localhost

narcissus.mcslp.p

nautilus.wireless

polarbear.wireles

Solaris2.vmbear.mcs

sulaco.mcslp.pri

您可能还会对下面的文章感兴趣: