라우터의 펌웨어를 변경했는데 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: