GNU/Linux >> Linux の 問題 >  >> Linux

すべてのシステム管理者が知っておくべき7つのLinuxネットワークコマンド

この記事は、「クラウドソーシング」コマンドの推奨事項を中心としたシリーズの最初の記事です。私はコアコントリビューターのグループに彼らのお気に入りのLinuxコマンドは何であるかを尋ねましたが、フィードバックは圧倒的でした。私たちは46の個別のコマンドを受け取り、それらの多くは複数の提出によって強調されました。

このシリーズは、カテゴリ別に分類された完全なリストを表しています。私はこれらの最初の7つのコマンドを「誰もが知っておくべきネットワークコマンド」と呼んでいます。

編集者注 :EvansAmoanyがコマンド情報と例を提供しました。私たちのSudoersの1人であり、才能のある*nix管理者です。ここで重い物を持ち上げてくれたエヴァンスに叫びなさい。

[次のこともお楽しみいただけます:Linuxネットワーキング:netstatの13回の使用]

ip

ip コマンドは、新しいシステムのセットアップやIPの割り当てから既存のシステムのトラブルシューティングまで、すべての管理者が日常業務で必要とする基本的なコマンドの1つです。 ip コマンドは、アドレス情報を表示したり、ルーティングを操作したり、ネットワークのさまざまなデバイス、インターフェイス、トンネルを表示したりできます。

構文は次のとおりです。

ip

OBJECTは概要の最も重要な部分であり、以下がサポートされています(簡潔にするために一部省略されています):

アドレス-デバイス上のプロトコル(IPv4またはIPv6)アドレス。

  • トンネル-IPを介したトンネル
  • route-ルーティングテーブルエントリ
  • ルール-ルーティングポリシーデータベースのルール
  • vrf-仮想ルーティングおよび転送デバイスを管理します
  • xfrm-IPSecポリシーを管理する

ipの一般的な使用例を次に示します。 コマンド。

サーバー上のインターフェースに割り当てられたIPアドレスを表示するには:

[root@server ~]# ip address show 

インターフェースにIPを割り当てるには、たとえば、 enps03

[root@server ~]# ip address add 192.168.1.254/24 dev enps03

インターフェイスのIPを削除するには:

[root@server ~]# ip address del 192.168.1.254/24 dev enps03

インターフェイスをeth0にして、インターフェイスのステータスを変更します オンライン:

[root@server ~]# ip link set eth0 up

インターフェイスをeth0にして、インターフェイスのステータスを変更します オフライン:

[root@server ~]# ip link set eth0 down

eth0 のMTUを変更して、インターフェースのステータスを変更します :

[root@server ~]# ip link set eth0 mtu 9000

eth0 のプロミスキャスモードを有効にして、インターフェースのステータスを変更します :

[root@server ~]# ip link set eth0 promisc on

デバイスeth0で到達できるローカルゲートウェイ192.168.1.254を介して(すべてのアドレスの)デフォルトルートを追加します :

[root@server ~]# ip route add default via 192.168.1.254 dev eth0

192.168.1.254のゲートウェイを経由して192.168.1.0/24へのルートを追加します:

[root@server ~]# ip route add 192.168.1.0/24 via 192.168.1.254

デバイスeth0で到達できる192.168.1.0/24へのルートを追加します :

[root@server ~]# ip route add 192.168.1.0/24 dev eth0

192.168.1.254のゲートウェイ経由で192.168.1.0/24のルートを削除します:

[root@server ~]# ip route delete 192.168.1.0/24 via 192.168.1.254

IP 10.10.1.4でたどったルートを表示します:

[root@server ~]# ip route get 10.10.1.4

ifconfig

ifconfig コマンドは、ネットワークの構成とトラブルシューティングのための多くのシステム管理者のツールベルトの定番でした。その後、ipに置き換えられました 上記のコマンド。ただし、詳細については、以前に公開された記事をここで確認してください。

mtr

MTR(Mattのtraceroute)は、ネットワーク診断およびトラブルシューティングツールとして機能するコマンドラインインターフェイスを備えたプログラムです。このコマンドは、pingの機能を組み合わせたものです およびtraceroute コマンド。 tracerouteのように 、mtr コマンドは、コンピューターから指定されたホストへのルートを表示します。 mtr 応答時間やパーセンテージなど、各ホップに関する多くの統計を提供します。 mtrを使用 コマンドを実行すると、ルートに関する詳細情報が表示され、途中で問題のあるデバイスを確認できるようになります。応答時間の急激な増加やパケット損失が見られる場合は、明らかにどこかに不良リンクがあります。

コマンドの構文は次のとおりです。

mtrホスト名/IP

いくつかの一般的な使用例を見てみましょう。

基本的なmtr コマンドは、時間と損失%を含む各ホップ(ホスト名)を含む統計を表示します:

[root@server ~]# mtr google.com

数値のIPアドレスを表示します(-gを使用する場合 、ホスト名の代わりにIPアドレス(番号)を取得します):

[root@server ~]# mtr -g google.com

数値のIPアドレスとホスト名も表示します:

[root@server ~]# mtr -b google.com

送信するpingの数を設定します:

[root@server ~]# mtr -c 10 google.com

mtrのレポートを取得する コマンド結果:

[root@server ~]# mtr -r -c 10 google.com > mtr-command-google-output

または:

[root@server ~]# mtr -rw -c 10 google.com > mtr-command-google-output

ICMPの代わりにTCPの使用を強制します:

[root@server ~]# mtr –tcp google.com

ICMPの代わりにUDPの使用を強制します:

[root@server ~]# mtr –udp google.com

ホップの最大量を設定します:

[root@server ~]# mtr -m 35 216.58.223.78

パケットサイズを定義します:

[root@server ~]# mtr -r -s 50 google.com

CSV出力に印刷:

[root@server ~]# mtr –csv google.com

XML出力に出力:

[root@server ~]# mtr –xml google.com

tcpdump

tcpdump コマンドは、パケットをキャプチャして表示するために設計されています。

tcpdumpをインストールできます 以下のコマンドで:

[root@server ~]# dnf install -y tcpdump

キャプチャを開始する前に、どのインターフェースtcpdumpを知っている必要があります 使える。この場合、sudoを使用するか、rootアクセス権を持っている必要があります。

[root@server ~]# tcpdump -D

  1 eth0
  2 nflog
  3 nfqueue
  4 usbmon1
  5 any
  6 lo (Loopback)

eth0でトラフィックをキャプチャする場合 、tcpdump -i eth0を使用して開始できます サンプル出力:

[root@server ~]# tcpdump -i eth0
[root@server ~]# tcpdump -i eth0 -c 10

1つのホストとの間のトラフィックをキャプチャする

特定のホストからのトラフィックを除外できます。たとえば、8.8.8.8との間で送受信されるトラフィックを見つけるには、次のコマンドを使用します。

[root@server ~]# tcpdump -i eth0 -c 10 host 8.8.8.8

8.8.8.8からのトラフィックの場合は、次を使用します:

[root@server ~]# tcpdump -i eth0 src host 8.8.8.8

8.8.8.8に向かうアウトバウンドトラフィックには、次を使用します:

[root@server ~]# tcpdump -i eth0 dst host 8.8.8.8

ネットワークとの間のトラフィックをキャプチャする

以下のコマンドを使用して、特定のネットワークとの間のトラフィックをキャプチャすることもできます。

[root@server ~]# tcpdump -i eth0 net 10.1.0.0 mask 255.255.255.0

または:

[root@server ~]# tcpdump -i eth0 net 10.1.0.0/24

ソースまたは宛先のいずれかに基づいてフィルタリングすることもできます。

ソース(からのトラフィック)に基づく:

[root@server ~]# tcpdump -i eth0 src net 10.1.0.0/24

目的地に基づく(行き先の交通量):

[root@server ~]# tcpdump -i eth0 dst net 10.1.0.0/24

ポート番号との間のトラフィックをキャプチャします

DNSポート53トラフィックのみをキャプチャします:

[root@server ~]# tcpdump -i eth0 port 53

特定のホストの場合、

[root@server ~]# tcpdump -i eth0 host 8.8.8.8 and port 53

HTTPSトラフィックのみをキャプチャするには、

