lanscan
lanadmin
linkloop
arp
ping
netstat -i
netstat -a
netstat -r
hostname
nslookup
1.网络查错工具
在UNIX中有如下的工具可以用来进行网络查错:
arp(BSD)
ping(public domain)
netstat (BSD)
nslookup(BSD)
traceroute
使用这些工具并不一定能清楚和直接地发现网络连接上的问题。这些工具经常只能给你一些问题的提示。你可能不得不使用几种工具来查询一个问题到底出在哪里;因此,你必须对网络概念有深入的了解并且能够使用每一个网络工具。
2.潜在的网络连接问题
LAN终结器没有连接正确。
许多时候,用户都没有正确的中止他们的LAN电缆。在你的网络中必须要有两个终结器,一个在电缆的开始,一个在电缆的末端。
网卡没有启动
如果LAN卡有问题,ifconfig命令会失败。如果你使用一个编辑器,如vi,修改配置文件的时候,不注意就会产生语法错误。
网卡的IP地址错误
当配置/etc/rc.config.d/netconf文件中的IP_ADDRESS的时候,可能会出错。
子网掩码不正确
有的人在配置/etc/rc.config.d/netconf文件中的SUMNET_MASK的时候也可能出错。
相同的IP地址已经被其它的系统使用
有的时候,有的人在将他的系统连到网络的时候没有向网络管理员申请一个唯一的IP地址。
路由表的配置不正确
有的人在配置/etc/rc.config.d/netconf文件中的ROUTE参数的时候可能会出错。
路由器down掉
有的时候,一个系统必须被关闭,如果你要关闭一个路由器,你应该至少提前两天声明。
LAN电缆坏掉
有一种特殊的装置来检查一个电缆是否断了。
LAN的长度太长,超出限制。
如果同轴电缆的安装是在很久之前,很有可能电缆的长度过长。当一个新的系统加入到这个网段的时候,如果电缆的长度超出了长度限制,就会发生问题。电缆检查器可以用来测量电缆的长度。
/etc/hosts文件的配置不正确
如果你的系统不能将一个主机名解析为一个正确的IP地址,很可能是你的hosts文件有问题。如:在你的/etc/hosts文件中有两个IP地址(例如一个网关),gethostbyname()只会返回第一个IP地址,而这一个地址可能不是你想要的哪个地址。你应该经常检查你的hosts文件来保证正确性。
3.arp命令
ARP就是地址解析协议。
arp命令被用来修改ARP表中的记录。
修改ARP表的选项需要root权限。
例子:
# /usr/sbin/arp -a
frank (192.6.30.1) at 0:60:b0:7:4c:4d ether
beverly (192.6.30.5) at 0:60:b0:7:c1:79 ehter
jeff (192.6.30.4) at 0:60:b0:7:e1:12 ether
bill (192.6.30.4) at 0:60:b0:7:7e:69 ether
larry (192.6.30.3) at 0:60:b0:7:e1:a2 ether
/usr/sbin/arp命令可以用来显示或者修改ARP核心表中的的记录,这些记录是ARP协议使用的和INTERNET(的三层)到Ethernet(第二层)的相关的地址,其中一些东西只能是root用户才有权修改。
语法:
arp hostname 显示当前ARP记录中对应hostname的记录
arp -a [system] [core] 从core文件中读取所有的当前的ARP记录。
arp -d hostname 如果指定的hostname的ARP记录存在,删除这条记录,要求有超级用户的权限
arp -s [parameter] 为一个主机中的新的以太网卡的硬件地址创建一个ARP记录。要求要有超级用 户的权限
arp -f filename 读取文件filename,在ARP表中设置多条记录。文件中的条目被用来形成主机 名 地址 [temp] [pub] [trail]。要求有超级用户的权限。
如果用一个新的网卡取代坏的网卡,新的网卡有新的链路层的地址。而在其它的远程主机的ARP表中仍旧是老网卡的链路层地址,这样远程主机就不能和新的网卡通讯。你必须删除远程主机上的ARP表中错误的信息。
4.ping命令
ping命令测试与一个远程系统的IP连接是否正常。
例子:
# ping bill
PING 192.6.30.2 64 byte packets
64 bytes from 192.6.30.2: icmp_seq=0. time=43. ms
64 bytes from 192.6.30.2: icmp_seq=1. time=223. ms
64 bytes from 192.6.30.2: icmp_seq=2. time=199. ms
64 bytes from 192.6.30.2: icmp_seq=3. time=170. ms
--------bill PING Statistics----------
5 packets transmitted, 4 packets received, 20% packet loss
round-trip (ms) min/avg/max = 43/158/233
ping命令工作在OSI模型的网络层(第三层)。任何用户都可以执行PING。
当你遇到一个网络问题,最好的是先执行一下ping命令。如果ping命令能够成功地传输数据包,你就可以排除第三层以下的所有的问题(硬件的问题如电缆损坏或者收发器损坏),这样你就可以在更高的层进行检查。如果ping失败,你应该使用lanadmin或者lanscan命令来检查你的lan硬件是否有问题。
使用ping:
当设置新的节点的时候,执行一次初步的连接检查。
当连接到一个指定的节点有问题的时候。
语法:
ping hostname [packet_size] [-n [ num_packets]]
其中
hostname IP地址或者正式的主机名
packet_size 默认的情况下,数据包的大小为64byte。数据包最小可以为8byte,最大可以 为4096byte。如果packet_size小于16byte,就没有足够的空间存放定时信息 因此就不能被显示数据包往返的时间。
num_packets 在ping结束之前传输的数据包的数量。默认情况,ping会一直发送数据包直 到用户按下ctrl+c。如果你没有指定包的大小,需要使用-n num_packets。
注意:如果对本地主机环路(loopback)使用ping命令,你测试的仅仅是网络层(第三层)。即使LAN硬件已经down掉,这个测试也可能成功。
5. netstat -i命令
netstat -i 命令显示网卡的状态。
netstat -in 命令使用IP代替主机名。
在命令的输出中发现有*号表明这个网卡已经down掉。
例子:
# netstat -i
Name Mtu Network Address Ipkts Opkts
lo0 4136 127.0.0.0 localhost 838 838
lan0 1500 192.6.30.0bill 160952 111715
netstat命令报告关于网络负载和网卡的状态的网络和协议的统计信息,。任何用户都可以执行netstat命令。
netstat命令有许多的选项。使用这些选项可以得到许多其它命令不能得到的信息。在这一节中,我们只讨论几个选项,这些选择显示的信息都是在OSI模型的1,2和3层。
-n 用来和其他的选项一起使用,这个选项使用IP地址来代替使用主机名。
-i 显示网卡的状态,包括主网卡和逻辑网卡。
-r 列出本地路由表中的所有的路由。当和-v选项一起使用的时候,netstat也会显示路由中的网络 掩码。当和-s选项一起使用的时候,netstat会显示路由的统计信息。
netstat -i 命令显示所有的关于网卡的状态和数据包传输过程中累积的统计信息。这些统计信息是在网卡启动的时候就开始统计的。
Name 网卡的名字
lan0是你的第一个IEEE 802.3/Ethernet网卡
lan1是你的第二块网卡
lo0指的是你的本地loopback界面(IP地址127.0.0.1)。
nio和ni1是两个内置的RS-232界面。条目可能是网卡。你可以使用使用串行通讯协(SLIP)的时候配置它们
*号表明这个个网卡没有被激活。
Mtu 最大的传输单元,指明一个帧的最大可能为多大。在IEEE 802.3中,是1500BYTE。
Network显示这个网卡所属的网络的IP地址或者网络名。如果配置了/etc/networks文件,这里就 是一个名字。none就是说明这个网卡没有启动
Address 网卡的IP地址或者名称。如果如果通过hosts文件,NIS,DNS解析主机名,这里就是名称, none指明这块网卡没有启动。
Ipkts 接收到的的数据包的数量
Opkts 输出的数据包的数量
想要检查数据包的数量,可以使用netstat interval选项。这样每隔interval秒,就会报告通过这个网卡传输的数据包的数量。第一行和每24小时后的那行显示累积的统计信息。上例中就显示了发送和接收到的包的数量,错误包的数量,和发生冲突包的数量。
6. netstat -r命令
netstat -r 命令显示在路由表中定义的所有的路由信息。
netstat -rn 使用IP地址来代替主机名。
例子:
# netstat -rn
Routing tables
Dest/Netmask Gateway Flags Refs Use Interface Pmtu
127.1.1.1 127.1.1.1 UH 0 414 lo0 4136
192.6.30.2 192.6.30.2UH 0 523 lan0 4136
192.6.30.0 192.6.30.2U 2 0 lan0 1500
127.0.0.0 127.0.0.1 U 0 0 lo0 4136
default 192.6.30.1UG 0 0 lan0 1500
netstat -r 显示路由表中的信息。
Flags字段可以包括U,G,H等标记。
U 路由器已经启动并且正在运行
G 路由器是个网卡(意思是一远程路由器)
H 目标是一个主机,不是一个网络。
Refs字段给出了当前处于活动状态的路由的数量。
Use 字段是网卡从上次启动到现在的,使用这个路由发送的数据包的数量。
Pmtu是最大的传输单元(最大的帧的大小)。
每次执行ifconfig命令就会在这个路由表中增加一个记录。如果你只有一个网卡,会显示两条记录:逻辑本地回路(loopback)伪网卡和你的唯一的网卡。
如果你在/etc/rc.config.d/netconf文件中配置了另外的路由,每次执行route命令会在路由表中增加一条新的记录。
netstat -rs 显示路由的统计信息。
$ netstat -rs
routing
0 bad routing redirects
0 dynamically created routes
0 new gateways due to redirects
0 destinations found unreachable
15 uses of a wild card route
1 route marked doubtful
4 routes cleared of being doubtful
0 redirects deleted
仔细观察有bad,doubtful ,deleted等记录,如果数值很大,就表示有路由方面的问题存在。
7.nslookup命令
nslookup 命令将主机名解析为IP地址。
nslookup命令在检查/etc/hosts文件中的错误的时候很有用。
nslookup命令有在OSI模式的不同的层上操作的能力。
例子:
# nslookup mickie
Using /etc/hosts on : bill
name: mickie
Address: 192.6.30.3
nslookup命令检查本地系统如何将主机名解析为IP地址:
$ nslookup
Default Name Serve: chris.hp.com
Address: 192.6.21.2
> ctrl + d
$ nslookup darren
Default Name Server: chris.hp.com
Address: 192.6.21.2
Name: darren.hp.com
Address: 192.6.21.1
其它的一些有用的nslookup内部命令有:
> host server 使用名称服务器查询host的信息
>ls -d domain 列出所有的domain的信息(可能会很长)
>ls -d domain > file 列出所有的domain的信息并且重定向到文件
>set debug 将调试模式打开
>set all 打印出当前的已经设置的选项
>policy 打印出在IP地址查询的顺序中过程执行的顺序。
文章来源于领测软件测试网 https://www.ltesting.net/