当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪linux命令实例教程之ss命令      本节内容: linux下 ss 命令的用法。 在linux操作系统中,ss是Socket Statistics的缩写。 也就是说,ss命令可以用来获取socket统计信息,它可以显示和netstat命令类似的内容。 但ss的优势在于它能够.........
    ▪linux命令实例教程之netstat命令      本节内容: linux下的netstat 命令的用法。 在linux操作系统中,netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。 netstat是在内核中访问网络.........
    ▪linux命令实例教程之traceroute命令      本节内容: linux下的traceroute 命令的用法。 在linux操作系统中,traceroute可以告诉我们信息从计算机到互联网另一端的主机是走的什么路径。 当然每次数据包由某一同样的出发点(source)到达.........

[1]linux命令实例教程之ss命令
    来源: 互联网  发布时间: 2013-12-24

本节内容:
linux下 ss 命令的用法。

在linux操作系统中,ss是Socket Statistics的缩写。
也就是说,ss命令可以用来获取socket统计信息,它可以显示和netstat命令类似的内容。
但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。
当服务器的socket连接数量变得非常大时,无论是使用netstat 命令还是直接cat /proc/net/tcp,执行速度都会很慢。
当服务器维持的连接达到上万个时,使用netstat 命令等于浪费生命,而用ss才是节省时间。

ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。
tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。
当然,如果系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢。(但仍然比 netstat 命令要快。)

下面就开始学习这个重要的linux命令吧。

1.命令格式:
ss [参数]
ss [参数] [过滤]

2.命令功能:
ss(Socket Statistics的缩写)命令可以用来获取 socket统计信息,此命令输出的结果类似于 netstat输出的内容,但它能显示更多更详细的 TCP连接状态的信息,且比
netstat 更快速高效。

它使用了 TCP协议栈中 tcp_diag(是一个用于分析统计的模块),能直接从获得第一手内核信息,这就使得 ss命令快捷高效。在没有 tcp_diag,ss也可以正常运行。

3.命令参数:
 

-h, --help 帮助信息
-V, --version 程序版本信息
-n, --numeric 不解析服务名称
-r, --resolve        解析主机名
-a, --all 显示所有套接字(sockets)
-l, --listening 显示监听状态的套接字(sockets)
-o, --options        显示计时器信息
-e, --extended       显示详细的套接字(sockets)信息
-m, --memory         显示套接字(socket)的内存使用情况
-p, --processes 显示使用套接字(socket)的进程
-i, --info 显示 TCP内部信息
-s, --summary 显示套接字(socket)使用概况
-4, --ipv4           仅显示IPv4的套接字(sockets)
-6, --ipv6           仅显示IPv6的套接字(sockets)
-0, --packet         显示 PACKET 套接字(socket)
-t, --tcp 仅显示 TCP套接字(sockets)
-u, --udp 仅显示 UCP套接字(sockets)
-d, --dccp 仅显示 DCCP套接字(sockets)
-w, --raw 仅显示 RAW套接字(sockets)
-x, --unix 仅显示 Unix套接字(sockets)
-f, --family=FAMILY  显示 FAMILY类型的套接字(sockets),FAMILY可选,支持  unix, inet, inet6, link, netlink
-A, --query=QUERY, --socket=QUERY
      QUERY := {all|inet|tcp|udp|raw|unix|packet|netlink}[,QUERY]
-D, --diag=FILE     将原始TCP套接字(sockets)信息转储到文件
 -F, --filter=FILE   从文件中都去过滤器信息
       FILTER := [ state TCP-STATE ] [ EXPRESSION ]

4.使用实例:
实例1:显示TCP连接
 

代码示例:
命令:
ss -t -a
输出:
[root@xxx ~]# ss -t -a
State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port  
LISTEN     0      0            127.0.0.1:smux                  *:*      
LISTEN     0      0                    *:3690                  *:*      
LISTEN     0      0                    *:ssh                   *:*      
ESTAB      0      0      192.168.120.204:ssh           10.2.0.68:49368  
[root@xxx ~]#

实例2:显示 Sockets 摘要
 

代码示例:

命令:
ss -s
输出:
[root@xxx ~]# ss -s
Total: 34 (kernel 48)
TCP:   4 (estab 1, closed 0, orphaned 0, synrecv 0, timewait 0/0), ports 3

Transport Total     IP        IPv6
*         48        -         -       
RAW       0         0         0       
UDP       5         5         0       
TCP       4         4         0       
INET      9         9         0       
FRAG      0         0         0 

说明:
列出当前的established, closed, orphaned and waiting TCP sockets

实例3:列出所有打开的网络连接端口
 

代码示例:
命令:
ss -l
输出:
[root@xxx ~]# ss -l
Recv-Q Send-Q        Local Address:Port            Peer Address:Port  
0      0        127.0.0.1:smux         *:*      
0      0       *:3690        *:*      
0      0        *:ssh       *:*     

实例4:查看进程使用的socket
 

代码示例:
命令:
ss -pl
输出:
[root@xxx ~]# ss -pl
Recv-Q Send-Q        Local Address:Port            Peer Address:Port  
0      0                 127.0.0.1:smux     *:*        users:(("snmpd",2716,8))
0      0            *:3690      *:*        users:(("svnserve",3590,3))
0      0            *:ssh     *:*        users:(("sshd",2735,3))

实例5:找出打开套接字/端口应用程序
 

代码示例:
命令:
ss -lp | grep 3306
输出:
[root@xxx ~]# ss -lp|grep 1935
0      0                            *:1935     *:*        users:(("fmsedge",2913,18))
0      0                    127.0.0.1:19350   *:*        users:(("fmsedge",2913,17))
[root@xxx ~]# ss -lp|grep 3306
0      0                            *:3306   *:*        users:(("mysqld",2871,10))

实例6:显示所有UDP Sockets
 

