盘点如何在Linux上检查网络连接状况命令方法

2018-02-24 10:07:14 1898浏览

在现如今,大多数开发编程语言都会有命令可以帮助到你,比如在Linux系统上看到网络状况,其中包括ip、ethtool、traceroute、tcptraceroute和tcpdump等。下面我们一起来看下一吧。

ifconfig和netstat命令当然非常有用,但还有很多其它命令能帮你查看Linux系统上的网络状况。本文探索了一些检查网络连接的非常简便的命令。



ip命令

ip命令显示了许多与你使用ifconfig命令时的一样信息。其中一些信息以不同的格式呈现,比如显示192.168.0.6/24,而不是inetaddr:192.168.0.6Bcast:192.168.0.255,尽管ifconfig更适合数据包计数,但ip命令有许多有用的选项。

首先,ipa命令可以列出所有网络接口的信息。

$ipa

1:lo:<LOOPBACK,UP,LOWER_UP>mtu65536qdiscnoqueuestateUNKNOWNgroupdefaultqlen1

link/loopback00:00:00:00:00:00brd00:00:00:00:00:00

inet127.0.0.1/8scopehostlo

valid_lftforeverpreferred_lftforever

inet6::1/128scopehost

valid_lftforeverpreferred_lftforever

2:eth0:<BROADCAST,MULTICAST,UP,LOWER_UP>mtu1500qdiscpfifo_faststateUPgroupdefaultqlen1000

link/ether00:1e:4f:c8:43:fcbrdff:ff:ff:ff:ff:ff

inet192.168.0.6/24brd192.168.0.255scopeglobaleth0

valid_lftforeverpreferred_lftforever

inet6fe80::21e:4fff:fec8:43fc/64scopelink

valid_lftforeverpreferred_lftforever

如果你只想看到简单的网络接口列表,你可以用grep限制它的输出。

$ipa|grepinet

inet127.0.0.1/8scopehostlo

inet6::1/128scopehost

inet192.168.0.6/24brd192.168.0.255scopeglobaleth0

inet6fe80::21e:4fff:fec8:43fc/64scopelink

使用如下面的命令,你可以看到你的默认路由:

$iprouteshow

defaultvia192.168.0.1deveth0

192.168.0.0/24deveth0protokernelscopelinksrc192.168.0.6

在这个输出中,你可以看到通过eth0的默认网关是192.168.0.1,并且本地网络是相当标准的192.168.0.0/24。

你也可以使用ip命令来启用和禁用网络接口。

$sudoiplinkseteth1up

$sudoiplinkseteth1down

ethtool命令

另一个检查网络非常有用的工具是ethtool。这个命令提供了网络接口上的许多描述性的数据。

$ethtooleth0

Settingsforeth0:

Supportedports:[TP]

Supportedlinkmodes:10baseT/Half10baseT/Full

100baseT/Half100baseT/Full

1000baseT/Full

Supportedpauseframeuse:No

Supportsauto-negotiation:Yes

Advertisedlinkmodes:10baseT/Half10baseT/Full

100baseT/Half100baseT/Full

1000baseT/Full

Advertisedpauseframeuse:No

Advertisedauto-negotiation:Yes

Speed:100Mb/s

Duplex:Full

Port:TwistedPair

PHYAD:1

Transceiver:internal

Auto-negotiation:on

MDI-X:on(auto)

Cannotgetwake-on-lansettings:Operationnotpermitted

Currentmessagelevel:0x00000007(7)

drvprobelink

Linkdetected:yes

你也可以使用ethtool命令来检查以太网驱动程序的设置。

$ethtool-ieth0

driver:e1000e

version:3.2.6-k

firmware-version:1.4-0

expansion-rom-version:

bus-info:0000:00:19.0

supports-statistics:yes

supports-test:yes

supports-eeprom-access:yes

supports-register-dump:yes

supports-priv-flags:no

自动协商的详细信息可以用这样的命令来显示:

$ethtool-aeth0

Pauseparametersforeth0:

Autonegotiate:on

RX:on

TX:on

traceroute命令

traceroute命令用于显示路由路径。它通过在一系列数据包中设置数据包头的TTL(生存时间)字段来捕获数据包所经过的路径,以及数据包从一跳到下一跳需要的时间。traceroute的输出有助于评估网络连接的健康状况,因为某些路由可能需要花费更长的时间才能到达最终的目的地。

$sudotracerouteworld.std.com

traceroutetoworld.std.com(192.74.137.5),30hopsmax,60bytepackets

1192.168.0.1(192.168.0.1)3.691ms3.678ms3.665ms

210.224.64.1(10.224.64.1)26.273ms27.354ms28.574ms

310.20.0.33(10.20.0.33)28.293ms30.625ms33.959ms

410.20.0.226(10.20.0.226)36.807ms37.868ms37.857ms

5204.111.0.132(204.111.0.132)38.256ms39.091ms40.429ms

6ash-b1-link.telia.net(80.239.161.69)41.612ms28.214ms29.573ms

7xe-1-3-1.er1.iad10.us.zip.zayo.com(64.125.13.157)30.429ms27.915ms29.065ms

8ae6.cr1.dca2.us.zip.zayo.com(64.125.20.117)31.353ms32.413ms33.821ms

9ae27.cs1.dca2.us.eth.zayo.com(64.125.30.246)43.474ms44.519ms46.037ms

10ae4.cs1.lga5.us.eth.zayo.com(64.125.29.202)48.107ms48.960ms50.024ms

11ae8.mpr3.bos2.us.zip.zayo.com(64.125.30.139)51.626ms51.200ms39.283ms

1264.124.51.229.t495-rtr.towerstream.com(64.124.51.229)40.233ms41.295ms39.651ms

1369.38.149.18(69.38.149.18)44.955ms46.210ms55.673ms

1464.119.137.154(64.119.137.154)56.076ms56.064ms56.052ms

15world.std.com(192.74.137.5)63.440ms63.886ms63.870ms

tcptraceroute命令

tcptraceroute命令与traceroute基本上是一样的,只是它能够绕过最常见的防火墙的过滤。正如该命令的手册页所述,tcptraceroute发送TCPSYN数据包而不是UDP或ICMPECHO数据包,所以其不易被阻塞。

tcpdump命令

tcpdump命令允许你捕获网络数据包来进一步分析。使用-D选项列出可用的网络接口。

$tcpdump-D

1.eth0[Up,Running]

2.any(Pseudo-devicethatcapturesonallinterfaces)[Up,Running]

3.lo[Up,Running,Loopback]

4.nflog(Linuxnetfilterlog(NFLOG)interface)

5.nfqueue(Linuxnetfilterqueue(NFQUEUE)interface)

6.usbmon1(USBbusnumber1)

7.usbmon2(USBbusnumber2)

8.usbmon3(USBbusnumber3)

9.usbmon4(USBbusnumber4)

10.usbmon5(USBbusnumber5)

11.usbmon6(USBbusnumber6)

12.usbmon7(USBbusnumber7)

-v选项控制你看到的细节程度——越多的v,越详细,但超过3个v不会有更多意义。

$sudotcpdump-vvhost192.168.0.32

tcpdump:listeningoneth0,link-typeEN10MB(Ethernet),capturesize262144bytes

20:26:31.321816IP(tos0x10,ttl64,id22411,offset0,flags[DF],protoTCP(6),length184)

192.168.0.6.ssh>192.168.0.32.57294:Flags[P.],cksum0x8221(incorrect->0x0254),seq3891093411:3891093555,ack2388988308,win329,length144

20:26:31.321984IP(tos0x10,ttl64,id22412,offset0,flags[DF],protoTCP(6),length200)

192.168.0.6.ssh>192.168.0.32.57294:Flags[P.],cksum0x8231(incorrect->0x3db0),seq144:304,ack1,win329,length160

20:26:31.323791IP(tos0x0,ttl128,id20259,offset0,flags[DF],protoTCP(6),length40)

192.168.0.32.57294>192.168.0.6.ssh:Flags[.],cksum0x643d(correct),seq1,ack304,win385,length0

20:26:31.383954IP(tos0x10,ttl64,id22413,offset0,flags[DF],protoTCP(6),length248)

...

当你运行像这样的命令时,会看到非常多的输出。

这个命令捕获来自特定主机和eth0上的11个数据包。-w选项标识保存捕获包的文件。在这个示例命令中,我们只要求捕获11个数据包。

$sudotcpdump-c11-ieth0src192.168.0.32-wpackets.pcap

tcpdump:listeningoneth0,link-typeEN10MB(Ethernet),capturesize262144bytes

11packetscaptured

11packetsreceivedbyfilter

0packetsdroppedbykernel

arp命令

arp命令将IPv4地址映射到硬件地址。它所提供的信息也可以在一定程度上用于识别系统,因为网络适配器可以告诉你使用它们的系统的一些信息。下面的第二个MAC地址,以f8:8e:85开头,很容易被识别出是Comtrend路由器。

$arp-a

?(192.168.0.12)atb0:c0:90:3f:10:15[ether]oneth0

?(192.168.0.1)atf8:8e:85:35:7f:b9[ether]oneth0

最后想要了解更多关于Linux发展前景趋势,请关注扣丁学堂Linux培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的Linux培训视频教程系统,通过千锋扣丁学堂金牌讲师在线录制的Linux视频教程课程,让你快速掌握Linux从入门到精通开发实战技能。扣丁学堂Linux技术交流群:422345477。


扣丁学堂微信公众号



关注微信公众号获取更多的学习资料



查看更多关于“Linux培训资讯的相关文章>>

标签: Linux命令 Linux视频教程 Linux培训 Linux在线学习 Linux在线视频 Linux系统

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号