web-dev-qa-db-ja.com

tcpポートをリッスンするためにBusyBoxバージョンのnetcatを使用する

Linux組み込みボックス内の任意のポートをリッスンする必要があります。とにかく暗号化されていない接続用であり、カスタマイズされたLinux OSを実行しているLinuxボックスのため、開いているポートが少ないため、ポート6660を選択しました。 netcat(コマンドラインのnc)がそのための最も簡単ですぐに使えるソリューションであることがわかったので、その目的のためにCプログラムのプログラミングを開始する必要はありません。

私はなんとかコマンドとオプションを把握し、次のように別のPCから自分のPCでプレーンテキストを聞く最も簡単な方法を実装しました。

sven@sven:~$ nc 192.168.4.110 6660
sven@sven:~$ hello there!
anotherUser@userg:~$ nc -l -p 6660
anotherUser@userg:~$ hello there!

しかし、その場合、netcatツールはそのLinuxボックスのbusyboxパッケージに付属しています。そして、ポートをリッスンする方法の構文がどうなるかわかりません(たとえば6660)。私はいつも同じダイアログを受け取ります:

~ # nc -l -p 6660
BusyBox v1.17.1 (Debian 1:1.17.1-8) multi-call binary.
Usage: nc [IPADDR PORT]    
Open a pipe to IP:PORT

また、リスニングを実装する他の多くの方法を試しましたが、それを実行できません。私は少なくともそれは私に何かオプションを与えると思いますか?また

nc -h

または

nc --help

「マイナス」オプションを与えないでください

しかし、Linux組み込みボックスから私のPCにテキストを送信することは機能します:

~ # nc 192.168.4.130 6660
fsdf
tere
^C
~ #
sven@sven:~$ nc -l -p 6660
fsdf
tere

Linux組み込みボックスには、同じローカルネットワーク内に完全に機能するネット接続があり、既存のeth0およびloリンクがあります

eth0      Link encap:Ethernet  HWaddr D0:E3:47:00:03:5F  
          inet addr:192.168.4.179  Bcast:192.168.4.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:28046281 errors:0 dropped:0 overruns:0 frame:0
          TX packets:428464 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2458890234 (2.2 GiB)  TX bytes:83021395 (79.1 MiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:2282 errors:0 dropped:0 overruns:0 frame:0
          TX packets:2282 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:444956 (434.5 KiB)  TX bytes:444956 (434.5 KiB)

Töövõite!

10
arapEST

busyboxのnc実装のマニュアルページです

正しい構文は

nc -l -p <port>

問題は、busyboxのバージョンがncリスニング機能なしでコンパイルされていることだと思います。確かに、ビルド時に構成オプションがあります、NC_SERVER、その機能をオンにするには有効にする必要があります。

おそらく このバージョン から別のncを構築し、バイナリを組み込みホストにコピーできますか?クロスコンパイラ環境を構築する必要があるかもしれません。

14
jmtd