DOCKER: Linux Container on Windows 10,如何使用nmap扫描设备的mac地址

DOCKER: Linux Container on Windows 10, how to use nmap to scan device's mac address

我正在尝试设置 docker,它可以使用 nmap 成功扫描子网设备的 mac 地址。我花了 3 天的时间来弄清楚如何去做,但仍然失败了。

例如:

我已经设置了 docker 容器,它可以成功地 ping 10.19.201.123 和 10.19.201.101。但是当我使用 nmap 从 docker 容器扫描 mac 地址时,我得到以下信息:

~$sudo nmap -sP 10.19.201.101
 Starting Nmap 7.01 ( https://nmap.org ) at 2018-05-29 08:57 UTC
 Nmap scan report for 10.19.201.101
 Host is up (0.00088s latency).
 Nmap done: 1 IP address (1 host up) scanned in 0.39 seconds

但是,如果我使用 nmap 从 VM (10.19.201.100) 扫描 mac 地址,我得到:

~$sudo nmap -sP 10.19.201.101
 Starting Nmap 7.01 ( https://nmap.org ) at 2018-05-29 17:16 CST
 Nmap scan report for 10.19.201.101
 Host is up (0.00020s latency).
 MAC Address: 0F:01:H5:W3:0G:J5(ICP Electronics)
 Nmap done: 1 IP address (1 host up) scanned in 0.32 seconds

请问,谁可以帮助或提示如何操作?

对于仍在为这个问题苦苦挣扎的人,我已经在 Windows 10 上找到了解决方法。 解决办法是让容器 运行ning 和你的本地主机在同一个局域网中,这样 nmap 就可以成功扫描局域网设备。以下是在主机 LAN 上制作 docker 容器 运行 的方法。

Windows 10 家

更改虚拟框设置

  1. 首先由管理员停止 VM docker-machine stop default
  2. 打开虚拟盒子
  3. Select 默认 VM 并单击设置
  4. 转到网络页面,并在适配器 3 上启用新的网络适配器 (请勿更改适配器 1 和 2)
  5. 将适配器 3 连接到与您的物理网络桥接的适配器,然后单击“确定”
  6. 由管理员启动 VM docker-machine start default
  7. 打开 Docker 快速启动终端到 运行 容器,新容器现在应该 运行 在 LAN 上。

Windows 10 PROFESSIONAL/ENTERPRISE

使用物理网络适配器创建 vSwitch

  1. 打开 Hyper-V 管理器
  2. 操作列表-> 打开虚拟交换机管理器
  3. 创建新的虚拟交换机 -> select类型:外部
  4. 将您的物理网络适配器分配给 vSwitch
  5. 选中“允许管理操作系统共享此网络适配器”并应用更改
  6. 转到控制 Panel\All 控制面板 Items\Network 连接。
  7. 检查刚刚创建的vEthernet,确保IPV4设置正确。 (有时dhcp设置会为空,需要在这里重新设置)
  8. 返回 Hyper-V 管理器,进入 MobyLinuxVM 的设置页面(确保它已关闭,如果没有,请退出 Docker)
  9. 添加硬件 > 网络适配器,select 您刚刚创建的 vSwitch 并应用更改

修改Docker源码

  1. 找到 MobyLinux 创建文件:MobyLinux。ps1 (通常位于:X:\Program Files\Docker\Docker\resources)
  2. 编辑文件,找到函数:function New-MobyLinuxVM
  3. 在函数中找到下面一行: $vmNetAdapter = $vm | Hyper-V\Get-VMNetworkAdapter
  4. 更新为: $vmNetAdapter = $vm | Hyper-V\Get-VMNetworkAdapter | Select-Object -First 1
  5. 管理员保存文件
  6. 重新启动 Docker,容器现在应该 运行 在 LAN 上。