netcat経由でファイルを送信する


23

私はこのようなものを使用して、あるコンピューターから別のコンピューターにファイルを送信しています。

ファイルを提供するには(コンピューターA上):

cat something.zip | nc -l -p 1234

ファイルを受信するには(コンピューターBで):

netcat server.ip.here. 1234 > something.zip

私の質問は...私は反対を行うことができますか?コンピューターBにファイルがあり、上記に書いた方法ではなくAに送信したい場合、ファイル(A)を受信するはずのコンピューターを「リッスン」サーバーにし、「送信」しているコンピューターに接続するとします( B)サーバーにファイルを送信しますか?出来ますか?私はそれがあるかもしれないと思うが、私はこれを行う方法がわからない。

上記の説明がめちゃくちゃになった場合:サーバーでファイルを提供し、そこからファイルを取得するのではなく、「サーバー」にファイルを送信するにはどうすればよいですか(上記のように)?


注:あなたが使用している場合ncので、scp遅すぎると暗号化を必要としない、あなたはに切り替えたいことudpcastsuperuser.com/questions/692294/...
unhammer

回答:


37

サーバー(A)で:

nc -l -p 1234 -q 1> something.zip </ dev / null
「送信者クライアント」(B)で:
猫something.zip | netcat server.ip.here 1234


ええ、私はどういうわけか側面を変えなければならないと思いましたが、どうすればいいのか分かりませんでした:)。おかげで、うまくいきます!
フィル

それはかわいいnetcatのトリックです。
-DaveParillo

2
なぜその< /dev/null部分?
törzsmókus

7
netcatはstdinの読み取りとstdoutの書き込みの両方を同時に行うため、stdinから読み取ったものはすべてネットワークに送信し、ネットワークから受信したものはすべてstdoutに出力します。</ dev / nullは、受信したファイルが完了したときに、netcatがコンソールからの入力を無期限に待機せず(とにかく読むべきではありません!)、それがゴブアップしないようにします。実行したい次のコマンドを入力するなど、端末から使用できる入力。
martinwguy

4
持っている場合はpv、「サーバークライアント」をとして操作することをお勧めします。これpv soemthing.zip | ...により、ファイル読み取りの進行状況がパイプに表示されます。
-ThorSummoner

5

注意として、ファイルのアクセス権、所有権、タイムスタンプも保持したい場合は、netcatでtarを使用してディレクトリとファイルの転送を行います。

受信システム:

nc -l -p 12345 -q 1 | tar xz -C /path/to/root/of/tree

送信システムから:

tar czf - ./directory_tree_to_xfer | nc <host name or IP address of receiving system> 12345 

お役に立てば幸いです。


1
回答への追加として適切ですが、別の回答としてではなく、コメントとして残してください。
agtoever

2
このサブボードにRepポイントがないため、上記のコメントを追加できませんでしたので、回答としてそれを提供する必要がありましたが、明らかに、あなたはあなた自身の回答にコメントすることができます。
B.Kaatz

2

コンピューターA: nc -l -p 1234 > filename.txt

コンピューターB: nc server.com 1234 < filename.txt

動作するはずです;)


0

コンピューターBでnetcatの別のインスタンスを開始します。コンピューターAで行ったことを実行しますが、Bから提供します。新しいサーバーに新しいポートを提供します。


私は同じことをしたくない、私はコマンドを何か他のものに変更したい(それが可能かどうかわからない)...私の質問の太字のテキストを見てください。私は何を意味することは、私はB.私はAが入力するためのサーバのリスニングになりたいからサーブしたくないということです...そして、私は聞いてAに非聴いBからファイルの内容を送信したい
フィル・

それはnetcatの仕組みではありません。
DaveParillo

1
受け入れられた答えからわかるように-はい、それはnetcatでも機能する方法です。
フィル

あなたが正しい。毎日新しいことを学びます!
DaveParillo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.