常用ネットワークコマンド(二)


一、pingコマンド
pingコマンドは、ターゲットホストとの接続性をテストするために一般的に使用されるネットワークコマンドです.
ping  :
            -c #: ping    
            -s #: ping    
            -w #:     
            -W #:    ping     
            -f:     。                ,     
            -i   :                  ,         
            -t     :      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  #     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では、あなたのコンピュータからインターネットの反対側のホストまで、どのような経路を歩いているかを知ることができます.もちろん、パケットが同じ出発点(source)から同じ目的地(destination)に到達するたびに経路が異なる場合がありますが、基本的にはほとんどの場合、経路は同じです.linuxシステムではtracerouteと呼ばれ、MS Windowsではtracertと呼ばれています.tracerouteは、目的のデバイスが戻るまで小さなパケットを送信することによって、どのくらいの時間がかかるかを測定する.1つのパス上の各デバイスtracerouteは3回測定します.出力結果には、各テストの時間(ms)とデバイスの名前(あれば)とそのIPアドレスが含まれます.
説明:tracepathコマンドはtracerouteコマンドと似ていますが、root権限は必要ありません.
一般的なオプション:
-m#:              TTL   。

-n:     IP        。

-p#:   UDP         

-q#:             ,    

-r      Routing Table,             

例:
[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にping,traceroute,nslookupの相関特性を組み合わせたネットワーク接続性判断ツールである.
共通パラメータ:
-s:    ping      
--no-dns:  IP       
-a:         IP             IP      
-i:         ICMP          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
 ...

次のレポートの例を示します.
  • 第1列:IPアドレスとローカルドメイン名が表示されます.これはtracerouteと
  • に似ています.
  • 第2列:snt:10毎秒送信パケットの数を設定し、デフォルト値は10でパラメータ-cで指定できます.
  • 第3列:対応するIPのパケット損失率
  • が表示される.
  • 第4列:表示される最近の戻り遅延
  • 第5列:平均値これはpingパケットを送信する平均遅延
  • であるべきである.
  • 第6列:最良または遅延が最も短い
  • 第7列:最悪または遅延が最も一般的な
  • 第8列:標準偏差
  • 四、netstatコマンド
    Netstatコマンドは、IP、TCP、UDP、ICMPプロトコルに関する統計データを表示するために使用されます.一般的に、自機の各ポートのネットワーク接続状況を確認するために使用されます.Netstatは、カーネル内でネットワークおよび関連情報にアクセスするプログラムで、TCP接続、TCPおよびUDPリスニング、プロセスメモリ管理に関するレポートを提供します.
    一般的なオプション:
            -r:      
            -n: numeric,          
            -t: tcp       
            -u: udp       
            -l:            ;  :              ;
            -p:                  ;
            -a:      
            -ta: tcp       
            -s:          
            -e:       ,  uid 
            -c:         ,   netstat  

    例:
    1)リスニングおよび非リスニングを含むすべてのポートが表示されます.
    [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の出力結果は2つの部分に分けることができます.
    1つはActive Internet connectionsであり、アクティブTCP接続と呼ばれ、「Recv-Q」および「Send-Q」は%0 Aの受信キューおよび送信キューを指す.これらの数字は一般的に0であるべきだ.そうでない場合は、パッケージがキューに蓄積されていることを示します.このような状況は非常に少ない状況でしか見られない.
    もう1つはActive UNIX domain socketsで、アクティブUnixドメインソケットインタフェースと呼ばれています(ネットワークソケットと同じですが、ネイティブ通信にのみ使用でき、パフォーマンスが2倍に向上します).Protoは接続に使用されるプロトコルを表示し、RefCntは本ソケットに接続されているプロセス番号を表し、Typesはソケットのタイプを表示し、Stateはソケットの現在の状態を表示し、Pathはソケットに接続されている他のプロセスが使用するパス名を表す.
    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)リスニングポート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)すべてのリスニング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           [::]:*

    説明:リスニングのみを表示するtcpポートはnetstat -tl、リスニングのみを表示するunixポートはnetstat -lx6)すべてのポートの統計を表示する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ポートの統計を表示するnetstat-stまたは-su
    # netstat -st 
    # netstat -su

    8)netstat出力にPIDとプロセス名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出力にホスト、ポート、ユーザー名を表示しない(host,port or user)
    #netstat -an

    10)netstat情報の継続出力
    #netstat -c

    五、ssコマンド
    ssはSocket Statisticsの略です.名前の通り、ssコマンドは、netstatと同様のコンテンツを表示できるsocket統計を取得するために使用できます.しかし、ssの利点は、TCPおよび接続状態に関するより詳細な情報をより多く表示でき、netstatよりも迅速かつ効率的であることである.
    小贴士:どうしてssはnetstatより速いの?
    Netstatは、/procの下にある各PIDディレクトリを巡り、ssは/proc/netの下にある統計を直接読みます.だからss実行時にリソースを消費したり、netstatより時間を消費したりするのは少ないです.
    一般的なオプション:
            -t: tcp    
            -u: udp
            -p: process
            -l: listening
            -n: numeric
            -a: all
            -e:     
            -m:       
            -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)ローカルでxサーバに接続されているプロセスのリスト
    # ss -x src /tmp/.X11-unix/*

    3)列出典FIN-WAIT-1状態の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状態:
    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:      

    5)ssポートフィルタの使用
    ss dport OP PORT
    OP:    
    PORT:    
    dport:        、    sport
    
    OP     :
    <= or le :      >= or ge :     
    == or eq :   
    != or ne :      
     or gt :     

    OPインスタンス:
    ss sport = :http      ss sport = :80
    ss dport = :http
    ss dport \> :1024 #      
    ss sport \> :1024 
    ss sport \