コマンド ラインを使用して、Netcat を使用してネットワーク接続されたコンピュータ間でデータを送信する

Anonim

Netcat は強力なコマンド ライン ツールであり、TCP/IP を使用してネットワーク接続を介してデータを読み書きできます。一般的に、リレー、ファイル転送、ポート スキャンなどに使用されます。 netcat の起源は UNIX と Linux の世界ですが、netcat は Mac OS X にも組み込まれています。ネットワークに接続された 2 台のコンピューター間でデータやその他のテキストを送信する簡単な方法として nc ユーティリティを使用します。netcat を使用してかなり単純なクライアントとサーバーの関係でデータを送信することにより、ユーザーがデータの送受信中にコマンド ラインにとどまりたい場合や、SSH または SFTP を介した接続ができない場合に、従来のファイル共有に代わるより迅速な代替手段を提供できる可能性があります。実用的です。

netcat はログインや認証を必要としないことに注意してください。唯一の要件は、クライアントがサーバーの IP アドレスとリスニング ポート番号を認識していることです。これは明らかにセキュリティの悪用の可能性を高めます。したがって、netcat を使用してデータやテキストを送信することは、一般的に上級ユーザー向けか、リスクがほとんどない保護されたローカル ネットワークの背後でのみ使用するのが最適です。セキュリティが重視される状況では、SSH を使用した方がよいでしょう。

わかりやすくするために、netcat をリッスンしているコンピュータ 1 を「サーバー」と呼び、コンピュータ 1 にデータを送信するコンピュータ 2 を「クライアント」と呼びます。

サーバー (コンピューター 1) とポートでリッスンするように Netcat を設定する

netcat を起動してポート 2999 でリッスンし、受信したデータを次のコマンド文字列で「received.txt」という名前のファイルにリダイレクトします:

nc -l 2999 > received.txt

クライアントに移動する前に、ローカル ネットワークで Mac の IP アドレスを取得する必要があります。これは、ネットワーク コントロール パネルから取得できます。または、既にターミナルにいる場合は、コマンド ラインから次の構文を使用して取得できます。

ipconfig getifaddr en0

Wi-Fi のみを備えた最新の Mac は en0 を使用し、イーサネットと Wi-Fi を備えた Mac は en1 を使用する場合があります。一方が何も表示されない場合は、もう一方のインターフェイスを試して LAN IP を取得してください。この Mac の IP が「192.168.1.101」と報告されていると仮定しましょう。もちろん、あなたの IP は異なる可能性があります。データを送信するには、クライアント コンピューターでこれが必要になります。これについては、次に説明します。

クライアント (コンピューター 2) からリッスン サーバーにデータをパイプする

データを送信したいクライアントで、次のようなコマンドを使用できます。 cat を使用して、ネットワーク経由でリッスンしている netcat サーバーにテキスト ファイルをダンプしますが、必要なものは何でもパイプすることができます:

cat sendthisdataover.txt | nc 192.168.1.101 2999

これが正しく機能するためには、サーバーから取得した自分の IP アドレスを必ず入力し、送信したい適切なファイルまたはテキストを cat してください。

ローカルネットワークがわずかでも高速であると仮定すると、データはすぐにではなくても非常に高速に到着するはずです。データ転送が完了すると、接続の両側が停止し、サーバーはリッスンを停止し、ポートを閉じます。これにより、ログ ファイルや大きなテキスト ドキュメントなどの 1 回限りのデータの送信には効果的ですが、多数のファイルを移動する場合は必ずしも実用的ではありません。

. netcat.

. Mac と PC の間でクロス プラットフォームを使用する場合は、Mac と入力を共有するか、無料の Synergy ユーティリティを使用します。どちらも、ユーザーはクリップボードのデータだけでなく、マウスやキーボードなどの入力デバイスも共有できます。

記録のために、このデモンストレーションは OS X を搭載した 2 台の Mac で示されていますが、netcat を使用して Mac と Linux マシン間でデータを送信したり、その逆を行ったりできない理由はありません。

netcat には他にもたくさんのすばらしい使い方があります。お気に入りがあれば、コメントでお知らせください!

コマンド ラインを使用して、Netcat を使用してネットワーク接続されたコンピュータ間でデータを送信する