[root@server ~]# tcpdump -i eth0 -c 10 host www.google.com and port 443

ポート80と25を除くすべてのポートをキャプチャするには

[root@server ~]# tcpdump -i eth0 port not 53 and not 25

netstat

netstat ネットワーク接続、ルーティングテーブル、インターフェイス統計、マスカレード接続、およびマルチキャストメンバーシップを印刷するためのツール。このユーティリティは、ifconfigと同様に、net-toolパッケージの一部です。 。新しいiproute2パッケージでは、ss ツールは同じ目的を達成するために使用されます。

netstatの場合 システムにが見つからない場合は、次のコマンドでインストールしてください:

[root@server ~]# dnf install net-tools

netstatの主な使用法 パラメータなし:

[root@server ~]# netstat

高度な使用法については、netstatを展開してください オプション付きのコマンド:

netstat <options>

または、オプションを1つずつリストします:

netstat <option 1> <option 2> <option 3>

状態やプロトコルに関係なく、すべてのポートと接続を一覧表示するには、次を使用します。

[root@server ~]# netstat -a

次を実行して、すべてのTCPポートを一覧表示します:

[root@server ~]# netstat -at

すべてのUDPポートを次のように一覧表示します:

[root@server ~]# netstat -au

すべてのプロトコルのリスニングポートのみのリストを返すには、次を使用します。

[root@server ~]# netstat -l

リスニングしているすべてのTCPポートを次のように一覧表示します:

[root@server ~]# netstat -lt

次のコマンドを実行して、リッスンしているUDPポートのみを返します。

[root@server ~]# netstat -lu

UNIXリスニングポートを一覧表示するには、次を使用します。

[root@server ~]# netstat -lx

プロトコルに関係なく、すべてのポートの統計を次のように表示します。

[root@server ~]# netstat -s

次の場合にのみTCPポートの統計を一覧表示します:

[root@server ~]# netstat -st

リストされているPID/プログラム名でTCP接続を表示するには、次を使用します。

[root@server ~]# netstat -tp

特定のポート番号を使用しているプロセスを見つけるには、次のコマンドを実行します。

[root@server ~]# netstat -an | grep ‘:<port number>’

nslookup

nslookupを使用します インターネットネームサーバーにインタラクティブにクエリを実行するユーティリティ。これを使用して、DNSクエリを実行し、ドメイン名やIPアドレス、またはその他の特定のDNSレコードを受信します。

次の一般的な例を検討してください。

ドメインのAレコードを見つけるには:

[root@server ~]# nslookup example.com

ドメインのNSレコードを確認するには:

[root@server ~]# nslookup -type=ns example.com

メール交換を担当するMXレコードを見つけるには:

[root@server ~]# nslookup -query=mx example.com

ドメインで利用可能なすべてのDNSレコードを検索するには:

[root@server ~]# nslookup -type=any example.com

特定のDNSサーバーの使用を確認するには(この場合、特定のネームサーバーns1.nsexample.comを使用してクエリを実行します):

[root@server ~]# nslookup example.com ns1.nsexample.com

DNS AレコードをチェックしてドメインのIPを確認するのは一般的な方法ですが、IPアドレスが特定のドメインに関連しているかどうかを確認する必要がある場合もあります。そのためには、DNSの逆引き参照が必要です。

[root@server ~]# nslookup 10.20.30.40

ping

Pingは、インターネット制御メッセージプロトコル(ICMP)エコー要求メッセージを送信することにより、別のTCP/IPコンピューターへのIPレベルの接続を確認するツールです。対応するエコー応答メッセージの受信が、ラウンドトリップ時間とともに表示されます。 Pingは、接続、到達可能性、名前解決のトラブルシューティングに使用される主要なTCP/IPコマンドです。

単純なping コマンドは、検証するホスト名またはホストIPアドレスの1つのパラメーターのみを取ります。単純なping 例は次のようになります:

[root@server ~]# ping google.com
PING google.com (216.58.206.174) 56(84) bytes of data.
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=1 ttl=56 time=10.7 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=2 ttl=56 time=10.2 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=3 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=4 ttl=56 time=10.4 ms
64 bytes from sof02s27-in-f14.1e100.net (216.58.206.174): icmp_seq=5 ttl=56 time=17.3 ms
^C
--- google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4005ms
rtt min/avg/max/mdev = 10.219/11.844/17.381/2.773 ms

