ネットワーク管理、トラブルシューティング、デバッグのためのLinuxシステム管理者ガイド


システム管理者の日常業務には、データセンター内のサーバーとネットワークの構成、保守、トラブルシューティング、および管理が含まれます。管理目的のために設計されたLinuxには多数のツールとユーティリティがあります。

この記事では、Linuxのネットワーク管理に最もよく使用されるコマンドラインツールとユーティリティのいくつかを、さまざまなカテゴリで説明します。一般的な使用例をいくつか説明します。これにより、Linuxでネットワーク管理がはるかに簡単になります。

このリストは、フルタイムのネットワークエンジニアにとっても同様に役立ちます。

ネットワーク構成、トラブルシューティングおよびデバッグツール

ifconfigは、ネットワークインタフェース設定用のコマンドラインインタフェースツールで、システム起動時にインタフェースを初期化するためにも使用されます。サーバーが起動して稼働すると、そのサーバーを使用してIPアドレスをインターフェイスに割り当て、必要に応じてインターフェイスを有効または無効にすることができます。

また、現在アクティブなインターフェイスのステータスIPアドレス、ハードウェア/ MACアドレス、およびMTU(最大伝送ユニット)サイズを表示するためにも使用されます。したがって、ifconfigはデバッグやシステムチューニングの実行に役立ちます。

これはすべてのアクティブなネットワークインターフェースのステータスを表示する例です。

$ ifconfig

enp1s0    Link encap:Ethernet  HWaddr 28:d2:44:eb:bd:98  
          inet addr:192.168.0.103  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::8f0c:7825:8057:5eec/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:169854 errors:0 dropped:0 overruns:0 frame:0
          TX packets:125995 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:174146270 (174.1 MB)  TX bytes:21062129 (21.0 MB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:15793 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15793 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:2898946 (2.8 MB)  TX bytes:2898946 (2.8 MB)

現在利用可能なすべてのインターフェースを一覧表示するには、 up または down のいずれであっても、 -a フラグを使用します。

$ ifconfig -a 	

IPアドレスをインターフェイスに割り当てるには、次のコマンドを使用します。

$ sudo ifconfig eth0 192.168.56.5 netmask 255.255.255.0

ネットワークインターフェイスをアクティブにするには、と入力します。

$ sudo ifconfig up eth0

ネットワークインタフェースを無効化またはシャットダウンするには、と入力します。

$ sudo ifconfig down eth0

ipコマンドは、ルーティング、ネットワークデバイス、インターフェースを表示および操作するためのもう1つの便利なコマンドラインユーティリティです。これは ifconfig や他の多くのネットワークコマンドに代わるものです。 (詳しくは記事「ifconfigとipコマンドの違い」を読んでください。)

次のコマンドは、IPアドレスとネットワークインターフェースに関するその他の情報を表示します。

$ ip addr show

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 28:d2:44:eb:bd:98 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.103/24 brd 192.168.0.255 scope global dynamic enp1s0
       valid_lft 5772sec preferred_lft 5772sec
    inet6 fe80::8f0c:7825:8057:5eec/64 scope link 
       valid_lft forever preferred_lft forever
3: wlp2s0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 38:b1:db:7c:78:c7 brd ff:ff:ff:ff:ff:ff
...

特定のネットワークインターフェースにIPアドレスを一時的に割り当てる( eth0 )には、と入力します。

$ sudo ip addr add 192.168.56.1 dev eth0

割り当てられたIPアドレスをネットワークインターフェースから削除するには( eth0 )、と入力します。

$ sudo ip addr del 192.168.56.15/24 dev eth0

カーネルの現在の隣接テーブルを表示するには、と入力します。

$ ip neigh

192.168.0.1 dev enp1s0 lladdr 10:fe:ed:3d:f3:82 REACHABLE

ifup コマンドはネットワークインターフェースをアクティブにして、データの送受信を可能にします。

$ sudo ifup eth0

ifdown コマンドはネットワークインターフェースを無効にし、データを送受信できない状態に保ちます。

$ sudo ifdown eth0

ifquery コマンドを使用してネットワークインターフェース設定を解析し、現在どのように設定されているかについての質問に対する回答を受け取ることができます。

$ sudo ifquery eth0

ある[ ethtool はネットワークインターフェースコントローラのパラメータとデバイスドライバを照会および変更するためのコマンドラインユーティリティです。以下の例は ethtool の使い方とネットワークインターフェースのパラメータを表示するコマンドを示しています。

$ sudo ethtool enp0s3

Settings for enp0s3:
	Supported ports: [ TP ]
	Supported link modes:   10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Supported pause frame use: No
	Supports auto-negotiation: Yes
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: No
	Advertised auto-negotiation: Yes
	Speed: 1000Mb/s
	Duplex: Full
	Port: Twisted Pair
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	MDI-X: off (auto)
	Supports Wake-on: umbg
	Wake-on: d
	Current message level: 0x00000007 (7)
			       drv probe link
	Link detected: yes

ping( Packet INternet Groper )は通常、ネットワーク上の2つのシステム間の接続をテストするためのユーティリティです(ローカルエリアネットワーク LAN )または<< strong> Wide Area Network ( WAN ))ネットワーク上のノードと通信するには、 ICMP インターネットコントロールメッセージプロトコル)を使用します。

別のノードへの接続性をテストするには、たとえば単にそのIPまたはホスト名を入力します。

$ ping 192.168.0.103

PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data.
64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=0.191 ms
64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.156 ms
64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.179 ms
64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.182 ms
64 bytes from 192.168.0.103: icmp_seq=5 ttl=64 time=0.207 ms
64 bytes from 192.168.0.103: icmp_seq=6 ttl=64 time=0.157 ms
^C
--- 192.168.0.103 ping statistics ---
6 packets transmitted, 6 received, 0% packet loss, time 5099ms
rtt min/avg/max/mdev = 0.156/0.178/0.207/0.023 ms

図のように -c フラグを使用して、指定した数の ECHO_REQUEST パケットの後にpingを終了するように指示することもできます。

$ ping -c 4 192.168.0.103

PING 192.168.0.103 (192.168.0.103) 56(84) bytes of data.
64 bytes from 192.168.0.103: icmp_seq=1 ttl=64 time=1.09 ms
64 bytes from 192.168.0.103: icmp_seq=2 ttl=64 time=0.157 ms
64 bytes from 192.168.0.103: icmp_seq=3 ttl=64 time=0.163 ms
64 bytes from 192.168.0.103: icmp_seq=4 ttl=64 time=0.190 ms

--- 192.168.0.103 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3029ms
rtt min/avg/max/mdev = 0.157/0.402/1.098/0.402 ms

Traceroute は、ローカルシステムから別のネットワークシステムへのフルパスをトレースするためのコマンドラインユーティリティです。そのパスに含まれるホップ数(ルーターIP)をエンドサーバーに到達するまでに表示します。それはpingコマンドの後に使いやすいネットワークトラブルシューティングユーティリティです。

この例では、ローカルシステムからIPアドレスが 216.58.204.46 のGoogleのいずれかのサーバーへのパケットの経路をたどっています。

$ traceroute 216.58.204.46

traceroute to 216.58.204.46 (216.58.204.46), 30 hops max, 60 byte packets
 1  gateway (192.168.0.1)  0.487 ms  0.277 ms  0.269 ms
 2  5.5.5.215 (5.5.5.215)  1.846 ms  1.631 ms  1.553 ms
 3  * * *
 4  72.14.194.226 (72.14.194.226)  3.762 ms  3.683 ms  3.577 ms
 5  108.170.248.179 (108.170.248.179)  4.666 ms 108.170.248.162 (108.170.248.162)  4.869 ms 108.170.248.194 (108.170.248.194)  4.245 ms
 6  72.14.235.133 (72.14.235.133)  72.443 ms 209.85.241.175 (209.85.241.175)  62.738 ms 72.14.235.133 (72.14.235.133)  65.809 ms
 7  66.249.94.140 (66.249.94.140)  128.726 ms  127.506 ms 209.85.248.5 (209.85.248.5)  127.330 ms
 8  74.125.251.181 (74.125.251.181)  127.219 ms 108.170.236.124 (108.170.236.124)  212.544 ms 74.125.251.181 (74.125.251.181)  127.249 ms
 9  216.239.49.134 (216.239.49.134)  236.906 ms 209.85.242.80 (209.85.242.80)  254.810 ms  254.735 ms
10  209.85.251.138 (209.85.251.138)  252.002 ms 216.239.43.227 (216.239.43.227)  251.975 ms 209.85.242.80 (209.85.242.80)  236.343 ms
11  216.239.43.227 (216.239.43.227)  251.452 ms 72.14.234.8 (72.14.234.8)  279.650 ms  277.492 ms
12  209.85.250.9 (209.85.250.9)  274.521 ms  274.450 ms 209.85.253.249 (209.85.253.249)  270.558 ms
13  209.85.250.9 (209.85.250.9)  269.147 ms 209.85.254.244 (209.85.254.244)  347.046 ms 209.85.250.9 (209.85.250.9)  285.265 ms
14  64.233.175.112 (64.233.175.112)  344.852 ms 216.239.57.236 (216.239.57.236)  343.786 ms 64.233.175.112 (64.233.175.112)  345.273 ms
15  108.170.246.129 (108.170.246.129)  345.054 ms  345.342 ms 64.233.175.112 (64.233.175.112)  343.706 ms
16  108.170.238.119 (108.170.238.119)  345.610 ms 108.170.246.161 (108.170.246.161)  344.726 ms 108.170.238.117 (108.170.238.117)  345.536 ms
17  lhr25s12-in-f46.1e100.net (216.58.204.46)  345.382 ms  345.031 ms  344.884 ms

MTRは、 ping traceroute の機能を1つの診断ツールにまとめた最新のコマンドラインネットワーク診断ツールです。その出力は、デフォルトで q を押してプログラムを終了するまで、リアルタイムで更新されます。

次のように mtr を実行する最も簡単な方法は、引数としてホスト名またはIPアドレスを指定することです。

$ mtr google.com
OR
$ mtr 216.58.223.78
tecmint.com (0.0.0.0)                                   Thu Jul 12 08:58:27 2018
First TTL: 1

 Host                                                   Loss%   Snt   Last   Avg  Best  Wrst StDev
 1. 192.168.0.1                                         0.0%    41    0.5   0.6   0.4   1.7   0.2
 2. 5.5.5.215                                           0.0%    40    1.9   1.5   0.8   7.3   1.0
 3. 209.snat-111-91-120.hns.net.in                      23.1%    40    1.9   2.7   1.7  10.5   1.6
 4. 72.14.194.226                                       0.0%    40   89.1   5.2   2.2  89.1  13.7
 5. 108.170.248.193                                     0.0%    40    3.0   4.1   2.4  52.4   7.8
 6. 108.170.237.43                                      0.0%    40    2.9   5.3   2.5  94.1  14.4
 7. bom07s10-in-f174.1e100.net                          0.0%    40    2.6   6.7   2.3  79.7  16.

図のように -c フラグを使用して、 ping の数を特定の値に制限し、それらのpingの後に mtr を終了することができます。

$ mtr -c 4 google.com

route は、LinuxシステムのIPルーティングテーブルを表示または操作するためのコマンドラインユーティリティです。主にインターフェイスを介して特定のホストまたはネットワークへのスタティックルートを設定するために使用されます。

入力すると、Kernel IPルーティングテーブルを表示できます。

$ route

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    100    0        0 enp0s3
192.168.0.0     0.0.0.0         255.255.255.0   U     100    0        0 enp0s3
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0

ルーティングを設定するために使用できる多数のコマンドがあります。ここにいくつかの便利なものがあります:

ルーティングテーブルにデフォルトゲートウェイを追加します。

$ sudo route add default gw <gateway-ip>

ルーティングテーブルにネットワークルートを追加します。

$ sudo route add -net <network ip/cidr> gw <gateway ip> <interface>

ルーティングテーブルから特定のルートエントリを削除します。

$ sudo route del -net <network ip/cidr>

Nmcliは、ネットワークの状態を報告し、ネットワーク接続を管理し、そして NetworkManager を制御するための使いやすいスクリプト可能なコマンドラインツールです。

すべてのネットワークデバイスを表示するには、と入力します。

$ nmcli dev status

DEVICE      TYPE      STATE      CONNECTION         
virbr0      bridge    connected  virbr0             
enp0s3      ethernet  connected  Wired connection 1 

システムのネットワーク接続を確認するには、と入力します。

$ nmcli con show

Wired connection 1  bc3638ff-205a-3bbb-8845-5a4b0f7eef91  802-3-ethernet  enp0s3 
virbr0              00f5d53e-fd51-41d3-b069-bdfd2dde062b  bridge          virbr0 

アクティブな接続だけを見るには、 -a フラグを追加します。

$ nmcli con show -a

ネットワークスキャンおよびパフォーマンス分析ツール

netstatは、Linuxネットワークサブシステムに関する、ネットワーク接続、ルーティングテーブル、インターフェース統計などの有用な情報を表示するコマンドラインツールです。ネットワークのトラブルシューティングやパフォーマンス分析に役立ちます。

さらに、どのプログラムがどのポートでリッスンしているかをチェックするために使用される基本的なネットワークサービスデバッグツールでもあります。たとえば、次のコマンドはリスニングモードのすべてのTCPポートと、どのプログラムがそれらをリスンしているかを表示します。