代码示例:
命令:
ss -u -a
输出:
[root@xxx ~]# ss -u -a
State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port  
UNCONN     0      0            127.0.0.1:syslog                *:*      
UNCONN     0      0                    *:snmp                  *:*      
ESTAB      0      0      192.168.120.203:39641     10.58.119.119:domain

实例7:显示所有状态为established的SMTP连接
 

代码示例:
命令:
ss -o state established '( dport = :smtp or sport = :smtp )'
输出:
[root@xxx ~]# ss -o state established '( dport = :smtp or sport = :smtp )'
Recv-Q Send-Q        Local Address:Port            Peer Address:Port  
[root@xxx ~]#

实例8:显示所有状态为Established的HTTP连接
 

代码示例:
命令:
ss -o state established '( dport = :http or sport = :http )'
输出:
[root@xxx ~]# ss -o state established '( dport = :http or sport = :http )'
Recv-Q Send-Q        Local Address:Port    Peer Address:Port  
0      0             75.126.153.214:2164   192.168.10.42:http   

实例9:列举出处于 FIN-WAIT-1状态的源端口为 80或者 443,目标网络为 193.233.7/24所有 tcp套接字
 

代码示例:
命令:
ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24

实例10:用TCP 状态过滤Sockets:
 

代码示例:
命令:
ss -4 state FILTER-NAME-HERE
ss -6 state FILTER-NAME-HERE
输出:
[root@xxx ~]#ss -4 state closing
Recv-Q Send-Q                     Local Address:Port                         Peer Address:Port
1      11094                     75.126.153.214:http                         192.168.10.42:4669
 

说明:
FILTER-NAME-HERE 可以代表以下任何一个:
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
 
all : 所有以上状态
connected : 除了listen and closed的所有状态
synchronized :所有已连接的状态除了syn-sent
bucket : 显示状态为maintained as minisockets,如:time-wait和syn-recv.
big : 和bucket相反.

实例11:匹配远程地址和端口号
 

代码示例:

命令:
ss dst ADDRESS_PATTERN
ss dst 192.168.1.5
ss dst 192.168.119.113:http
ss dst 192.168.119.113:smtp
ss dst 192.168.119.113:443

输出:
[root@xxx ~]# ss dst 192.168.119.113
State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port  
ESTAB      0      0      192.168.119.103:16014   192.168.119.113:20229  
ESTAB      0      0      192.168.119.103:16014   192.168.119.113:61056  
ESTAB      0      0      192.168.119.103:16014   192.168.119.113:61623  
ESTAB      0      0      192.168.119.103:16014   192.168.119.113:60924  
ESTAB      0      0      192.168.119.103:16050   192.168.119.113:43701  
ESTAB      0      0      192.168.119.103:16073   192.168.119.113:32930  
ESTAB      0      0      192.168.119.103:16073   192.168.119.113:49318  
ESTAB      0      0      192.168.119.103:16014   192.168.119.113:3844   
[root@xxx ~]# ss dst 192.168.119.113:http
State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port  
[root@xxx ~]# ss dst 192.168.119.113:3844
State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port  
ESTAB      0      0      192.168.119.103:16014   192.168.119.113:3844   

实例12:匹配本地地址和端口号
 

代码示例:
命令:
ss src ADDRESS_PATTERN
ss src 192.168.119.103
ss src 192.168.119.103:http
ss src 192.168.119.103:80
ss src 192.168.119.103:smtp
ss src 192.168.119.103:25
输出:
[root@xxx ~]# ss src 192.168.119.103:16021
State      Recv-Q Send-Q   Local Address:Port       Peer Address:Port  
ESTAB      0      0      192.168.119.103:16021   192.168.119.201:63054  
ESTAB      0      0      192.168.119.103:16021   192.168.119.201:62894  
ESTAB      0      0      192.168.119.103:16021   192.168.119.201:63055  
ESTAB      0      0      192.168.119.103:16021   192.168.119.201:2274   
ESTAB      0      0      192.168.119.103:16021   192.168.119.201:44784  
ESTAB      0      0      192.168.119.103:16021   192.168.119.201:7233   
ESTAB      0      0      192.168.119.103:16021   192.168.119.103:58660  
ESTAB      0      0      192.168.119.103:16021   192.168.119.201:44822  
ESTAB      0      0      192.168.119.103:16021        10.2.1.206:56737  
ESTAB      0      0      192.168.119.103:16021        10.2.1.206:57487  
ESTAB      0      0      192.168.119.103:16021        10.2.1.206:56736  
ESTAB      0      0      192.168.119.103:16021        10.2.1.206:64652  
ESTAB      0      0      192.168.119.103:16021        10.2.1.206:56586  
ESTAB      0      0      192.168.119.103:16021        10.2.1.206:64653  
ESTAB      0      0      192.168.119.103:16021        10.2.1.206:56587  

实例13:将本地或者远程端口和一个数比较
 

代码示例:
命令:
ss dport OP PORT
ss sport OP PORT
输出:
[root@xxx ~]# ss  sport = :http
[root@xxx ~]# ss  dport = :http
[root@xxx ~]# ss  dport \> :1024
[root@xxx ~]# ss  sport \> :1024
[root@xxx ~]# ss sport \< :32000
[root@xxx ~]# ss  sport eq :22
[root@xxx ~]# ss  dport != :22
[root@xxx ~]# ss  state connected sport = :http
[root@xxx ~]# ss \( sport = :http or sport = :https \)
[root@xxx ~]# ss -o state fin-wait-1 \( sport = :http or sport = :https \) dst 192.168.1/24

说明:
ss dport OP PORT 远程端口和一个数比较;ss sport OP PORT 本地端口和一个数比较。
OP 可以代表以下任意一个:
<= or le : 小于或等于端口号
>= or ge : 大于或等于端口号
== or eq : 等于端口号
!= or ne : 不等于端口号
< or gt : 小于端口号
> or lt : 大于端口号