pingを停止する必要があります CTRL + Cを押してコマンドを実行します 。それ以外の場合は、ping あなたがそれを止めるまで。すべてのpingの後 コマンドを実行すると、次の情報を含む要約レポートが表示されます。

  • 最小:あなたの側からpingされたホストからの応答を取得するのにかかる最小時間。
  • 平均:あなたの側からpingされたホストからの応答を取得するのにかかる平均時間。
  • 最大:あなたの側からpingされたホストからの応答を取得するのにかかる最大時間。

また、TimeToLiveの略であるTTLが表示されます。 Pingは、数値のTTL値を使用して、ルートパスを介して特定のホストコンピューターに到達しようとします。これは、ホップ制限とも呼ばれます。

通常、単純なpingを実行すると 追加のパラメータを渡さずにコマンドを実行すると、Linuxはping そのホストは無限の時間です。 pingしたい場合 ホストを10回使用するには、次のコマンドを使用します。

[root@server ~]# ping -c 10 google.com

オプション-qを使用します pingのみを表示するには 統計の要約:

[root@server ~]# ping -c 10 google.com

複数のインターフェースを備えたシステムでは、pingのインターフェースを指定できます 使用するコマンド。システムに両方のeth0がある場合 およびeth1 pingしたい eth0を使用する :

[root@server ~]# ping -I eth0 google.com

または、インターフェースをIPとして10.233.201.45と想定して、インターフェースのアドレスを使用します。

[root@server ~]# ping -I 10.233.201.45 google.com

pingすることもできます IPバージョンをv4またはv6として指定します:

[root@server ~]# ping -4 google.com
[root@server ~]# ping -6 google.com

ホストにpingを実行すると、pingとは異なる出力が表示されます。 次の3つの例を含む結果。

宛先ホストに到達できません

考えられる最善の理由は、ローカルホストシステムから宛先の目的の宛先ホストへのルートがないか、リモートルーターが宛先ホストへのルートがないと報告することです。

リクエストがタイムアウトしました

この結果は、デフォルトの1秒の時間、またはそのホストにpingを実行しているときに設定した時間内にエコー応答メッセージが受信されなかったことを意味します。これは、さまざまな原因が原因である可能性があります。最も一般的なものには、ネットワークの輻輳、ARP要求の失敗、パケットフィルタリング/ファイアウォールなどがあります。

不明なホスト/Pingリクエストでホストが見つかりませんでした

ホスト名のつづりを間違えたか、ホストがネットワークにまったく存在しない可能性があります。

pingごとに0%のパケット損失が必要です 結果として、待ち時間が長くなるか、応答時間が短くなります。使用している伝送媒体(UTP、光ファイバーケーブル、Wi-Fi)に応じて、遅延は異なります。

[無料のチートシート:サーバーとネットワークを管理するためのLinuxユーティリティとコマンドのリストを入手してください。 ]

楽しみにしています

独自のネットワークを構成およびトラブルシューティングするときに、これらのコマンドと例をルーチンに追加する必要があります。このタイプの記事が役に立った場合は、必ず連絡してお知らせください。また、コミュニティコマンドリストのパート2にも注目してください。次は、これなしでは実行できない16の一般的なLinuxコマンドです。


Linux
  1. すべてのLinuxユーザーが知っておくべき10個のコマンド

  2. すべてのLinuxシステム管理者がテーブルにもたらすべき3つのスキル

  3. すべての開発者が知っておくべきLinuxコマンドのリスト

  1. Linuxのサウンドテーマ:すべてのユーザーが知っておくべきこと

  2. 6すべてのシステム管理者が知っておくべきOpenSSLコマンドオプション

  3. 17すべてのシステム管理者が知っておくべきLinuxコマンド

  1. 34すべてのユーザーが知っておくべき基本的なLinuxコマンド

  2. 知っておくべきNginxコマンド

  3. Linux で絶対に実行してはならない 10 の致命的なコマンド