Netcat を使用したファイル転送
このステップでは、netcat を使用してシステム間でファイルを転送する方法を学びます。これは、単純なテキスト通信を超えた netcat の多用途性を示す実用的なアプリケーションです。
ファイル転送における Netcat の理解
Netcat は、次の方法でコンピューター間でファイルを転送するために使用できます。
- 送信側のファイルからの入力をリダイレクトする
- 受信側のファイルへの出力をリダイレクトする
このアプローチでは、FTP や SCP などの追加のプロトコルは必要ありません。そのため、これらのツールが利用できないシナリオで役立ちます。
受信側の設定
まず、ファイルを受け入れる受信側を設定しましょう。ターミナルを開き、次を実行します。
nc -l -p 7000 > received_file.txt
このコマンドは次のとおりです。
- ポート 7000 でリッスンサーバーを設定します
- 受信したすべてのデータを
received_file.txt という名前のファイルにリダイレクトします
送信するテストファイルの作成
送信する前に、転送するサンプルファイルを作成しましょう。新しいターミナルで、次を実行します。
echo "This is a test file that will be transferred using netcat." > original_file.txt
echo "Netcat can be used for simple file transfers between systems." >> original_file.txt
echo "This demonstrates a practical use case of the nc command." >> original_file.txt
## View the file contents to confirm
cat original_file.txt
ターミナルにファイルの内容が表示されるはずです。
ファイルの送信
次に、ファイルをレシーバーに送信しましょう。ファイルを作成したのと同じターミナルで、次を実行します。
cat original_file.txt | nc localhost 7000
このコマンドは次のとおりです。
cat を使用して original_file.txt の内容を読み取ります
- この内容を netcat にパイプ (
|) します
- Netcat はデータをポート 7000 の localhost に送信します
転送はすぐに実行されます。転送が完了すると、送信側の netcat プロセスは自動的に終了しますが、受信側はさらに多くのデータを待機し続けます。
転送の検証
ファイルの送信が完了したら、受信側のターミナルで Ctrl+C を押して接続を閉じます。次に、ファイルが正しく転送されたことを確認しましょう。
cat received_file.txt
元のファイルと同じ内容が表示されるはずで、転送が成功したことを確認できます。
ファイルの比較
転送が完璧であることを確認するために、2 つのファイルを比較できます。
diff original_file.txt received_file.txt
出力がない場合、ファイルは同一であり、転送は成功したことを意味します。
このファイル転送方法は、ローカルマシンだけでなく、ネットワーク上の異なるコンピューター間でも機能します。localhost をリモートマシンの IP アドレスまたはホスト名に置き換えるだけです。
この手法は、従来のファイル転送ツールが利用できない、または制限されている環境で特に役立ち、netcat をシステム管理者のツールキットで貴重なツールにします。