实例14:ss 和 netstat 效率对比
 

代码示例:

命令:
time netstat -at
time ss
输出:
[root@xxx ~]# time ss  
real    0m0.739s
user    0m0.019s
sys     0m0.013s

[root@xxx ~]# time netstat -at
real    2m45.907s
user    0m0.063s
sys     0m0.067s

说明:
用time 命令分别获取通过netstat和ss命令获取程序和概要占用资源所使用的时间。在服务器连接数比较多的时候,netstat的效率完全没法和ss比。

>>> 查看更多 linux命令实例教程 <<<


    
[2]linux命令实例教程之netstat命令
    来源: 互联网  发布时间: 2013-12-24

本节内容:
linux下的netstat 命令的用法。

在linux操作系统中,netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

如果计算机有时候接收到的数据报导致出错数据或故障,不必感到奇怪,TCP/IP可以容许这些类型的错误,并能够自动重发数据报。
但如果累计的出错情况数目占到所接收的IP数据报相当大的百分比,或者它的数目正迅速增加,那么你就应该使用netstat查一查为什么会出现这些情况了。

下面就来学习下这个linux命令吧,netstat可以说是网络诊断的利器,建议大家牢固掌握之。

1.命令格式:
netstat [-acCeFghilMnNoprstuvVwx][-A<网络类型>][--ip]

2.命令功能:
netstat用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。

3.命令参数:
 

-a或–all 显示所有连线中的Socket。
-A<网络类型>或–<网络类型> 列出该网络类型连线中的相关地址。
-c或–continuous 持续列出网络状态。
-C或–cache 显示路由器配置的快取信息。
-e或–extend 显示网络其他相关信息。
-F或–fib 显示FIB。
-g或–groups 显示多重广播功能群组组员名单。
-h或–help 在线帮助。
-i或–interfaces 显示网络界面信息表单。
-l或–listening 显示监控中的服务器的Socket。
-M或–masquerade 显示伪装的网络连线。
-n或–numeric 直接使用IP地址,而不通过域名服务器。
-N或–netlink或–symbolic 显示网络硬件外围设备的符号连接名称。
-o或–timers 显示计时器。
-p或–programs 显示正在使用Socket的程序识别码和程序名称。
-r或–route 显示Routing Table。
-s或–statistice 显示网络工作信息统计表。
-t或–tcp 显示TCP传输协议的连线状况。
-u或–udp 显示UDP传输协议的连线状况。
-v或–verbose 显示指令执行过程。
-V或–version 显示版本信息。
-w或–raw 显示RAW传输协议的连线状况。
-x或–unix 此参数的效果和指定”-A unix”参数相同。
–ip或–inet 此参数的效果和指定”-A inet”参数相同。

4.使用实例:
实例1:无参数使用
 

代码示例:
命令:
netstat
输出:
[root@localhost ~]# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0    268 192.168.120.204:ssh         10.2.0.68:62420             ESTABLISHED
udp        0      0 192.168.120.204:4371        10.58.119.119:domain        ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ]         DGRAM                    1491   @/org/kernel/udev/udevd
unix  4      [ ]         DGRAM                    7337   /dev/log
unix  2      [ ]         DGRAM                    708823
unix  2      [ ]         DGRAM                    7539  
unix  3      [ ]         STREAM     CONNECTED     7287  
unix  3      [ ]         STREAM     CONNECTED     7286  
 

说明:
从整体上看,netstat的输出结果可以分为两个部分:
一个是Active Internet connections,称为有源TCP连接,其中"Recv-Q"和"Send-Q"指的是接收队列和发送队列。这些数字一般都应该是0。如果不是则表示软件包正在队列
中堆积。这种情况只能在非常少的情况见到。

另一个是Active UNIX domain sockets,称为有源Unix域套接口(和网络套接字一样,但是只能用于本机通信,性能可以提高一倍)。
Proto显示连接使用的协议,RefCnt表示连接到本套接口上的进程号,Types显示套接口的类型,State显示套接口当前的状态,Path表示连接到套接口的其它进程使用的路径名。
套接口类型:
 

-t :TCP
-u :UDP
-raw :RAW类型
--unix :UNIX域类型
--ax25 :AX25类型
--ipx :ipx类型
--netrom :netrom类型
 

状态说明:
 

LISTEN:侦听来自远方的TCP端口的连接请求
SYN-SENT:再发送连接请求后等待匹配的连接请求(如果有大量这样的状态包,检查是否中招了)
SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认(如有大量此状态,估计被flood攻击了)
ESTABLISHED:代表一个打开的连接
FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认
FIN-WAIT-2:从远程TCP等待连接中断请求
CLOSE-WAIT:等待从本地用户发来的连接中断请求
CLOSING:等待远程TCP对连接中断的确认
LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认(不是什么好东西,此项出现,检查是否被攻击)
TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认
CLOSED:没有任何连接状态
 

实例2:列出所有端口
 

代码示例:
命令:
netstat -a
输出:
[root@localhost ~]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0      0 localhost:smux              *:*                         LISTEN     
tcp        0      0 *:svn                       *:*                         LISTEN     
tcp        0      0 *:ssh                       *:*                         LISTEN     
tcp        0    284 192.168.120.204:ssh         10.2.0.68:62420             ESTABLISHED
udp        0      0 localhost:syslog            *:*                                    
udp        0      0 *:snmp                      *:*                                    
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     708833 /tmp/ssh-yKnDB15725/agent.15725
unix  2      [ ACC ]     STREAM     LISTENING     7296   /var/run/audispd_events
unix  2      [ ]         DGRAM                    1491   @/org/kernel/udev/udevd
unix  4      [ ]         DGRAM                    7337   /dev/log
unix  2      [ ]         DGRAM                    708823
unix  2      [ ]         DGRAM                    7539  
unix  3      [ ]         STREAM     CONNECTED     7287  
unix  3      [ ]         STREAM     CONNECTED     7286  

说明:
显示一个所有的有效连接信息列表,包括已建立的连接(ESTABLISHED),也包括监听连接请(LISTENING)的那些连接。
 
实例3:显示当前UDP连接状况
 

代码示例:
命令:
netstat -nu
输出:
[root@andy ~]# netstat -nu
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
udp        0      0 ::ffff:192.168.12:53392     ::ffff:192.168.9.120:10000  ESTABLISHED
udp        0      0 ::ffff:192.168.12:56723     ::ffff:192.168.9.120:10000  ESTABLISHED
udp        0      0 ::ffff:192.168.12:56480     ::ffff:192.168.9.120:10000  ESTABLISHED
udp        0      0 ::ffff:192.168.12:58154     ::ffff:192.168.9.120:10000  ESTABLISHED
udp        0      0 ::ffff:192.168.12:44227     ::ffff:192.168.9.120:10000  ESTABLISHED
udp        0      0 ::ffff:192.168.12:36954     ::ffff:192.168.9.120:10000  ESTABLISHED
udp        0      0 ::ffff:192.168.12:53984     ::ffff:192.168.9.120:10000  ESTABLISHED
udp        0      0 ::ffff:192.168.12:57703     ::ffff:192.168.9.120:10000  ESTABLISHED
udp        0      0 ::ffff:192.168.12:53613     ::ffff:192.168.9.120:10000  ESTABLISHED

实例4:显示UDP端口号的使用情况
 

代码示例:
命令:
netstat -apu
输出:
[root@andy ~]# netstat -apu
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
udp        0      0 *:57604                     *:*                                     28094/java         
udp        0      0 *:40583                     *:*                                     21220/java         
udp        0      0 *:45451                     *:*                                     14583/java         
udp        0      0 ::ffff:192.168.12:53392     ::ffff:192.168.9.120:ndmp   ESTABLISHED 19327/java         
udp        0      0 *:52370                     *:*                                     15841/java         
udp        0      0 ::ffff:192.168.12:56723     ::ffff:192.168.9.120:ndmp   ESTABLISHED 15841/java         
udp        0      0 *:44182                     *:*                                     31757/java         
udp        0      0 *:48155                     *:*                                     5476/java          
udp        0      0 *:59808                     *:*                                     17333/java         
udp        0      0 ::ffff:192.168.12:56480     ::ffff:192.168.9.120:ndmp   ESTABLISHED 28094/java         
udp        0      0 ::ffff:192.168.12:58154     ::ffff:192.168.9.120:ndmp   ESTABLISHED 15429/java         
udp        0      0 *:36780                     *:*                                     10091/java         
udp        0      0 *:36795                     *:*                                     24594/java         
udp        0      0 *:41922                     *:*                                     20506/java         
udp        0      0 ::ffff:192.168.12:44227     ::ffff:192.168.9.120:ndmp   ESTABLISHED 17333/java         
udp        0      0 *:34258                     *:*                                     8866/java          
udp        0      0 *:55508                     *:*                                     11667/java         
udp        0      0 *:36055                     *:*                                     12425/java         
udp        0      0 ::ffff:192.168.12:36954     ::ffff:192.168.9.120:ndmp   ESTABLISHED 16532/java         
udp        0      0 ::ffff:192.168.12:53984     ::ffff:192.168.9.120:ndmp   ESTABLISHED 20506/java         
udp        0      0 ::ffff:192.168.12:57703     ::ffff:192.168.9.120:ndmp   ESTABLISHED 31757/java         
udp        0      0 ::ffff:192.168.12:53613     ::ffff:192.168.9.120:ndmp   ESTABLISHED 3199/java          
udp        0      0 *:56309                     *:*                                     15429/java         
udp        0      0 *:54007                     *:*                                     16532/java         
udp        0      0 *:39544                     *:*                                     3199/java          
udp        0      0 *:43900                     *:*                                     19327/java  

实例5:显示网卡列表
 

代码示例:
命令:
netstat -i
输出:
[root@andy ~]# netstat -i
Kernel Interface table
Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500   0 151818887      0      0      0 198928403      0      0      0 BMRU
lo        16436   0   107235      0      0      0   107235      0      0      0 LRU
 

实例6:显示组播组的关系
 

代码示例:
命令:
netstat -g
输出:
[root@andy ~]# netstat -g
IPv6/IPv4 Group Memberships
Interface       RefCnt Group
--------------- ------ ---------------------
lo              1      all-systems.mcast.net
eth0            1      all-systems.mcast.net
lo              1      ff02::1
eth0            1      ff02::1:ffff:9b0c
eth0            1      ff02::1
 

实例7:显示网络统计信息
 

代码示例:
命令:
netstat -s
输出:
[root@localhost ~]# netstat -s
Ip:
    530999 total packets received
    0 forwarded
    0 incoming packets discarded
    530999 incoming packets delivered
    8258 requests sent out
    1 dropped because of missing route
Icmp:
    90 ICMP messages received
    0 input ICMP message failed.
    ICMP input histogram:
        destination unreachable: 17
        echo requests: 1
        echo replies: 72
    106 ICMP messages sent
    0 ICMP messages failed
    ICMP output histogram:
        destination unreachable: 8
        echo request: 97
        echo replies: 1
IcmpMsg:
        InType0: 72
        InType3: 17
        InType8: 1
        OutType0: 1
        OutType3: 8
        OutType8: 97
Tcp:
    8 active connections openings
    15 passive connection openings
    8 failed connection attempts
    3 connection resets received
    1 connections established
    3132 segments received
    2617 segments send out
    53 segments retransmited
    0 bad segments received.
    252 resets sent
Udp:
    0 packets received
    0 packets to unknown port received.
    0 packet receive errors
    5482 packets sent
TcpExt:
    1 invalid SYN cookies received
    1 TCP sockets finished time wait in fast timer
    57 delayed acks sent
    Quick ack mode was activated 50 times
    60 packets directly queued to recvmsg prequeue.
    68 packets directly received from backlog
    4399 packets directly received from prequeue
    520 packets header predicted
    51 packets header predicted and directly queued to user
    1194 acknowledgments not containing data received
    21 predicted acknowledgments
    0 TCP data loss events
    1 timeouts after reno fast retransmit
    9 retransmits in slow start
    42 other TCP timeouts
    3 connections aborted due to timeout
IpExt:
    InBcastPkts: 527777
 

说明:
按照各个协议分别显示其统计数据。如果我们的应用程序(如Web浏览器)运行速度比较慢,或者不能显示Web页之类的数据,那么我们就可以用本选项来查看一下所显示的
信息。我们需要仔细查看统计数据的各行,找到出错的关键字,进而确定问题所在。
 
实例8:显示监听的套接口
 

代码示例:
命令:
netstat -l
输出:
[root@localhost ~]# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0      0 localhost:smux              *:*                         LISTEN     
tcp        0      0 *:svn                       *:*                         LISTEN     
tcp        0      0 *:ssh                       *:*                         LISTEN     
udp        0      0 localhost:syslog            *:*                                    
udp        0      0 *:snmp                      *:*                                    
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ACC ]     STREAM     LISTENING     708833 /tmp/ssh-yKnDB15725/agent.15725
unix  2      [ ACC ]     STREAM     LISTENING     7296   /var/run/audispd_events

实例9:显示所有已建立的有效连接
 

代码示例:
命令:
netstat -n
输出:
[root@localhost ~]# netstat -n
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0    268 192.168.120.204:22          10.2.0.68:62420             ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ]         DGRAM                    1491   @/org/kernel/udev/udevd
unix  4      [ ]         DGRAM                    7337   /dev/log
unix  2      [ ]         DGRAM                    708823
unix  2      [ ]         DGRAM                    7539  
unix  3      [ ]         STREAM     CONNECTED     7287  
unix  3      [ ]         STREAM     CONNECTED     7286  
 

实例10:显示关于以太网的统计数据
 

代码示例:
命令:
netstat -e
输出:
[root@localhost ~]# netstat -e
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       User       Inode    
tcp        0    248 192.168.120.204:ssh         10.2.0.68:62420             ESTABLISHED root       708795    
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State         I-Node Path
unix  2      [ ]         DGRAM                    1491   @/org/kernel/udev/udevd
unix  4      [ ]         DGRAM                    7337   /dev/log
unix  2      [ ]         DGRAM                    708823
unix  2      [ ]         DGRAM                    7539  
unix  3      [ ]         STREAM     CONNECTED     7287  
unix  3      [ ]         STREAM     CONNECTED     7286  

说明:
用于显示关于以太网的统计数据。它列出的项目包括传送的数据报的总字节数、错误数、删除数、数据报的数量和广播的数量。这些统计数据既有发送的数据报数量,也有
接收的数据报数量。这个选项可以用来统计一些基本的网络流量)
 
实例11:显示关于路由表的信息
 

代码示例:
命令:
netstat -r
输出:
[root@localhost ~]# netstat -r
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.120.0   *               255.255.255.0   U         0 0          0 eth0
192.168.0.0     192.168.120.1   255.255.0.0     UG        0 0          0 eth0
10.0.0.0        192.168.120.1   255.0.0.0       UG        0 0          0 eth0
default         192.168.120.240 0.0.0.0         UG        0 0          0 eth0
 

实例12:列出所有 tcp 端口
 

代码示例:
命令:
netstat -at
输出:
[root@localhost ~]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State     
tcp        0      0 localhost:smux              *:*                         LISTEN     
tcp        0      0 *:svn                       *:*                         LISTEN     
tcp        0      0 *:ssh                       *:*                         LISTEN     
tcp        0    284 192.168.120.204:ssh         10.2.0.68:62420             ESTABLISHED

实例13:统计机器中网络连接各个状态个数
 

代码示例:
命令:
netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
输出:
[root@localhost ~]# netstat -a | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
ESTABLISHED 1
LISTEN 3
 

实例14:把状态全都取出来后使用uniq -c统计后再进行排序
 

代码示例:
命令:
netstat -nat |awk '{print $6}'|sort|uniq -c
输出:
[root@andy ~]# netstat -nat |awk '{print $6}'|sort|uniq -c
     14 CLOSE_WAIT
      1 established)
    578 ESTABLISHED
      1 Foreign
     43 LISTEN
      5 TIME_WAIT
[root@andy ~]# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
    576 ESTABLISHED
     43 LISTEN
     14 CLOSE_WAIT
      5 TIME_WAIT
      1 Foreign
      1 established)
 

实例15:查看连接某服务端口最多的的IP地址
 

代码示例:
命令:
netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -20
输出:
[root@andy ~]# netstat -nat | grep "192.168.120.20:16067" |awk '{print $5}'|awk -F: '{print $4}'|sort|uniq -c|sort -nr|head -20
      8 10.2.1.68
      7 192.168.119.13
      6 192.168.119.201
      6 192.168.119.20
      6 192.168.119.10
      4 10.2.1.199
      3 10.2.1.207
      2 192.168.120.20
      2 192.168.120.15
      2 192.168.119.197
      2 192.168.119.11
      2 10.2.1.206
      2 10.2.1.203
      2 10.2.1.189
      2 10.2.1.173
      1 192.168.120.18
      1 192.168.119.19
      1 10.2.2.227
      1 10.2.2.138
      1 10.2.1.208
 

实例16:找出程序运行的端口
 

代码示例:
命令:
netstat -ap | grep ssh
输出:
[root@andy ~]# netstat -ap | grep ssh
tcp        0      0 *:ssh                       *:*                         LISTEN      2570/sshd          
tcp        0      0 ::ffff:192.168.120.206:ssh  ::ffff:10.2.1.205:54508     ESTABLISHED 13883/14           
tcp        0      0 ::ffff:192.168.120.206:ssh  ::ffff:10.2.0.68:62886      ESTABLISHED 20900/6            
tcp        0      0 ::ffff:192.168.120.206:ssh  ::ffff:10.2.2.131:52730     ESTABLISHED 20285/sshd: root@no
unix  2      [ ACC ]     STREAM     LISTENING     194494461 20900/6             /tmp/ssh-cXIJj20900/agent.20900
unix  3      [ ]         STREAM     CONNECTED     194307443 20285/sshd: root@no
unix  3      [ ]         STREAM     CONNECTED     194307441 20285/sshd: root@no
 

实例17:在 netstat 输出中显示 PID 和进程名称
 

代码示例:
命令:
netstat -pt
输出:
[root@localhost ~]# netstat -pt
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name  
tcp        0    248 192.168.120.204:ssh         10.2.0.68:62420             ESTABLISHED 15725/0

说明:
netstat -p 可以与其它开关一起使用,就可以添加 “PID/进程名称” 到 netstat 输出中,这样 debugging 的时候可以很方便的发现特定端口运行的程序。
 
实例18:找出运行在指定端口的进程
 

代码示例:
命令:
netstat -anpt | grep ':16064'
输出:
[root@andy ~]# netstat -anpt | grep ':16064'
tcp        0      0 :::16064                    :::*                        LISTEN      24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:192.168.119.201:6462 ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:192.168.119.20:26341 ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:192.168.119.20:32208 ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:192.168.119.20:32207 ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:51303      ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:51302      ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:50020      ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:50019      ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:56155      ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:50681      ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:50680      ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:52136      ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:56989      ESTABLISHED 24594/java         
tcp        0      0 ::ffff:192.168.120.20:16064 ::ffff:10.2.1.68:56988      ESTABLISHED 24594/java         

说明:
运行在端口16064的进程id为24596,再通过ps命令就可以找到具体的应用程序了。

>>> 查看更多 linux命令实例教程 <<<


    
[3]linux命令实例教程之traceroute命令
    来源: 互联网  发布时间: 2013-12-24

本节内容:
linux下的traceroute 命令的用法。

在linux操作系统中,traceroute可以告诉我们信息从计算机到互联网另一端的主机是走的什么路径。

当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一样,但基本上来说大部分时候所走的路由是相同的。linux系统中
,我们称之为traceroute,在MS Windows中为tracert。

traceroute命令通过发送小的数据包到目的设备直到其返回,来测量其需要多长时间。一条路径上的每个设备traceroute要测3次。输出结果中包括每次测试的时间(ms)和设
备的名称(如有的话)及其IP地址。

在大多数情况下,我们会在linux主机系统下,直接执行命令行:
 

代码示例:
traceroute hostname

而在Windows系统下是执行tracert的命令:
 

代码示例:
tracert hostname

下面就开始学习这个linux命令,深入了解下该命令的用法。

1.命令格式:
traceroute[参数][主机]

2.命令功能:
traceroute指令让你追踪网络数据包的路由途径,预设数据包大小是40Bytes,用户可另行设置。
具体参数格式:traceroute [-dFlnrvx][-f<存活数值>][-g<网关>...][-i<网络界面>][-m<存活数值>][-p<通信端口>][-s<来源地址>][-t<服务类型>][-w<超时秒数>][主机
名称或IP地址][数据包大小]

3.命令参数:
 

-d 使用Socket层级的排错功能。
-f 设置第一个检测数据包的存活数值TTL的大小。
-F 设置勿离断位。
-g 设置来源路由网关,最多可设置8个。
-i 使用指定的网络界面送出数据包。
-I 使用ICMP回应取代UDP资料信息。
-m 设置检测数据包的最大存活数值TTL的大小。
-n 直接使用IP地址而非主机名称。
-p 设置UDP传输协议的通信端口。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-s 设置本地主机送出数据包的IP地址。
-t 设置检测数据包的TOS数值。
-v 详细显示指令的执行过程。
-w 设置等待远端主机回报的时间。
-x 开启或关闭数据包的正确性检验。

4.使用实例:
实例1:traceroute 用法简单、最常用的用法
 

代码示例:
命令:
traceroute www.baidu.com
输出:
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
 1  192.168.74.2 (192.168.74.2)  2.606 ms  2.771 ms  2.950 ms
 2  211.151.56.57 (211.151.56.57)  0.596 ms  0.598 ms  0.591 ms
 3  211.151.227.206 (211.151.227.206)  0.546 ms  0.544 ms  0.538 ms
 4  210.77.139.145 (210.77.139.145)  0.710 ms  0.748 ms  0.801 ms
 5  202.106.42.101 (202.106.42.101)  6.759 ms  6.945 ms  7.107 ms
 6  61.148.154.97 (61.148.154.97)  718.908 ms * bt-228-025.bta.net.cn (202.106.228.25)  5.177 ms
 7  124.65.58.213 (124.65.58.213)  4.343 ms  4.336 ms  4.367 ms
 8  202.106.35.190 (202.106.35.190)  1.795 ms 61.148.156.138 (61.148.156.138)  1.899 ms  1.951 ms
 9  * * *
30  * * *
 

说明:
记录按序列号从1开始,每个纪录就是一跳 ,每跳表示一个网关,我们看到每行有三个时间,单位是 ms,其实就是-q的默认参数。探测数据包向每个网关发送三个数据包后
,网关响应后返回的时间;如果您用 traceroute -q 4 www. ,表示向每个网关发送4个数据包。

有时我们traceroute 一台主机时,会看到有一些行是以星号表示的。出现这样的情况,可能是防火墙封掉了ICMP的返回信息,所以我们得不到什么相关的数据包返回数据。
有时我们在某一网关处延时比较长,有可能是某台网关比较阻塞,也可能是物理设备本身的原因。当然如果某台DNS出现问题时,不能解析主机名、域名时,也会 有延时长
的现象;您可以加-n 参数来避免DNS解析,以IP格式输出数据。