$ sudo netstat -tnlp

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      1257/master         
tcp        0      0 127.0.0.1:5003          0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:110             0.0.0.0:*               LISTEN      1015/dovecot        
tcp        0      0 0.0.0.0:143             0.0.0.0:*               LISTEN      1015/dovecot        
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      1/systemd           
tcp        0      0 0.0.0.0:465             0.0.0.0:*               LISTEN      1257/master         
tcp        0      0 0.0.0.0:53              0.0.0.0:*               LISTEN      1404/pdns_server    
tcp        0      0 0.0.0.0:21              0.0.0.0:*               LISTEN      1064/pure-ftpd (SER 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      972/sshd            
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      975/cupsd           
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1257/master         
tcp        0      0 0.0.0.0:8090            0.0.0.0:*               LISTEN      636/lscpd (lscpd -  
tcp        0      0 0.0.0.0:993             0.0.0.0:*               LISTEN      1015/dovecot        
tcp        0      0 0.0.0.0:995             0.0.0.0:*               LISTEN      1015/dovecot        
tcp6       0      0 :::3306                 :::*                    LISTEN      1053/mysqld         
tcp6       0      0 :::3307                 :::*                    LISTEN      1211/mysqld         
tcp6       0      0 :::587                  :::*                    LISTEN      1257/master         
tcp6       0      0 :::110                  :::*                    LISTEN      1015/dovecot        
tcp6       0      0 :::143                  :::*                    LISTEN      1015/dovecot        
tcp6       0      0 :::111                  :::*                    LISTEN      1/systemd           
tcp6       0      0 :::80                   :::*                    LISTEN      990/httpd           
tcp6       0      0 :::465                  :::*                    LISTEN      1257/master         
tcp6       0      0 :::53                   :::*                    LISTEN      1404/pdns_server    
tcp6       0      0 :::21                   :::*                    LISTEN      1064/pure-ftpd (SER 
tcp6       0      0 :::22                   :::*                    LISTEN      972/sshd            
tcp6       0      0 ::1:631                 :::*                    LISTEN      975/cupsd           
tcp6       0      0 :::25                   :::*                    LISTEN      1257/master         
tcp6       0      0 :::993                  :::*                    LISTEN      1015/dovecot        
tcp6       0      0 :::995                  :::*                    LISTEN      1015/dovecot        

カーネルルーティングテーブルを表示するには、 -r フラグを使用します(これは上記の route コマンドを実行するのと同じです)。

$ netstat -r

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         gateway         0.0.0.0         UG        0 0          0 enp0s3
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 enp0s3
192.168.122.0   0.0.0.0         255.255.255.0   U         0 0          0 virbr0

ss ソケット統計)は、ソケットを調査するための強力なコマンドラインユーティリティです。ソケットの統計情報をダンプして、 netstat のような情報を表示します。さらに、他の同様のユーティリティと比較して、より多くのTCPおよび状態情報が表示されます。

次の例は、サーバー上で開いているすべての TCP ポート(ソケット)を一覧表示する方法を示しています。

$ ss -ta

State      Recv-Q Send-Q                                        Local Address:Port                                                         Peer Address:Port                
LISTEN     0      100                                                       *:submission                                                              *:*                    
LISTEN     0      128                                               127.0.0.1:fmpro-internal                                                          *:*                    
LISTEN     0      100                                                       *:pop3                                                                    *:*                    
LISTEN     0      100                                                       *:imap                                                                    *:*                    
LISTEN     0      128                                                       *:sunrpc                                                                  *:*                    
LISTEN     0      100                                                       *:urd                                                                     *:*                    
LISTEN     0      128                                                       *:domain                                                                  *:*                    
LISTEN     0      9                                                         *:ftp                                                                     *:*                    
LISTEN     0      128                                                       *:ssh                                                                     *:*                    
LISTEN     0      128                                               127.0.0.1:ipp                                                                     *:*                    
LISTEN     0      100                                                       *:smtp                                                                    *:*                    
LISTEN     0      128                                                       *:8090                                                                    *:*                    
LISTEN     0      100                                                       *:imaps                                                                   *:*                    
LISTEN     0      100                                                       *:pop3s                                                                   *:*                    
ESTAB      0      0                                             192.168.0.104:ssh                                                         192.168.0.103:36398                
ESTAB      0      0                                                 127.0.0.1:34642                                                           127.0.0.1:opsession-prxy       
ESTAB      0      0                                                 127.0.0.1:34638                                                           127.0.0.1:opsession-prxy       
ESTAB      0      0                                                 127.0.0.1:34644                                                           127.0.0.1:opsession-prxy       
ESTAB      0      0                                                 127.0.0.1:34640                                                           127.0.0.1:opsession-prxy       
LISTEN     0      80                                                       :::mysql                                                                  :::*             
...

すべてのアクティブな TCP 接続をそれらのタイマーと一緒に表示するには、次のコマンドを実行します。

$ ss -to

NC(NetCat)は「ネットワークスイスアーミーナイフ」とも呼ばれ、TCP、UDP、またはUNIXドメインソケットに関連するほとんどすべてのタスクに使用される強力なユーティリティです。これは、オープンTCP接続、任意のTCPおよびUDPポートのリッスン、ポートスキャンの実行などに使用されます。

また、リモートデーモンが到達可能かどうかなど、ネットワークデーモンのテスト用の単純なTCPプロキシとして使用することもできます。さらに、 nc とpvコマンドを組み合わせて、2台のコンピュータ間でファイルを転送することもできます。

次の例は、ポートのリストをスキャンする方法を示します。

$ nc -zv server2.tecmint.lan 21 22 80 443 3000

図のようにポートの範囲を指定することもできます。

$ nc -zv server2.tecmint.lan 20-90

次の例では、 nc を使用して server2.tecmint.lan のポート 5000 にTCP接続を開く方法を示します。ポート 3000送信元ポートとして、タイムアウトは 10 秒です。

$ nc -p 3000 -w 10 server2.tecmint.lan 5000 

Nmap(ネットワークマッパー)は、Linuxシステム/ネットワーク管理者にとって強力で非常に用途の広いツールです。これは、単一のホストに関する情報を収集したり、ネットワーク全体を探索するために使用されます。 Nmapは、セキュリティスキャン、ネットワーク監査、リモートホスト上のオープンポートの検索などにも使用されます。

たとえば、ホスト名やIPアドレスを使ってホストをスキャンできます。

$ nmap google.com 

Starting Nmap 6.40 ( http://nmap.org ) at 2018-07-12 09:23 BST
Nmap scan report for google.com (172.217.166.78)
Host is up (0.0036s latency).
rDNS record for 172.217.166.78: bom05s15-in-f14.1e100.net
Not shown: 998 filtered ports
PORT    STATE SERVICE
80/tcp  open  http
443/tcp open  https

Nmap done: 1 IP address (1 host up) scanned in 4.92 seconds

または、図のようにIPアドレスを使用してください。

$ nmap 192.168.0.103

Starting Nmap 6.40 ( http://nmap.org ) at 2018-07-12 09:24 BST
Nmap scan report for 192.168.0.103
Host is up (0.000051s latency).
Not shown: 994 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
902/tcp  open  iss-realsecure
4242/tcp open  vrml-multi-use
5900/tcp open  vnc
8080/tcp open  http-proxy
MAC Address: 28:D2:44:EB:BD:98 (Lcfc(hefei) Electronics Technology Co.)

Nmap done: 1 IP address (1 host up) scanned in 0.13 seconds

nmapコマンドに関する以下の役に立つ記事を読んでください。

  1. How to Use Nmap Script Engine (NSE) Scripts in Linux
  2. A Practical Guide to Nmap (Network Security Scanner) in Kali Linux
  3. Find Out All Live Hosts IP Addresses Connected on Network in Linux

DNS検索ユーティリティ

hostコマンドは、DNSルックアップを実行するための単純なユーティリティです。ホスト名をIPアドレスに、またはその逆に変換します。

$ host google.com

google.com has address 172.217.166.78
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.

dig(ドメイン情報の不正行為)は、A Record、CNAME、MX RecordなどのDNS関連情報を照会するために使用される、もう1つの単純なDNS検索ユーティリティです。

$ dig google.com

; <<>> DiG 9.9.4-RedHat-9.9.4-51.el7 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23083
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 13, ADDITIONAL: 14

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com.			IN	A

;; ANSWER SECTION:
google.com.		72	IN	A	172.217.166.78

;; AUTHORITY SECTION:
com.			13482	IN	NS	c.gtld-servers.net.
com.			13482	IN	NS	d.gtld-servers.net.
com.			13482	IN	NS	e.gtld-servers.net.
com.			13482	IN	NS	f.gtld-servers.net.
com.			13482	IN	NS	g.gtld-servers.net.
com.			13482	IN	NS	h.gtld-servers.net.
com.			13482	IN	NS	i.gtld-servers.net.
com.			13482	IN	NS	j.gtld-servers.net.
com.			13482	IN	NS	k.gtld-servers.net.
com.			13482	IN	NS	l.gtld-servers.net.
com.			13482	IN	NS	m.gtld-servers.net.
com.			13482	IN	NS	a.gtld-servers.net.
com.			13482	IN	NS	b.gtld-servers.net.

;; ADDITIONAL SECTION:
a.gtld-servers.net.	81883	IN	A	192.5.6.30
b.gtld-servers.net.	3999	IN	A	192.33.14.30
c.gtld-servers.net.	14876	IN	A	192.26.92.30
d.gtld-servers.net.	85172	IN	A	192.31.80.30
e.gtld-servers.net.	95861	IN	A	192.12.94.30
f.gtld-servers.net.	78471	IN	A	192.35.51.30
g.gtld-servers.net.	5217	IN	A	192.42.93.30
h.gtld-servers.net.	111531	IN	A	192.54.112.30
i.gtld-servers.net.	93017	IN	A	192.43.172.30
j.gtld-servers.net.	93542	IN	A	192.48.79.30
k.gtld-servers.net.	107218	IN	A	192.52.178.30
l.gtld-servers.net.	6280	IN	A	192.41.162.30
m.gtld-servers.net.	2689	IN	A	192.55.83.30

;; Query time: 4 msec
;; SERVER: 192.168.0.1#53(192.168.0.1)
;; WHEN: Thu Jul 12 09:30:57 BST 2018
;; MSG SIZE  rcvd: 487

Nslookupは、DNSサーバーに対話的にも非対話的にもクエリを実行するための一般的なコマンドラインユーティリティです。 DNSリソースレコード(RR)のクエリに使用されます。図のようにドメインの「A」レコード(IPアドレス)を見つけることができます。

$ nslookup google.com

Server:		192.168.0.1
Address:	192.168.0.1#53

Non-authoritative answer:
Name:	google.com
Address: 172.217.166.78

図のように逆ドメインルックアップを実行することもできます。

$ nslookup 216.58.208.174

Server:		192.168.0.1
Address:	192.168.0.1#53

Non-authoritative answer:
174.208.58.216.in-addr.arpa	name = lhr25s09-in-f14.1e100.net.
174.208.58.216.in-addr.arpa	name = lhr25s09-in-f174.1e100.net.

Authoritative answers can be found from:
in-addr.arpa	nameserver = e.in-addr-servers.arpa.
in-addr.arpa	nameserver = f.in-addr-servers.arpa.
in-addr.arpa	nameserver = a.in-addr-servers.arpa.
in-addr.arpa	nameserver = b.in-addr-servers.arpa.
in-addr.arpa	nameserver = c.in-addr-servers.arpa.
in-addr.arpa	nameserver = d.in-addr-servers.arpa.
a.in-addr-servers.arpa	internet address = 199.180.182.53
b.in-addr-servers.arpa	internet address = 199.253.183.183
c.in-addr-servers.arpa	internet address = 196.216.169.10
d.in-addr-servers.arpa	internet address = 200.10.60.53
e.in-addr-servers.arpa	internet address = 203.119.86.101
f.in-addr-servers.arpa	internet address = 193.0.9.1

Linuxネットワークパケットアナライザ

Tcpdumpは非常に強力で広く使用されているコマンドラインネットワークスニファです。特定のインターフェース上のネットワークを介して送受信されるTCP/IPパケットをキャプチャーして分析するために使用されます。

特定のインターフェースからパケットをキャプチャするには、 -i オプションを使用してそれを指定します。

$ tcpdump -i eth1

tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp0s3, link-type EN10MB (Ethernet), capture size 262144 bytes
09:35:40.287439 IP tecmint.com.ssh > 192.168.0.103.36398: Flags [P.], seq 4152360356:4152360552, ack 306922699, win 270, options [nop,nop,TS val 2211778668 ecr 2019055], length 196
09:35:40.287655 IP 192.168.0.103.36398 > tecmint.com.ssh: Flags [.], ack 196, win 5202, options [nop,nop,TS val 2019058 ecr 2211778668], length 0
09:35:40.288269 IP tecmint.com.54899 > gateway.domain: 43760+ PTR? 103.0.168.192.in-addr.arpa. (44)
09:35:40.333763 IP gateway.domain > tecmint.com.54899: 43760 NXDomain* 0/1/0 (94)
09:35:40.335311 IP tecmint.com.52036 > gateway.domain: 44289+ PTR? 1.0.168.192.in-addr.arpa. (42)

特定の数のパケットをキャプチャするには、 -c オプションを使って必要な数を入力します。

$ tcpdump -c 5 -i eth1

また、後で分析するためにパケットをキャプチャしてファイルに保存することもできます。 -w フラグを使って出力ファイルを指定します。

$ tcpdump -w captured.pacs -i eth1

Wiresharkは、パケット交換ネットワーク内のパケットをリアルタイムでキャプチャおよび分析するための、広く使用されている強力で多用途で使いやすいツールです。

後で検査するために、キャプチャしたデータをファイルに保存することもできます。セキュリティとトラブルシューティングの目的でパケットを監視および検査するために、システム管理者とネットワークエンジニアによって使用されます。

Wiresharkの詳細については、記事「Wiresharkを使用してネットワークパケットを分析する方法に関する10のヒント」をお読みください。

bmonは、Unix系システム用の強力なコマンドラインベースのネットワーク監視およびデバッグユーティリティです。ネットワーク関連の統計情報を取得し、それらを人間にわかりやすい形式で視覚的に印刷します。信頼性が高く効果的なリアルタイム帯域幅モニタおよびレート推定器です。

私たちの記事「bmon - bmonの詳細を学ぶための強力なネットワーク帯域幅監視およびデバッグツール」を読んでください。

Linuxファイアウォール管理ツール

iptablesは、テーブルIPパケットフィルタリングおよびNATルールセットを設定、維持、および検査するためのコマンドラインツールです。 Linuxのファイアウォール(Netfilter)の設定と管理に使用されていました。それはあなたが既存のパケットフィルタルールをリストすることを可能にします。パケットフィルタルールを追加、削除、または修正する。パケットフィルタルールのルールごとのカウンタを一覧表示します。

シンプルで包括的なガイドから、さまざまな目的のために iptables を使用する方法を学ぶことができます。

  1. Basic Guide on IPTables (Linux Firewall) Tips / Commands
  2. 25 Useful IPtable Firewall Rules Every Linux Administrator Should Know
  3. How To Setup an Iptables Firewall to Enable Remote Access to Services
  4. How to Block Ping ICMP Requests to Linux Systems

Firewalldは、 iptables と同じように、Linuxファイアウォール(Netfilter)を管理するための強力で動的なデーモンです。 iptablesのINPUT、OUTPUT、およびFORWARD CHAINSの代わりに「ネットワークゾーン」を使用します。 RHEL/CentOS 7 Fedora 21以降などの現在のLinuxディストリビューションでは、 iptables firewalld に置き換えられています。 。

firewalld を使い始めるには、下記のガイドを参照してください。

  1. Useful ‘FirewallD’ Rules to Configure and Manage Firewall in Linux
  2. How to Configure ‘FirewallD’ in RHEL/CentOS 7 and Fedora 21
  3. How to Start/Stop and Enable/Disable FirewallD and Iptables Firewall in Linux
  4. Setting Up Samba and Configure FirewallD and SELinux to Allow File Sharing on Linux/Windows

UFWは、 Debian および Ubuntu Linuxディストリビューションでよく知られているデフォルトのファイアウォール設定ツールです。システムファイアウォールの有効化/無効化、パケットフィルタリングルールの追加/削除/変更/リセットなどに使用されます。

UFWファイアウォールの状態を確認するには、と入力します。

$ sudo ufw status

UFWファイアウォールがアクティブでない場合は、次のコマンドを使用してアクティブ化または有効化できます。

$ sudo ufw enable

UFWファイアウォールを無効にするには、次のコマンドを使用します。

$ sudo ufw disable 

UFWの詳細については、記事「UbuntuとDebianでUFWファイアウォールを設定する方法」をお読みください。

特定のプログラムに関する詳細情報が必要な場合は、図に示すようにそのマンページを参照してください。

$ man programs_name

それは今のところすべてです!この包括的なガイドでは、Linuxのネットワーク管理、システム管理者向け、およびフルタイムネットワーク管理者/エンジニアにとっても同様に役に立つ、最も使用されているコマンドラインツールとユーティリティのいくつかを紹介しました。

以下のコメントフォームからこのガイドに関するあなたの考えを共有することができます。頻繁に使用される重要なLinuxネットワーキングツール/ユーティリティ、または有用な関連情報を見逃した場合は、ぜひお知らせください。