リモートで使用できるように、netcatを介してコンソールアプリケーションをパイプまたはリダイレクトできますか?


10

netcatを、新しい接続のためにリスニングとリダイレクトされるように、「パイプ」netcatを通じコンソールアプリケーションのインスタンスにそれが可能であるstdinstdoutのネットワーク接続を介して。


ええ、それはワンライナーでなければならないかもしれません、それは結構です、パイプはそうです。pidでncとパイプを実行中のインスタンスにパイプできるかどうかはわかりません。IPにncして、それをリスニングしているncにパイプし、それをリスニングしているncにパイプし、それをncにパイプしてipに送ることができます。
barlop 2013年

あなたはより多くのIのようなサウンドはもちろんの何ので、私はタイトルを変え/ O リダイレクションではなく、(唯一の移動を扱うパイプの使用出力に一つのプロセスのを入力別の)。
2013年

@Breakthroughパイプとどう違うのですか?彼はIOリダイレクトについて話しているのであって、ファイルについて話しているのではないので、パイプとはどう違うのでしょうか
barlop 2013年

@barlop I / Oリダイレクト(<または>)は、パイピング(|)とは大きく異なりますが、両方を組み合わせて同等の操作を実現できる場合もあります。繰り返しになりますが、I / Oリダイレクトを使用すると、両方のストリームの場所を変更できます。パイピングは、あるプロセスの標準出力を別のプロセスの標準入力にリダイレクトするだけです。
画期的な

@Breakthrough私があなたに尋ねたことを見てください。>と<はファイルを使用するため、パイプとは異なります。しかし、彼はファイルについて話しているのではありません。「その[IOリダイレクト]はパイプとどう違うのですか?彼はファイルについてではなくIOリダイレクトについて話しているので、パイプとはどう違うのですか?」
barlop

回答:


16

まあ、ウィキペディアnetcatドキュメントに記載され-eているように、接続の受信時にプログラムを起動(e xecute)させ、プロセスのstdin、stdout、およびstderrにソケットを接続するオプションがあります。使用例:

nc -l -pport_number -eprogram_name

例は、一般にprogram_nameとして示されている/bin/shbash、使用されています。このオプションを使用すると、基本的には匿名のパスワードなしのアクセスポータルがマシンに開かれるため、お勧めしません。もちろん、これは、シェルよりも能力の低いプログラム(シェルにエスケープする機能を持たないプログラム)を使用し、使用を最小限に抑え、秘密にしておくことで軽減されます。それにもかかわらず、の元の開発者は、このオプションがデフォルトで無効にされ、「GAPING_SECURITY_HOLE」コンパイルオプションで条件付けされているという悪い考えであると強く感じていました。これは、このNetCatチュートリアルおよびその他のドキュメントで簡単に説明されています。netcatnetcat

Google検索の結果、他のStack ExchangeサイトであるStack OverflowServer Faultでこの問題について話し合いました。複数の寄稿者が、-eオプションを使用せずに同じことを行うための次の手法を提供しました(つまり、オプションが無効になっnetcatているバージョンで-e)。

サーバー上:
mkfifopipe_name
nc -l -pport_number <pipe_name   | program_name >pipe_name

クライアント:
nc server_machine_name  port_number

いくつかのメモ:

  • の一部のバージョンではnetcat、が-l意味する-pため-l、ポート番号を正確に言ってから指定する必要があります。
  • ソリューションをwhile trueループでラップすることができます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.