Linuxコマンドラインでネットワークを効率的に管理する方法


前言


日常の仕事の中で、私达のよく使うLinuxサーバーのオペレーティングシステム、ネットの设备の情报を表示するのに関わらず、ネットのインタフェースを管理して、ファイルをダウンロードして、ネットの问题をデバッグしてそれともネットの统计のデータを表示して、すべて端末の下で命令で完成することができます.

ifconfig / ip a


コマンドifconfigはip aと同様に、ネットワークインタフェースの構成、チューニングなどの様々なオプションを出力するために使用され、IPアドレスや他のネットワークインタフェースの情報を簡単に表示したり、有効なすべてのネットワークインタフェースの状態、名前、またはネットワークインタフェースの名前を指定してインタフェースの情報を表示したりすることができます.
# ip a
# ifconfig
# ifconfig ens32

ifdown / ifup


ifdownとifupはコマンドifconfig downとifconfig upの機能と一致しており、主に指定したネットワークインタフェース名に有効または無効の状態を操作するために使用され、Ubuntuではroot権限が必要でsudoを使用して実行することができます.
# sudo ifdown eth0
# sudo ifup eth0

ping


pingは指定したIPアドレスにメッセージを送信し、接続性をテストすることができ、-cパラメータを使用して、メッセージパケットを送信する個数を指定することができます.
pingコマンドを実行するとICMP転送プロトコルが使用されます.
ping通が出力要求応答を行う情報、pingが通じない場合、ルーティングや拒否などの相関性のない応答情報が表示され、出力情報に基づいて具体的なネットワーク状況を解決することができる.
# ping -c 4 www.baidu.com

tracepath/tracerouteコマンド


tracepathはtracerouteコマンド機能と類似しており、root権限は必要ありません.
Ubuntuはtracepathコマンドがプリインストールされており、tracerouteコマンドはプリインストールされていません.
tracepathコマンド:指定した宛先アドレスへのネットワークパスを追跡し、各パス上の各ホップアドレス情報を出力することができ、ネットワークに問題が発生したり遅くなったりした場合、tracepathコマンドを使用してネットワークがどこで切れたか、遅くなったかを検出することができます.
tracerouteコマンド:ネットワークパケットのルーティングパスを追跡します.パケットサイズのプリセットは40 Bytesです.パケットは1つの出発点から1つの目的地まで、ルーティング経路が異なる場合がありますが、ほぼ同じです.
# tracepath www.baidu.com
# traceroute www.baidu.com

mtrコマンド


mtrコマンド:pingコマンドとtracepathコマンドを1つにしました.
mtrは発注を継続し、Host Addressとジャンプごとにpingする時間などを表示します.
# mtr www.github.com

キーqまたはctrl+cを押して終了します.

ifplugstatus


Ubuntuオペレーティングシステムにはこのコマンドがインストールされていません.次のコマンドでインストールできます.
# sudo apt install ifplugd

ifplugstatusコマンド:すべてのネットワークインタフェースのステータスを表示するか、ネットワークインタフェースを指定します.
# ifplugstatus
lo: link beat detected
ens32: link beat detected

# ifplugstatus ens32
ens32: link beat detected

curl/wgetコマンド


curlまたはwgetコマンドを使用すると、端末で直接ファイルをダウンロードできます.
curlは、-Oがファイルパスに続くパラメータオプションを追加する必要があります.
# curl -O http://www.freelogovectors.net/wp-content/uploads/2016/12/ubuntu_logo.png
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   282  100   282    0     0    156      0  0:00:01  0:00:01 --:--:--   156

# ll | grep ubuntu_logo.png 
-rw-r--r--  1 root     root          282 10  29 16:49 ubuntu_logo.png

wgetはパラメータオプションを必要とせず、ダウンロードしたファイルは現在のディレクトリの下に保存されます.
# wget http://www.freelogovectors.net/wp-content/uploads/2016/12/ubuntu_logo.png

# ll | grep ubuntu_logo.png 
-rw-r--r--  1 root     root        95737 12  13  2016 ubuntu_logo.png

ホストコマンド


hostコマンド:DNSクエリーに使用します.hostコマンド:DNSクエリーに使用します.
コマンドパラメータがドメイン名の場合、コマンドは関連するIPを出力します.コマンドパラメータがIPの場合、コマンドは関連するドメイン名を出力します.
# host www.sina.com
# host IP Address

whoisコマンド


whoisコマンド:指定したサイトのwhoisレコードなどの情報を出力します.
# whois www.github.com

Netstatコマンド


Netstatコマンド:開いているsocketとルーティングテーブルを含むネットワークインタフェースの統計を表示します.
-p:開いているsocketに対応するプログラムを表示できます.
# netstat -p
  Internet   (w/o    )
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 jacktian-virtual-ma:ssh 192.168.1.124:44284     ESTABLISHED 4285/sshd: root@pts 
   UNIX     (w/o    )
Proto RefCnt Flags       Type       State         I-Node   PID/Program name       
unix  2      [ ]                            59572    4296/systemd         /run/user/0/systemd/notify
unix  2      [ ]                            49351    3344/systemd         /run/user/1000/systemd/notify
unix  3      [ ]                            19222    1/init               /run/systemd/notify

-s:すべてのポートの詳細を表示します.
# netstat -s
Ip:
    Forwarding: 2
    30932 total packets received
    2 with invalid headers
    11 with invalid addresses
    0 forwarded
    0 incoming packets discarded
    30911 incoming packets delivered
    18611 requests sent out
    22 outgoing packets dropped
Icmp:
    5499 ICMP messages received
    3 input ICMP message failed
    ICMP    
        destination unreachable: 141
        timeout in transit: 5354
        echo requests: 2
        echo replies: 2
    7523 ICMP messages sent
    0 ICMP messages failed
    ICMP    
        destination unreachable: 145
        echo requests: 7376
        echo replies: 2

たとえば、各パラメータと組み合わせて、22ポートの情報を表示します.
# netstat -anpt | grep 22
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      979/sshd            
tcp        0     36 192.168.1.142:22        192.168.1.124:44284     ESTABLISHED 4285/sshd: root@pts 
tcp6       0      0 :::22                   :::*                    LISTEN      979/sshd