システム管理者の生活は忙しく、急いで、しばしばイライラします。したがって、本当に必要なのは、簡単に認識でき、状況が悪化したときに別の学習曲線なしですばやく使用できるツールで満たされたツールボックスです。そのようなツールの1つがncat
です。 コマンド。
ncat - Concatenate and redirect sockets
ncat
コマンドには多くの用途がありますが、私が使用するのはネットワーク接続の問題のトラブルシューティングです。それは私がなくてはならない便利で、速くて、そして使いやすいツールです。フォローして、ツールボックスにも追加するかどうかを確認してください。
ncatのmanページから:
Ncatは、コマンドラインからネットワーク間でデータを読み書きする機能満載のネットワークユーティリティです。 NcatはNmapプロジェクトのために作成され、現在分裂しているNetcatの化身のファミリーの集大成です。信頼性の高いバックエンドツールとして設計されており、他のアプリケーションやユーザーにネットワーク接続を即座に提供します。 Ncatは、IPv4およびIPv6で動作するだけでなく、実質的に無制限の数の潜在的な用途をユーザーに提供します。
Ncatの膨大な数の機能の中には、Ncatをチェーン化する機能があります。 TCP、UDP、およびSCTPポートのその他のサイトへのリダイレクト。 SSLサポート;およびSOCKS4、SOCKS5、またはHTTPプロキシを介したプロキシ接続(オプションのプロキシ認証も使用)。
ファイアウォールの問題か何か他のもの?
<ここにネットワークサービスを挿入>をインストールしたばかりで、同じネットワーク上の別のコンピューターから接続することはできません。イライラします。サービスが有効になります。サービスを開始します。正しいファイアウォール例外を作成したと思いますが、それでも応答しません。
トラブルシューティングの生活が始まります。数分から数日、さらには無限に及ぶ可能性のあるもので、問題のトラブルシューティングを試みます。不適切に構成された(または構成されていない)ファイアウォールの例外、NICバインディングの問題、サービスのコードのどこかにあるソフトウェアの問題、サービスの構成ミス、奇妙な互換性の問題、またはネットワークやサービスのブロックに関係のないその他の問題など、さまざまな原因が考えられます。アクセス。これがあなたのシナリオです。明らかな場所をすべてチェックしたら、どこから始めますか?
救助のためのncatコマンド
ncat
コマンドは基本的なLinuxディストリビューションの一部である必要がありますが、そうでない場合は、nmap-ncat
をインストールしてください。 パッケージとあなたはそれの最新バージョンを持っているでしょう。 ncat
を確認してください この簡単なトラブルシューティングの演習以外の多くの機能に興味がある場合は、使用法のマニュアルページ。
ncat
を使用する コマンドを実行すると、TCPリスナーが設定されます。これは、指定されたポートでリモートシステムからの接続を待機するTCPサービスです。次のコマンドは、TCPポート9999でリスニングソケットを開始します。
$ sudo ncat -l 9999
このコマンドは、端末を「ハング」させます。コマンドをバックグラウンドモードにして、&
を使用してサービスデーモンと同様に動作させることができます。 (アンパサンド)信号。プロンプトが返されます。
$ sudo ncat -l 8080 &
リモートシステムから、次のコマンドを使用して接続を試みます。
$ telnet <IP address of ncat system> 9999
次のように試行は失敗するはずです:
Trying <IP address of ncat system>...
telnet: connect to address <IP address of ncat system>: No route to host
これは、元のサービスに接続しようとしたときに受信するメッセージに似ている場合があります。最初に試すことは、ファイアウォールの例外をncat
に追加することです。 システム:
$ sudo firewall-cmd --add-port=9999/tcp
このコマンドを使用すると、ポート9999のTCP要求をポート9999のリスニングデーモンに渡すことができます。
ncat
への接続を再試行してください システム:
$ telnet <IP address of ncat system> 9999
Trying <IP address of ncat system>...
Connected to <IP address of ncat system>.
Escape character is '^]'.
このメッセージは、リモートシステムのリスニングポート9999に接続していることを意味します。切断するには、キーボードの組み合わせ、 CTRL +]を使用します 。 終了と入力します プロンプトに戻ります。
$ telnet <IP address of ncat system> 9999
Trying <IP address of ncat system>...
Connected to <IP address of ncat system>.
Escape character is '^]'.
^]
telnet>quit
Connection closed.
$
切断すると、リモート(ncat)システムのTCPリスニングポートも強制終了されるため、ncat
を再発行するまで、別の接続を試みないでください。 指図。切断するたびにリスニングポートを停止させるのではなく、リスニングポートを開いたままにしておきたい場合は、-k(開いたままにする)オプションを発行します。このオプションは、リスニングポートを存続させます。一部のシステム管理者は、リスニングポートを開いたままにして、セキュリティの問題や他のサービスとのポートの競合を引き起こす可能性があるため、このオプションを使用しません。
$ sudo ncat -k -l 9999 &
ncatが教えてくれること
ncat
のリスニングポートへの接続の成功 システムとは、システムのNICにポートをバインドできることを意味します。ファイアウォールの例外を正常に作成できます。また、リモートシステムからそのリスニングポートに正常に接続できます。パスに沿った障害は、問題のある場所を絞り込むのに役立ちます。
ncatが教えてくれないこと
残念ながら、このトラブルシューティング手法には、バインディング、ポートリスニング、またはファイアウォールの例外に関連しない接続の問題に対する解決策はありません。これは限定された範囲のトラブルシューティングセッションですが、迅速、簡単、そして決定的なものです。私が見つけたのは、ほとんどの接続の問題は、これら3つのうちの1つに要約されるということです。プロセスの次のステップは、サービスパッケージを削除して再インストールすることです。それでも問題が解決しない場合は、別のバージョンのパッケージをダウンロードして、問題がないかどうかを確認してください。動作するリビジョンが見つかるまで、少なくとも2つのリビジョンをさかのぼってみてください。サービスが機能した後は、いつでも最新バージョンに更新できます。
まとめ
ncat
コマンドは便利なトラブルシューティングツールです。この記事では、ncat
の多くの用途のうちの1つの小さな側面にのみ焦点を当てました。 。トラブルシューティングは、科学であると同時に芸術でもあります。あなたはあなたが持っている答えとあなたが持っていない答えを知らなければなりません。すでに機能しているもののトラブルシューティングやテストを行う必要はありません。 ncat
を探索する のさまざまな用途で、接続の問題が以前よりも早く解消されるかどうかを確認します。
[ネットワークが制御不能になっていますか? Red Hatの無料の本、みんなのためのネットワーク自動化をチェックしてください。 ]