如果在局域网中的不同网段之间,我们可以通过traceroute 来排查问题所在,是主机的问题还是网关的问题。如果我们通过远程来访问某台服务器遇到问题时,我们用到
traceroute 追踪数据包所经过的网关,提交IDC服务商,也有助于解决问题。
 
实例2:跳数设置
 

代码示例:
命令:
traceroute -m 10 www.baidu.com
输出:
[root@localhost ~]# traceroute -m 10 www.baidu.com
traceroute to www.baidu.com (61.135.169.105), 10 hops max, 40 byte packets
 1  192.168.74.2 (192.168.74.2)  1.534 ms  1.775 ms  1.961 ms
 2  211.151.56.1 (211.151.56.1)  0.508 ms  0.514 ms  0.507 ms
 3  211.151.227.206 (211.151.227.206)  0.571 ms  0.558 ms  0.550 ms
 4  210.77.139.145 (210.77.139.145)  0.708 ms  0.729 ms  0.785 ms
 5  202.106.42.101 (202.106.42.101)  7.978 ms  8.155 ms  8.311 ms
 6  bt-228-037.bta.net.cn (202.106.228.37)  772.460 ms bt-228-025.bta.net.cn (202.106.228.25)  2.152 ms 61.148.154.97 (61.148.154.97)  772.107 ms
 7  124.65.58.221 (124.65.58.221)  4.875 ms 61.148.146.29 (61.148.146.29)  2.124 ms 124.65.58.221 (124.65.58.221)  4.854 ms
 8  123.126.6.198 (123.126.6.198)  2.944 ms 61.148.156.6 (61.148.156.6)  3.505 ms 123.126.6.198 (123.126.6.198)  2.885 ms
 9  * * *
10  * * *
 

实例3:显示IP地址,不查主机名
 

代码示例:
命令:
traceroute -n www.baidu.com
输出:
[root@localhost ~]# traceroute -n www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
 1  211.151.74.2  5.430 ms  5.636 ms  5.802 ms
 2  211.151.56.57  0.627 ms  0.625 ms  0.617 ms
 3  211.151.227.206  0.575 ms  0.584 ms  0.576 ms
 4  210.77.139.145  0.703 ms  0.754 ms  0.806 ms
 5  202.106.42.101  23.683 ms  23.869 ms  23.998 ms
 6  202.106.228.37  247.101 ms * *
 7  61.148.146.29  5.256 ms 124.65.58.213  4.386 ms  4.373 ms
 8  202.106.35.190  1.610 ms 61.148.156.138  1.786 ms 61.148.3.34  2.089 ms
 9  * * *
30  * * *
[root@localhost ~]# traceroute www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
 1  211.151.74.2 (211.151.74.2)  4.671 ms  4.865 ms  5.055 ms
 2  211.151.56.57 (211.151.56.57)  0.619 ms  0.618 ms  0.612 ms
 3  211.151.227.206 (211.151.227.206)  0.620 ms  0.642 ms  0.636 ms
 4  210.77.139.145 (210.77.139.145)  0.720 ms  0.772 ms  0.816 ms
 5  202.106.42.101 (202.106.42.101)  7.667 ms  7.910 ms  8.012 ms
 6  bt-228-025.bta.net.cn (202.106.228.25)  2.965 ms  2.440 ms 61.148.154.97 (61.148.154.97)  431.337 ms
 7  124.65.58.213 (124.65.58.213)  5.134 ms  5.124 ms  5.044 ms
 8  202.106.35.190 (202.106.35.190)  1.917 ms  2.052 ms  2.059 ms
 9  * * *
30  * * *
 

实例4:探测包使用的基本UDP端口设置6888
 

代码示例:
命令:
traceroute -p 6888 www.baidu.com
输出:
[root@localhost ~]# traceroute -p 6888 www.baidu.com
traceroute to www.baidu.com (220.181.111.147), 30 hops max, 40 byte packets
 1  211.151.74.2 (211.151.74.2)  4.927 ms  5.121 ms  5.298 ms
 2  211.151.56.1 (211.151.56.1)  0.500 ms  0.499 ms  0.509 ms
 3  211.151.224.90 (211.151.224.90)  0.637 ms  0.631 ms  0.641 ms
 4  * * *
 5  220.181.70.98 (220.181.70.98)  5.050 ms  5.313 ms  5.596 ms
 6  220.181.17.94 (220.181.17.94)  1.665 ms !X * *
 

实例5:把探测包的个数设置为值4
 

代码示例:
命令:
traceroute -q 4 www.baidu.com
输出:
[root@localhost ~]# traceroute -q 4 www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
 1  211.151.74.2 (211.151.74.2)  40.633 ms  40.819 ms  41.004 ms  41.188 ms
 2  211.151.56.57 (211.151.56.57)  0.637 ms  0.633 ms  0.627 ms  0.619 ms
 3  211.151.227.206 (211.151.227.206)  0.505 ms  0.580 ms  0.571 ms  0.569 ms
 4  210.77.139.145 (210.77.139.145)  0.753 ms  0.800 ms  0.853 ms  0.904 ms
 5  202.106.42.101 (202.106.42.101)  7.449 ms  7.543 ms  7.738 ms  7.893 ms
 6  61.148.154.97 (61.148.154.97)  316.817 ms bt-228-025.bta.net.cn (202.106.228.25)  3.695 ms  3.672 ms *
 7  124.65.58.213 (124.65.58.213)  3.056 ms  2.993 ms  2.960 ms 61.148.146.29 (61.148.146.29)  2.837 ms
 8  61.148.3.34 (61.148.3.34)  2.179 ms  2.295 ms  2.442 ms 202.106.35.190 (202.106.35.190)  7.136 ms
 9  * * * *
30  * * * *
 

