溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

常用網(wǎng)絡(luò)命令(二)

發(fā)布時間:2020-09-11 18:26:47 來源:網(wǎng)絡(luò) 閱讀:1114 作者:YOUNG_GEEK 欄目:系統(tǒng)運維

一、ping命令

ping命令是常用的網(wǎng)絡(luò)命令,它通常用來測試與目標(biāo)主機(jī)的連通性。

ping命令:
            -c #: ping包的個數(shù)
            -s #: ping包的大小
            -w #: 等待時長
            -W #:等待一次ping請求的時長
            -f: 極限檢測。大量且快速地送網(wǎng)絡(luò)封包給一臺機(jī)器,看它的回應(yīng)
            -i 秒數(shù):設(shè)定間隔幾秒送一個網(wǎng)絡(luò)封包給一臺機(jī)器,預(yù)設(shè)值是一秒送一次
            -t 存活數(shù)值:設(shè)置存活數(shù)值TTL的大小

實例:

[root@young ~]# ping -f -c 65535 -s 20000 192.168.1.6 #泛洪***
PING 192.168.1.6 (192.168.1.6) 20000(20028) bytes of data.

[root@young ~]# ping -w 5 192.168.1.1  #指定等待時長5s
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.10 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=1.19 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=1.30 ms
64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=1.23 ms
64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=0.944 ms

--- 192.168.1.1 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 5000ms
rtt min/avg/max/mdev = 0.944/1.156/1.307/0.124 ms

[root@young ~]# ping -c 3 192.168.1.1  #指定次數(shù)為3
PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data.
64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=1.14 ms
64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.858 ms
64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=1.12 ms

--- 192.168.1.1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2006ms
rtt min/avg/max/mdev = 0.858/1.041/1.146/0.135 ms

二、traceroute命令

通過traceroute我們可以知道信息從你的計算機(jī)到互聯(lián)網(wǎng)另一端的主機(jī)是走的什么路徑。當(dāng)然每次數(shù)據(jù)包由某一同樣的出發(fā)點(source)到達(dá)某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。linux系統(tǒng)中,我們稱之為traceroute,在MS Windows中為tracert。 traceroute通過發(fā)送小的數(shù)據(jù)包到目的設(shè)備直到其返回,來測量其需要多長時間。一條路徑上的每個設(shè)備traceroute要測3次。輸出結(jié)果中包括每次測試的時間(ms)和設(shè)備的名稱(如有的話)及其IP地址。

說明:tracepath命令和traceroute命令功能類似,但不需要root權(quán)限。

常用選項:

-m#:設(shè)置檢測數(shù)據(jù)包的最大存活數(shù)值TTL的大小。

-n: 直接使用IP地址而非主機(jī)名稱。

-p#: 設(shè)置UDP傳輸協(xié)議的通信端口

-q#: 設(shè)置每跳檢測包的發(fā)送個數(shù),默認(rèn)三個

-r 忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上

實例:

[root@bash young]# traceroute -m 5 -q 4 -n www.baidu.com  
traceroute to www.baidu.com (115.239.211.112), 5 hops max, 60 byte packets
 1  192.168.1.1  6.188 ms  5.990 ms  5.868 ms  5.753 ms
 2  100.65.0.1  5.638 ms  5.522 ms  6.447 ms  9.321 ms
 3  60.235.65.145  9.133 ms  9.311 ms  9.179 ms  11.035 ms
 4  60.235.64.81  20.402 ms  20.297 ms  20.226 ms  20.573 ms
 5  202.97.40.101  27.015 ms  26.890 ms 202.97.40.149  29.884 ms 202.97.40.141  26.662 ms

三、mtr命令

Mtr是 Linux中有一個網(wǎng)絡(luò)連通性判斷工具,它結(jié)合了ping, traceroute,nslookup 的相關(guān)特性。

常用參數(shù):

-s:用來指定ping數(shù)據(jù)包的大小
--no-dns:不對IP地址做域名解析
-a:來設(shè)置發(fā)送數(shù)據(jù)包的IP地址 這個對一個主機(jī)由多個IP地址是有用的
-i:使用這個參數(shù)來設(shè)置ICMP返回之間的要求默認(rèn)是1秒
-4:IPv4
-6:IPv6

實例:

[root@bash young]# mtr --no-dns 8.8.8.8
                                           My traceroute  [v0.85]
bash (0.0.0.0)                                                          Mon Feb 13 22:35:30 2017
Keys:  Help   Display mode   Restart statistics   Order of fields   quit
                                                                    Packets               Pings
 Host                                        Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.1.1                                0.0%    18    3.3   1.6   0.9   3.3   0.5
 2. 100.65.0.1                                 0.0%    18    5.1   7.0   3.6  19.5   4.5
 3. 60.235.65.141                              0.0%    18    6.1   6.4   5.7   8.8   0.8
 4. 60.235.64.109                              0.0%    18   28.1  22.1  12.5  58.5  13.4
 ...

以上報告示例說明:

  • 第一列:顯示的是IP地址和本機(jī)域名,這點和traceroute很像

  • 第二列:snt:10 設(shè)置每秒發(fā)送數(shù)據(jù)包的數(shù)量,默認(rèn)值是10 可以通過參數(shù) -c來指定。

  • 第三列:是顯示的每個對應(yīng)IP的丟包率

  • 第四列:顯示的最近一次的返回時延

  • 第五列:是平均值 這個應(yīng)該是發(fā)送ping包的平均時延

  • 第六列:是最好或者說時延最短的

  • 第七列:是最差或者說時延最常的

  • 第八列:是標(biāo)準(zhǔn)偏差

四、netstat命令

netstat命令用于顯示與IP、TCP、UDP和ICMP協(xié)議相關(guān)的統(tǒng)計數(shù)據(jù),一般用于檢驗本機(jī)各端口的網(wǎng)絡(luò)連接情況。netstat是在內(nèi)核中訪問網(wǎng)絡(luò)及相關(guān)信息的程序,它能提供TCP連接,TCP和UDP監(jiān)聽,進(jìn)程內(nèi)存管理的相關(guān)報告。

常用選項:

        -r: 顯示路由表
        -n: numeric,數(shù)字格式顯示主機(jī)地址
        -t: tcp協(xié)議相關(guān)的連接
        -u: udp協(xié)議相關(guān)的連接
        -l: 顯示處于監(jiān)聽狀態(tài)的連接;表示:被動打開等待客戶端訪問的服務(wù);
        -p: 顯示連接狀態(tài)中的進(jìn)程程序名和進(jìn)程號;
        -a: 所有的連接
        -ta: tcp相關(guān)的所有連接
        -s: 按各個協(xié)議進(jìn)行統(tǒng)計
        -e: 顯示擴(kuò)展信息,例如uid等
        -c: 每隔一個固定時間,執(zhí)行該netstat命令

實例:

1)顯示列出所有端口 (包括監(jiān)聽和未監(jiān)聽的)

[root@bash young]# netstat -a
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:discp-client  0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:x11             0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:ssh             0.0.0.0:*               LISTEN     
tcp        0      0 localhost:ipp           0.0.0.0:*               LISTEN     
tcp        0      0 localhost:smtp          0.0.0.0:*               LISTEN     
tcp        0     96 192.168.1.6:ssh         192.168.1.105:27443     ESTABLISHED
tcp        0      0 192.168.1.6:59947       116.211.167.193:http    TIME_WAIT  
...
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   Path
unix  2      [ ACC ]     STREAM     LISTENING     20526    private/local
unix  2      [ ACC ]     STREAM     LISTENING     20529    private/virtual
...

說明:

從整體上看,netstat的輸出結(jié)果可以分為兩個部分:

一個是Active Internet connections,稱為有源TCP連接,其中"Recv-Q"和"Send-Q"指%0A的是接收隊列和發(fā)送隊列。這些數(shù)字一般都應(yīng)該是0。如果不是則表示軟件包正在隊列中堆積。這種情況只能在非常少的情況見到。

另一個是Active UNIX domain sockets,稱為有源Unix域套接口(和網(wǎng)絡(luò)套接字一樣,但是只能用于本機(jī)通信,性能可以提高一倍)。 Proto顯示連接使用的協(xié)議,RefCnt表示連接到本套接口上的進(jìn)程號,Types顯示套接口的類型,State顯示套接口當(dāng)前的狀態(tài),Path表示連接到套接口的其它進(jìn)程使用的路徑名。

2) 列出所有 tcp 端口 netstat -at

[root@bash young]# netstat -at
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:discp-client  0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:x11             0.0.0.0:*               LISTEN
...

3)列出所有 udp 端口 netstat -au

[root@bash young]# netstat -au
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 localhost:323           0.0.0.0:*                          
udp6       0      0 localhost:323           [::]:*

4)只顯示監(jiān)聽端口 netstat -l

[root@bash young]# netstat -l
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:discp-client  0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:mysql           0.0.0.0:*               LISTEN     
tcp        0      0 0.0.0.0:x11             0.0.0.0:*               LISTEN

5)只列出所有監(jiān)聽 udp 端口 netstat -lu

[root@bash young]# netstat -lu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
udp        0      0 localhost:323           0.0.0.0:*                          
udp6       0      0 localhost:323           [::]:*

說明:只顯示監(jiān)聽的tcp端口為 netstat -tl,只顯示監(jiān)聽的unix端口為 netstat -lx

6)顯示所有端口的統(tǒng)計信息 netstat -s

[root@bash young]# netstat -s
Ip:
    1409453 total packets received
    0 forwarded
    0 incoming packets discarded
    1262997 incoming packets delivered
    1279112 requests sent out
...

7) 顯示 TCP 或 UDP 端口的統(tǒng)計信息 netstat -st 或 -su

# netstat -st 
# netstat -su

8) 在 netstat 輸出中顯示 PID 和進(jìn)程名稱 netstat -p

[root@bash young]# netstat -tp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0     96 192.168.1.6:ssh         192.168.1.105:27443     ESTABLISHED 45793/sshd: root@pt 
tcp        0      0 192.168.1.6:60000       116.211.167.193:http    TIME_WAIT   -  
...

9) 在 netstat 輸出中不顯示主機(jī),端口和用戶名 (host, port or user)

#netstat -an

10) 持續(xù)輸出 netstat 信息

#netstat -c

五、ss命令

ss是Socket Statistics的縮寫。顧名思義,ss命令可以用來獲取socket統(tǒng)計信息,它可以顯示和netstat類似的內(nèi)容。但ss的優(yōu)勢在于它能夠顯示更多更詳細(xì)的有關(guān)TCP和連接狀態(tài)的信息,而且比netstat更快速更高效。

小貼士:為什么ss比netstat快

netstat是遍歷/proc下面每個PID目錄,ss直接讀/proc/net下面的統(tǒng)計信息。所以ss執(zhí)行的時候消耗資源以及消耗的時間都比netstat少很多

常用選項:

        -t: tcp協(xié)議相關(guān)
        -u: udp
        -p: process
        -l: listening
        -n: numeric
        -a: all
        -e: 擴(kuò)展信息
        -m: 內(nèi)存使用信息
        -o state {established|fin_wait_1|listening|...}

小貼士:ss基本用法同netstat一致下文實例只列出不同用法

實例:

1)ss列出所有http連接中的連接

[root@bash young]# ss -o state established '( dport = :http or sport = :http )'
Netid Recv-Q Send-Q          Local Address:Port                           Peer Address:Port                
tcp   0      0                 192.168.1.6:50036                         118.144.78.39:http                 
tcp   0      0                 192.168.1.6:60218                       116.211.167.193:http                  timer:(keepalive,9.506ms,0)
tcp   0      0                 192.168.1.6:60214                       116.211.167.193:http

說明:以上包含對外提供的80,以及訪問外部的80

2)列出本地哪個進(jìn)程連接到x server

# ss -x src /tmp/.X11-unix/*

3)列出處在FIN-WAIT-1狀態(tài)的http、https連接

[root@bash young]# ss -o state fin-wait-1 '( sport = :http or sport = :https )'
#注意括號里面空格必須存在否則語法報錯
Netid Recv-Q Send-Q          Local Address:Port                           Peer Address:Port

ss常用的state狀態(tài):

established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listen
closing
all : All of the above states
connected : All the states except for listen and closed
synchronized : All the connected states except for syn-sent
bucket : Show states, which are maintained as minisockets, i.e. time-wait and syn-recv.
big : Opposite to bucket state.

4)ss使用IP地址篩選

[root@bash young]# ss src 192.168.1.6
Netid State      Recv-Q Send-Q     Local Address:Port                      Peer Address:Port                
udp   ESTAB      0      0            192.168.1.6:57449                   83.168.200.199:ntp                  
udp   ESTAB      0      0            192.168.1.6:36484                  173.255.215.209:ntp                  
tcp   ESTAB      0      96           192.168.1.6:ssh                      192.168.1.105:27443

說明:

ss src ADDRESS_PATTERN[:PORT]
src:表示來源
ADDRESS_PATTERN:表示地址規(guī)則

5)ss使用端口篩選

ss dport OP PORT
OP:是運算符
PORT:表示端口
dport:表示過濾目標(biāo)端口、相反的有sport

OP運算符如下:
<= or le : 小于等于 >= or ge : 大于等于
== or eq : 等于
!= or ne : 不等于端口
< or lt : 小于這個端口 > or gt : 大于端口

OP實例:

ss sport = :http 也可以是 ss sport = :80
ss dport = :http
ss dport \> :1024 #注意字符轉(zhuǎn)義
ss sport \> :1024 
ss sport \< :32000
ss sport eq :22
ss dport != :22
ss state connected sport = :http
ss \( sport =             
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI