【每天一个 Linux 命令】网络相关命令(ifconfig、route、ping、traceroute(1)

**实例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 * * *
[root@localhost ~]# 

说明:

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地址,三个包每次来回所花时间。

netstat命令语法

netstat命令用于显示与IP、TCP、UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况。netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP监听,进程内存管理的相关报告。

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

netstat命令使用示例

实例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  
[root@localhost ~]#

说明:

从整体上看,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  
[root@localhost ~]# 

说明:

显示一个所有的有效连接信息列表,包括已建立的连接(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 
[root@andy ~]# 

说明:

实例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     
[root@andy ~]# 

说明:

实例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
[root@andy ~]# 

说明:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值