この記事は、「クラウドソーシング」コマンドの推奨事項を中心としたシリーズの最初の記事です。私はコアコントリビューターのグループに彼らのお気に入りの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
いくつかの一般的な使用例を見てみましょう。
基本的な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コマンドです。