实例6:绕过正常的路由表,直接发送到网络相连的主机
 

代码示例:
命令:
 traceroute -r www.baidu.com
输出:
[root@localhost ~]# traceroute -r www.baidu.com
traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets
connect: 网络不可达
 

实例7:把对外发探测包的等待响应时间设置为3秒
 

代码示例:
命令:
traceroute -w 3 www.baidu.com
输出:
[root@localhost ~]# traceroute -w 3 www.baidu.com
traceroute to www.baidu.com (61.135.169.105), 30 hops max, 40 byte packets
 1  211.151.74.2 (211.151.74.2)  2.306 ms  2.469 ms  2.650 ms
 2  211.151.56.1 (211.151.56.1)  0.621 ms  0.613 ms  0.603 ms
 3  211.151.227.206 (211.151.227.206)  0.557 ms  0.560 ms  0.552 ms
 4  210.77.139.145 (210.77.139.145)  0.708 ms  0.761 ms  0.817 ms
 5  202.106.42.101 (202.106.42.101)  7.520 ms  7.774 ms  7.902 ms
 6  bt-228-025.bta.net.cn (202.106.228.25)  2.890 ms  2.369 ms 61.148.154.97 (61.148.154.97)  471.961 ms
 7  124.65.58.221 (124.65.58.221)  4.490 ms  4.483 ms  4.472 ms
 8  123.126.6.198 (123.126.6.198)  2.948 ms 61.148.156.6 (61.148.156.6)  7.688 ms  7.756 ms
 9  * * *
30  * * *
 

Traceroute的工作原理:
Traceroute最简单的基本用法是:traceroute hostname
Traceroute程序的设计是利用ICMP及IP header的TTL(Time To Live)栏位(field)。首先,traceroute送出一个TTL是1的IP datagram(其实,每次送出的为3个40字节的
包,包括源地址,目的地址和包发出的时间标签)到目的地,当路径上的第一个路由器(router)收到这个datagram时,它将TTL减1。此时,TTL变为0了,所以该路由器会
将此datagram丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),traceroute 收到这个消息后,便知道这个路由
器存在于这个路径上,接着traceroute 再送出另一个TTL是2 的datagram,发现第2 个路由器...... traceroute 每次将送出的datagram的TTL 加1来发现另一个路由器,这
个重复的动作一直持续到某个datagram 抵达目的地。当datagram到达目的地后,该主机并不会送回ICMP time exceeded消息,因为它已是目的地了,那么traceroute如何得
知目的地到达了呢?
Traceroute在送出UDP datagrams到目的地时,它所选择送达的port number 是一个一般应用程序都不会用的号码(30000 以上),所以当此UDP datagram 到达目的地后该
主机会送回一个「ICMP port unreachable」的消息,而当traceroute 收到这个消息时,便知道目的地已经到达了。所以traceroute 在Server端也是没有所谓的Daemon 程
式。
Traceroute提取发 ICMP TTL到期消息设备的IP地址并作域名解析。每次 ,Traceroute都打印出一系列数据,包括所经过的路由设备的域名及 IP地址,三个包每次来回所花时
间。
 windows之tracert:
格式:
tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name
参数说明:
tracert [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
该诊断实用程序通过向目的地发送具有不同生存时间 (TL) 的 Internet 控制信息协议 (CMP) 回应报文,以确定至目的地的路由。路径上的每个路由器都要在转发该 ICMP
回应报文之前将其 TTL 值至少减 1,因此 TTL 是有效的跳转计数。当报文的 TTL 值减少到 0 时,路由器向源系统发回 ICMP 超时信息。通过发送 TTL 为 1 的第一个回
应报文并且在随后的发送中每次将 TTL 值加 1,直到目标响应或达到最大 TTL 值,Tracert 可以确定路由。通过检查中间路由器发发回的 ICMP 超时 (ime Exceeded) 信
息,可以确定路由器。注意,有些路由器“安静”地丢弃生存时间 (TLS) 过期的报文并且对 tracert 无效。
参数:
-d 指定不对计算机名解析地址。
-h maximum_hops 指定查找目标的跳转的最大数目。
-jcomputer-list 指定在 computer-list 中松散源路由。
-w timeout 等待由 timeout 对每个应答指定的毫秒数。
target_name 目标计算机的名称。
实例:
 

代码示例:

C:\Users\Administrator>tracert www.58.com

Tracing route to www.58.com [221.187.111.30]
over a maximum of 30 hops:

  1     1 ms     1 ms     1 ms  10.58.156.1
  2     1 ms    <1 ms    <1 ms  10.10.10.1
  3     1 ms     1 ms     1 ms  211.103.193.129
  4     2 ms     2 ms     2 ms  10.255.109.129
  5     1 ms     1 ms     3 ms  124.205.98.205
  6     2 ms     2 ms     2 ms  124.205.98.253
  7     2 ms     6 ms     1 ms  202.99.1.125
  8     5 ms     6 ms     5 ms  118.186.0.113
  9   207 ms     *        *     118.186.0.106
 10     8 ms     6 ms    11 ms  124.238.226.201
 11     6 ms     7 ms     6 ms  219.148.19.177
 12    12 ms    12 ms    16 ms  219.148.18.117
 13    14 ms    17 ms    16 ms  219.148.19.125
 14    13 ms    13 ms    12 ms  202.97.80.113
 15     *        *        *     Request timed out.
 16    12 ms    12 ms    17 ms  bj141-147-82.bjtelecom.net [219.141.147.82]
 17    13 ms    13 ms    12 ms  202.97.48.2
 18     *        *        *     Request timed out.
 19    14 ms    14 ms    12 ms  221.187.224.85
 20    15 ms    13 ms    12 ms  221.187.104.2
 21     *        *        *     Request timed out.
 22    15 ms    17 ms    18 ms  221.187.111.30
Trace complete.
 

>>> 查看更多 linux命令实例教程 <<<


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3