8个Unix网络命令以及它们告诉你的信息

如果您在研究Unix的网络方面感到兴奋,那么您会发现有许多命令可以提供您想要的所有见解。

我永远不会忘记我的第一次ping。从那以后,在Unix系统上工作就再也不一样了。在命令行上工作总是令人兴奋的,但是了解Unix系统如何协同工作以及如何进行基本的网络故障排除将工作提升到了一个新的高度。让我们运行一下Unix系统上最有用的网络命令,并可能建议一些您可能从未尝试过的选项。

ifconfig

最基本的网络命令之一是ifconfig.它将告诉您有关网络接口的信息、它们所处的状态、您分配的IP地址,甚至提供自系统上次引导以来穿过接口的数据包的一些计数。现在,你可以同时看到ipv4和ipv6地址。

bond0 Link encap:Ethernet HWaddr 78:2B:CB:44:BF:DA inet addr:10.20.30.40 Bcast:10.20.30.255 Mask:255.255.254.0 inet6 addr:fe80::7a2c:deac:fe22:bbda/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets: 9577499349 errors:0 dropped:17641 overruns:0 frame:0 TX packets:946779445 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:106377372276 (99.0 GiB) TX bytes:1399270021829 (1.2 TiB)

您可能有一个“绑定”接口(如上面所示),在这种情况下,多个物理接口被组合在一起以提供更多的吞吐量。

注意RX(接收)和TX(发送)包计数以及相同的以字节表示的基本统计。这些数字可能看起来很大,但这个系统运行了大约一年。的正常运行时间命令将向您显示这一点,并显示平均负载,表明该系统工作有多困难以跟上负载。在这种情况下,系统不会流汗。0.10一分钟的负载基本上告诉你,每10次系统检查,有一个进程必须等待访问CPU。0.01的15分钟数字告诉你,我们看到的东西只在100次中等待一次。

$ uptime 09:56:19 up 325天,18:16,1个用户,平均负载:0.10,0.06,0.01

Ping是最基本的网络故障排除命令之一。它可能会告诉你,你可以达到远程系统,但你不能假设系统如果你没有得到一个响应,尤其是如果它属于其他公司作为ping命令,通常,解说icmp协议的所有家族成员可能阻塞沿途某处。如果您得到了响应,那么您就知道正在ping的系统已经启动,但是您也知道您的网络连接良好。我经常ping美国其他地方的一个系统(多年前我就有一个账户),以测试我的网络连接。如果我能从沿海几个州的系统中得到响应,那么我肯定做得不错。如果我有问题,那么是时候做一些故障排除了。

ping命令通常有两种方式。它连续运行4次,然后告诉你有多少请求通过了,或者它运行到你输入^c停止它,然后给你统计数据。您还可以为该命令提供一个-c选项,以指定希望请求多少次。如果我试图验证我希望在某个特定子网中找到的系统确实是启动的,那么我通常不希望向每个子网发送超过一个ping。花的时间太长了。发送一个ping每个系统在For sys in ' cat syslist ';- 1 $sys;完成或者,更好的是,也许For sys in ' cat syslist ';echo -n "$sys: ";1 $sys | grep loss;完成

traceroute

traceroute命令将尝试提供连接到远程系统时跨越的所有路由器的列表。输出还提供了关于每段路径所花费的时间的信息,从而让您对连接的质量有了一些概念。

美元的traceroute费密子traceroute费米子(10.10.10.10),30啤酒花马克斯,40字节数据包1 coresys(10.10.10.2) 0.965 1.010 1.006毫秒女士2 rtr2女士(10.10.8.10)0.613 0.627 0.642毫秒女士3 10.210.1.14女士(10.20.1.11)78.226 77.779 77.734毫秒女士4费密子女士(10.1.2.3)77.257毫秒!女士X 81.914 X 73.626女士!

如果traceroute到达aa点,在那里它不能提供进一步的信息,您将开始看到星号,在您以前看到系统名称和时间。

netstat

netstat命令可以告诉您正在监听的本地系统和端口(即服务)上正在进行的连接,指示服务正在等待请求通过。netstat本身提供了大量的信息。有了-a选项,它会给你更多。

要查看侦听端口(即服务),您可能必须这样做:

$ netstat -a | grep LISTEN | grep -v LISTENING tcp 0 0 localhost。localdomain:32000 *:* LISTEN tcp 00 localhost。locald:bootserver *:* LISTEN tcp 00 *:cbt *:* LISTEN tcp 00 *:38821 *:* LISTEN tcp 00 *:8009 *:* LISTEN

一些有用的选项包括-n(不转换IP地址)。当您使用此选项时,输出将显示IP地址和端口号,而不是系统和服务名称。

netstat美元——|更积极的网络连接(服务器)原型Recv-Q Send-Q本地地址外国地址状态tcp 0 0 127.0.0.1:32000 0.0.0.0: *听tcp 0 0 127.0.0.1:2016 0.0.0.0: *听tcp 0 0 0.0.0.0:7777 0.0.0.0: *听tcp 0 0 0.0.0.0:38821 0.0.0.0: *听

netstat -我命令显示每个活动网络接口的接口统计信息。

netstat -美元内核接口表Iface MTU遇到RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg bond0 1500 957543349 17641 0 957543349 0 0 0 BMmRU eth0 1500 957543349 17641 0 957543349 0 0 0 BMsRU eth1 1500 0 0 0 0 0 0 0 0 0 BMsU lo 16436 0 945046526 0 0 0 945046526 0 0 0 LRU

网路资讯查询

nslookup命令将为您执行DNS查询。假设您正在使用的系统有一个合适的/etc/resolv.conf,让它知道到哪里去问这类问题,它可以帮助您找到特定系统的IP地址,通常还可以找到特定IP地址对应的系统名称。我发现,公司在设置反向查找(PTR)记录(将IP地址与主机名绑定在一起)方面往往很松懈,但它们非常有用。当您监视数百甚至数千台服务器时,您偶尔会问自己“10.94.1.7是什么系统?”这样的问题,并且有一个简单的方法来获得答案将非常有帮助。

域名查询服务

你可以使用whois命令找到更多关于域的信息,下面的输出被截断。我在找我当地加油站的麻烦。看看我能查到什么关于瓦莱罗的信息。

$ whois valero.com[查询whois.verisign-grs.com][重定向到whois.networksolutions.com][查询whois.networksolutions.com] [whois.networksolutions.com]域名:valero.com注册域名:注册域名whois服务器:whois.networksolutions.com注册域名:http://networksolutions.com更新日期:2012-02-06 t00:00:00 00z创建日期:1996-02-21 t00:00:00 00z注册截止日期:2012-02-22 t00:00:00 00z注册商:NETWORK SOLUTIONS, LLC.注册商IANA ID: 2注册商滥用联系邮箱:abuse@web.com注册商滥用联系电话:+1.8003337680转售商:域名状态:clienttransfer被禁止注册商注册人ID:注册人名称:Valero能源注册人组织机构:注册人街道:One Valero路注册人城市:圣安东尼奥注册人州/省:TX注册人邮政编码:78249-1616…

主机名

一般来说,您知道登录的系统的名称。毕竟,您只是登录到它,而且服务器名称通常设置为系统的命令行提示符。但是,您可能同时登录多个系统,或者您可能想了解更多的信息。下面是一些您可能不会使用的主机名命令选项。

$ hostname -i 10.20.30.40

-i选项提供了获取系统IP地址的简单方法,而不必将其与ifconfig输出分离。

tcpdump

tcpdump命令可以在网络数据包到达服务器时打印出它们的报头,也可以与各种过滤器一起使用,以选择您想要看到的数据包。您也可以保存数据包以便以后分析。在下一篇文章中,我将介绍一些关于tcpdump的有趣用法。

加入网络世界社区有个足球雷竞技app脸谱网LinkedIn对自己最关心的话题发表评论。

版权所有©2014 IDG ComRaybet2munications, Inc.

SD-WAN买家指南:向供应商(和您自己)提出的关键问题