Linuxネットワークのトラブルシューティング用のスイスアーミーナイフ
元:張小王 高性能サーバー開発 5月7日
NCは 、すなわち N-らC非常に強力なネットワークの問題、トラブルシューティング、それらがネットワークパフォーマンス部門、「スイスアーミーナイフ」と呼ばれていたときにATコマンドは、このツールは非常に便利です、読者が把握することが確実です。デフォルトのシステムにはこのコマンドがありません。インストールする必要があります。インストール方法:
yum install nc
nc コマンドの一般的な使用法は、他のクライアントが接続するサーバープログラムをシミュレートしたり、他のサーバーに接続するクライアントをシミュレートしたりすることです。接続後にデータを送受信できます。それらを1つずつ紹介しましょう。
-
サーバープログラムをシミュレートする
使い方 -l オプション(ワード リットル istenの最初の文字)は、IPアドレスとポート番号になるように、他のクライアント接続をリスニングサービスを開きます。通常、より詳細な情報を表示するには、 -v オプションを使用します。
次に例を示します。
[root@iZ238vnojlyZ ~]# nc -v -l 127.0.0.1 6000 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Listening on 127.0.0.1:6000
このように 6000 ポートがリスニングサーバを開き、私たちができる 127.0.0.1:6000 まで接続、あなたのマシンがネットワークの外部からアクセスできる場合、あなたが使用することができ 0.0.0.0 ようなリスナーのアドレスを、例:
[root@iZ238vnojlyZ ~]# nc -v -l 0.0.0.0 6000 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Listening on 0.0.0.0:6000
-
クライアントプログラムをシミュレートする
nc コマンドを使用し てクライアントプログラムをシミュレートする場合、-l オプションを使用する必要はありません 。IPアドレス(またはドメイン名、nc コマンドはドメイン名を自動的に解決できます)とポート番号を書き込むだけです。例は次のとおりです。
## 连接百度 web 服务器 [root@iZ238vnojlyZ ~]# nc -v www.baidu.com 80 Ncat: Version 6.40 ( http://nmap.org/ncat ) Ncat: Connected to 115.239.211.112:80.
出力により、Baidu Webサーバーに正常に接続するように求められます。
クライアントがサーバーに接続すると、オペレーティングシステムはサーバーに接続するために使用可能なポート番号をランダムに割り当てます 。nc コマンドをクライアントとして使用する場合、 -p オプションを使用して、サーバーへの接続に使用するポート番号を指定できます。ポートはBaiduのWebサーバーに接続されています。次のように入力できます。
[root@iZ238vnojlyZ ~]# nc -v -p 5555 www.baidu.com 80
Ncat: Version 6.40 ( http://nmap.org/ncat )
Ncat: Connected to 115.239.211.112:80.
別のシェルウィンドウを開き、上記で紹介したlsof コマンドを使用して、 ポート5555を介してBaidu Webサーバーに実際に接続されていることを 確認し ます。
[root@iZ238vnojlyZ ~]# lsof -Pni | grep nc
nc 32610 root 3u IPv4 113369437 0t0 TCP 120.55.94.78:5555->115.239.211.112:80 (ESTABLISHED)
結果は確かに私たちが期待したものです。
もちろん、 nc コマンドを使用してピアとの接続を確立すると、メッセージを送信できます。特定の例を通してこのプロセスを説明しましょう
-
nc -v -l 0.0.0.0 6000を使用し てリスニングサービスをシミュレートし、新しいシェルウィンドウを作成してnc -v 127.0.0.1 6000を使用し てクライアントプログラムをシミュレートし、今すぐサーバーに接続します。
-
このとき、クライアントとサーバーは相互にメッセージを送信できます。IMソフトウェアチャット効果の簡易バージョンを実現できます。
クライアント効果:
サーバー側の影響:
ncコマンドを使用して誤ってメッセージを送信した場合は、Ctrl + Backspace を使用してメッセージ を削除できます。
nc コマンドはデフォルト で各メッセージの終わりとして\ nになります -C オプションを指定すると 、\ r \ nが メッセージの終わりとして使用さ れます。
nc コマンドは、メッセージを送信できるだけでなく、ファイルも送信できます。デモもしましょう:
ファイルを受信する側はサーバーであり、ファイルを送信する側はクライアントであることに注意してください。
-
サーバー側コマンド:
nc -l ip地址 端口号 > 接收的文件名
-
クライアントコマンド:
nc ip地址 端口号 < 发送的文件名
サーバー側の影響:
クライアント効果:
注:ここでは、クライアントがindex.htmlと呼ばれるファイルを送信し 、サーバー側 がそれをxxx.htmlというファイル名で保存します。 つまり、サーバー側は、受信したファイル名を保存するときにクライアントから送信されたファイル名を必ずしも使用しません。
上記の概要によると、独自のサーバーまたはクライアントプログラムをデバッグする必要があり、対応するピアを開発したくない場合は、nc コマンドを使用してシミュレーションできます 。
もちろん、nc コマンドは非常に強力であり、その機能はこのセクションで紹介されているものとは異なります。興味がある場合は 、詳細についてnc manマニュアルを参照してください。