ルータのファームウェアを変更しましたが、unanme -a
結果は次のとおりです。
Linux RT-AC86U-8458 4.1.27 #2 SMP PREEMPT Fri Aug 6 18:32:35 EDT 2021 aarch64 ASUSWRT-Merlin
私はSSHを介してルーターにログインし、このホストからネットワーク上の他のホストにUDPパケットを送信する方法を理解しようとしています。
私が試した方法は次のとおりです(すべて失敗)。
echo -n "hello world" | /dev/udp/serverip/15243
# /dev/udp/ doesnt exist
# or
echo -n "hello world" | nc -4u -w0 serverip 15243
# fails with 4 being an invalid option
# or
echo -n "hello world" | nc -u -c serverip 15243
# fails with u being an invalid option
このホストからUDPパケットを送信するにはどうすればよいですか?
答え1
簡単なナビゲーションセッションASUSWRT - Merlin GitリポジトリASUSWRT-Merlinの使用について教えてくださいビジボックスバージョン1.25.1実装にnc
。
BusyBoxの現在のアップストリームバージョンは1.34.1です。この記事を書く時点で。
より具体的には、ASUSWRT-Merlinは以前のバージョンのBusyBoxを使用しているようです。ENABLE_NC_110_COMPAT
このオプションなしで構成nc
、コマンドにUDPサポートと他のいくつかの点を追加します。
CONFIG_NC=y
# CONFIG_NC_SERVER is not set
CONFIG_NC_EXTRA=y
# CONFIG_NC_110_COMPAT is not set
上記のコードスニペットの最後の行を変更CONFIG_NC_110_COMPAT=y
してBusyBoxコンポーネントまたはASUSWRT-Merlinファームウェア全体を再構築すると、必要な機能が得られます。
しかし、Steffen Ullrichが述べたように、ASUSWRT-Merlinには以下も含まれています。ソカット。努力する:
echo -n "hello world" | socat - UDP:serverip:15243
socat
UDPを使用するさまざまなモードがあります。たとえば、 を使用することがうまくいかUDP:
ない場合は、UDP-DATAGRAM:
代わりに or を試すことができます。UDP-SENDTO: