标签: busybox

使用BusyBox版本的netcat来监听tcp端口

我需要在Linux嵌入式盒子里面听一些任意的端口.我选择了端口6660,因为它无论如何都是用于未加密的连接,并且由于运行自定义Linux操作系统的Linux机箱没有很多端口打开.我发现netcat(命令行上的nc)将是最容易和最好的解决方案,所以我不必为此目的开始编写一些C程序.

我设法掌握了命令和选项,我实现了最简单的方法来从另一台PC上在我的电脑上听取纯文本,如下所示:

sven@sven:~$ nc 192.168.4.110 6660
sven@sven:~$ hello there!
anotherUser@userg:~$ nc -l -p 6660
anotherUser@userg:~$ hello there!
Run Code Online (Sandbox Code Playgroud)

但是案例是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
Run Code Online (Sandbox Code Playgroud)

此外,我还尝试了许多其他方法来实现听力,但无法完成.我假设至少会给我任何选择吗?也

nc -h
Run Code Online (Sandbox Code Playgroud)

要么

nc --help
Run Code Online (Sandbox Code Playgroud)

不要给任何"减号"选项

但是将文本从Linux嵌入式盒子发送到我的PC可以工作:

~ # nc 192.168.4.130 6660
fsdf
tere
^C
~ #
sven@sven:~$ nc -l -p 6660
fsdf
tere
Run Code Online (Sandbox Code Playgroud)

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 …
Run Code Online (Sandbox Code Playgroud)

linux port listener netcat busybox

10
推荐指数
1
解决办法
3万
查看次数

Alpine Linux处理证书的方式与Busybox不同吗?

我开始使用基本映像errordeveloper/oracle-jdk.此Dockerfile显示在此处供参考:

FROM        progrium/busybox 
MAINTAINER  Ilya Dmitrichenko <errordeveloper@gmail.com>

RUN opkg-install curl ca-certificates

ENV JAVA_HOME /usr/jdk1.8.0_31

RUN curl \
  --silent \
  --location \
  --retry 3 \
  --cacert /etc/ssl/certs/GeoTrust_Global_CA.crt \
  --header "Cookie: oraclelicense=accept-securebackup-cookie;" \
  "http://download.oracle.com/otn-pub/java/jdk/8u31-b13/jdk-8u31-linux-x64.tar.gz" \
    | gunzip \
    | tar x -C /usr/ \
    && ln -s $JAVA_HOME /usr/java \
    && rm -rf $JAVA_HOME/src.zip $JAVA_HOME/javafx-src.zip $JAVA_HOME/man

ENV PATH ${PATH}:${JAVA_HOME}/bin

ENTRYPOINT [ "java" ]
CMD [ "-version" ]
Run Code Online (Sandbox Code Playgroud)

我想把它移到Alpine Linux,所以做了以下更改:

FROM        alpine
MAINTAINER  Ilya Dmitrichenko <errordeveloper@gmail.com>

RUN apk --update upgrade && apk add …
Run Code Online (Sandbox Code Playgroud)

certificate busybox docker alpine-linux

10
推荐指数
1
解决办法
1万
查看次数

如何从灰壳重新启动?

如何从灰壳重新启动?

我有一个Ubuntu系统,由于某种原因目前是砖砌的(与这个问题无关),这意味着我启动了一个BusyBox灰壳.但是exit命令会蹲下,重置是无关紧要的.必须有比电源按钮更好的重启方式,对吗?

busybox ash

9
推荐指数
3
解决办法
3万
查看次数

在shell中为实用程序构建参数的便携方式?

我正在编写一个shell脚本,可以在各种机器上运行.其中一些机器有bash 2或bash 3.有些运行BusyBox 1.18.4 bin/bash但存在

  • /bin/bash --version 根本不回报任何东西
  • foo=( "hello" "world" )抱怨意外附近的语法错误,"("无论是否在parens内部都有额外的空格...所以数组似乎有限或缺失

还有更现代或更全功能的Linux和bash版本.

bash脚本在运行时为调用某些实用程序构建参数的最便携方式是什么find?我可以建立一个字符串,但觉得数组是一个更好的选择.除了上面的第二个要点......

假设我的脚本是foo,你就这样称呼它:foo -o 1 .jpg .png

这是一些伪代码

#!/bin/bash

# handle option -o here
shift $(expr $OPTIND - 1)

# build up parameters for find here
parameters=(my-diretory -type f -maxdepth 2)
if [ -n "$1" ]; then
    parameters+=-iname '*$1' -print
    shift
fi

while [ $# -gt 0 ]; do
    parameters+=-o -iname '*$1' -print
    shift
done

find <new positional parameters …
Run Code Online (Sandbox Code Playgroud)

shell busybox

9
推荐指数
1
解决办法
302
查看次数

使用awk printf来urldecode文本

我正在使用awkurldecode一些文字.

如果我将字符串编码到printf语句中,就像printf "%s", "\x3D"正确输出一样=.如果我将整个转义字符串作为变量,则相同.

但是,如果我只有,我3D怎么能追加\x所以printf会打印=而不是\x3D

我正在使用busybox awk 1.4.2ashshell.

awk printf urldecode busybox

8
推荐指数
1
解决办法
6560
查看次数

xargs -l的替代品

我想将一堆dirs从DIR重命名为DIR.OLD.理想情况下,我会使用以下内容:

find . -maxdepth 1 -type d -name \"*.y\" -mtime +`expr 2 \* 365` -print0 | xargs -0 -r -I file mv file file.old
Run Code Online (Sandbox Code Playgroud)

但我要执行此操作的机器已安装BusyBox,而BusyBox xargs不支持"-I"选项.

有哪些常用的替代方法可以收集文件数组,然后在shell脚本中执行它们?

bash shell find xargs busybox

8
推荐指数
1
解决办法
7468
查看次数

使用busybox在后台安装apk

我可以在rooted设备上使用busybox在后台安装apk吗?

我看到类似的东西,但它不起作用

process install;
CommandCapture command = new CommandCapture(0, "chmod 777 /data/app");
RootTools.getShell(true).add(command).waitForFinish(); 
CommandCapture command2 = new CommandCapture(0, "chmod 777 /system/xbin/busybox");
RootTools.getShell(true).add(command2).waitForFinish();
install = Runtime.getRuntime().exec("/system/xbin/busybox install " + Environment.getExternalStorageDirectory() + "/Download/" + "xxx.apk /data/app/xxx.apk");
Run Code Online (Sandbox Code Playgroud)

android busybox android-install-apk

8
推荐指数
1
解决办法
4445
查看次数

如何在运行Go的Busybox Docker容器中进行HTTPS调用?

我试图在运行Go二进制文件的Docker容器中进行HTTPS调用.这给了我以下错误:

x509:无法加载系统根目录并且未提供根目录

看了这个,似乎问题是BusyBox docker镜像没有根CA证书.从StackOverflow上的其他答案来看,似乎最好的方法是将CA根/etc/ssl/certs目录安装到容器目录中.

要在本地进行测试,安装主机的根CA证书是有意义的.在生产中运行时(我使用Google容器引擎),我不确定如何指定根CA证书.我需要自己创建吗?或者GKE中是否存在可以重用的现有证书?

ssl busybox docker kubernetes google-kubernetes-engine

8
推荐指数
1
解决办法
4058
查看次数

在一个非常愚蠢的shell中添加/减去变量

我正在编写一个shell脚本,它可以在我的本地上工作/bin/sh(在Ubuntu 13.04上冲刺),但我非常需要在一个愚蠢的盒子上运行它,因为对变量的操作我得到一个错误:

$((n2 - n1 + 1))
Run Code Online (Sandbox Code Playgroud)

不起作用,我收到如下错误:

syntax error: you disabled math support for $((arith)) syntax
Run Code Online (Sandbox Code Playgroud)

我不太了解sh那里,但我认为这件事是忙碌的.我怎么能在这个哑壳上做数学?


编辑小程序列表

~ # busybox --list
[
arp
ash
cat
chgrp
chmod
chown
chroot
chvt
clear
cmp
cp
cut
date
dd
deallocvt
df
dmesg
du
echo
env
false
find
freeramdisk
ftpget
ftpput
grep
gunzip
gzip
hexdump
hwclock
ifconfig
ln
losetup
ls
md5sum
mkdir
mkfifo
mknod
mkswap
more
mount
mv
nslookup
ping
ping6
ps
pwd
renice
reset
rm
rmdir …
Run Code Online (Sandbox Code Playgroud)

math shell busybox dash-shell

7
推荐指数
1
解决办法
4270
查看次数

使用 Ubuntu 21.10 构建时出现 Buildroot 错误

我正在尝试使用 buildroot(busybox) 为 RISCV Arch 编译 linux。我之前使用的是 18.04 和 20.04,编译没有任何问题。现在,我已将其升级到 21.10 以构建其他一些东西。我已经移动了我的工具链,我可以使用which命令找到它。当我尝试编译 Linux 时,出现了一些在早期版本中没有遇到过的错误。

>>> host-m4 1.4.18 Building

In file included from /usr/include/signal.h:328,
                 from ./signal.h:52,
                 from c-stack.c:49:
c-stack.c:55:26: error: missing binary operator before token "("
   55 | #elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
      |                          ^~~~~~~~
  CC       closein.o
c-stack.c:134:8: error: variably modified 'buffer' at file scope
  134 |   char buffer[SIGSTKSZ];
      |        ^~~~~~
  CC       closeout.o

Run Code Online (Sandbox Code Playgroud)

我对不同版本如何导致此错误感到困惑。

提前致谢。

linux-kernel buildroot busybox riscv

7
推荐指数
1
解决办法
6331
查看次数