如何使用docker容器查看主机上的ARP流量(第2层)
我正在使用以下信息构建Kali Linux docker容器:如何使用docker容器查看主机上的ARP流量(第2层),docker,Docker,我正在使用以下信息构建Kali Linux docker容器: # Dockerfile FROM kalilinux/kali-rolling LABEL version="1.0" \ author="XYZ" \ description="Custom Kali Linux Image" RUN echo "deb http://http.kali.org/kali kali-rolling
# Dockerfile
FROM kalilinux/kali-rolling
LABEL version="1.0" \
author="XYZ" \
description="Custom Kali Linux Image"
RUN echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" > /etc/apt/sources.list && \
echo "deb-src http://http.kali.org/kali kali-rolling main contrib non-free" >> /etc/apt/sources.list && \
echo "kali-docker" > /etc/hostname && \
set -x && \
apt-get -yqq update && \
apt-get -yqq dist-upgrade && \
apt-get clean && \
apt-get install -yqq vim telnet nmap metasploit-framework sqlmap wpscan netcat
WORKDIR /root
及
我想做的是运行tcpdump之类的命令来查看主机可以看到的第2层流量,但我不太确定如何做到这一点。我对docker比较陌生,认为将网络设置为主机可以做到这一点,但实际上它似乎只是将docker接口与主机连接起来,而不是与网络连接起来,类似于VM的桥接模式在本地LAN上的工作方式
因此,如果我的虚拟机在eth0上的IP地址是192.168.1.25/24,它在我的本地网络上桥接,我如何让虚拟机中的docker容器也桥接,或者与容器共享eth0适配器,或者甚至桥接它,使其为192.168.1.26(假设DHCP分配了该地址)
我怎样才能做到这一点?我最终希望容器使用与主机相同的接口/IP信息,例如,可以接受监听端口而不做任何修改,可以看到arp流量,几乎就像容器和主机完全相同一样,但我不太确定如何实现这一点或这是否可能。Docker是一种隔离工具,它的一个关键目标是为每个容器提供一个独立的网络环境。您应该直接在主机上运行这样的网络诊断工具。这不能通过MacVLAN实现吗?Docker是一个隔离工具,其关键目标之一是为每个容器提供一个独立的网络环境。您应该直接在主机上运行这样的网络诊断工具。这不能通过MacVLAN实现吗?
# docker-compose.yml
version: "3.4"
services:
kali:
build:
network: host
context: .
dockerfile: Dockerfile
volumes:
- ./kali-root:/root
tty: true
privileged: true