如何在 docker 容器上使用主机 ip?

how to use a hosts ip on a docker container?

我是 运行 服务器上的一个 metasploitable2 docker 容器。这是创建此 docker 容器的 docker 命令:

docker run --name victumb-it tleemcjr/metasploitable2:latest sh -c "/bin/services.sh && bash" --security-opt apparmor=unconfined -privileged true --network host

然后我 运行 在另一台服务器上针对 docker 映像对 Kali linux 容器进行了攻击,但它失败了。

use exploit/unix/ftp/vsftpd_234_backdoor
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > set RHOST 134.122.105.88
RHOST => 134.122.105.88
msf5 exploit(unix/ftp/vsftpd_234_backdoor) > run

[-] 134.122.105.88:21 - Exploit failed [unreachable]: Rex::ConnectionTimeout The connection timed out (134.122.105.88:21).

我很困惑为什么这个漏洞利用失败了。由于 --network host 我认为流量会被镜像到容器中。他们是否要修复此网络错误,以便破解成功?

这是我大致遵循的教程:https://medium.com/cyberdefendersprogram/kali-linux-metasploit-getting-started-with-pen-testing-89d28944097b

因为选项--network host应该放在图片前面

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

这应该有效:

docker run --name victumb-it --network host --security-opt apparmor=unconfined --privileged tleemcjr/metasploitable2:latest sh -c "/bin/services.sh && bash"

这里sh是命令,后面的都是传递给sh命令的参数。

--network--security-opt--privileged 这样的 docker run 选项放在图像之前。


如果您 运行 docker inspect container_id 您将在 Args 键处看到传递给命令的参数。这意味着它们不是 docker run.

的参数