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 天的时间来弄清楚如何去做,但仍然失败了。
例如:
- 主机IP:10.19.201.123
- 设备IP:10.19.201.101
我已经设置了 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 家
更改虚拟框设置
- 首先由管理员停止 VM
docker-machine stop default
- 打开虚拟盒子
- Select 默认 VM 并单击设置
- 转到网络页面,并在适配器 3 上启用新的网络适配器
(请勿更改适配器 1 和 2)
- 将适配器 3 连接到与您的物理网络桥接的适配器,然后单击“确定”
- 由管理员启动 VM
docker-machine start default
- 打开 Docker 快速启动终端到 运行 容器,新容器现在应该 运行 在 LAN 上。
Windows 10 PROFESSIONAL/ENTERPRISE
使用物理网络适配器创建 vSwitch
- 打开 Hyper-V 管理器
- 操作列表-> 打开虚拟交换机管理器
- 创建新的虚拟交换机 -> select类型:外部
- 将您的物理网络适配器分配给 vSwitch
- 选中“允许管理操作系统共享此网络适配器”并应用更改
- 转到控制 Panel\All 控制面板 Items\Network 连接。
- 检查刚刚创建的vEthernet,确保IPV4设置正确。 (有时dhcp设置会为空,需要在这里重新设置)
- 返回 Hyper-V 管理器,进入 MobyLinuxVM 的设置页面(确保它已关闭,如果没有,请退出 Docker)
- 添加硬件 > 网络适配器,select 您刚刚创建的 vSwitch 并应用更改
修改Docker源码
- 找到 MobyLinux 创建文件:MobyLinux。ps1
(通常位于:X:\Program Files\Docker\Docker\resources)
- 编辑文件,找到函数:function New-MobyLinuxVM
- 在函数中找到下面一行:
$vmNetAdapter = $vm | Hyper-V\Get-VMNetworkAdapter
- 更新为:
$vmNetAdapter = $vm | Hyper-V\Get-VMNetworkAdapter | Select-Object -First 1
- 管理员保存文件
- 重新启动 Docker,容器现在应该 运行 在 LAN 上。
我正在尝试设置 docker,它可以使用 nmap 成功扫描子网设备的 mac 地址。我花了 3 天的时间来弄清楚如何去做,但仍然失败了。
例如:
- 主机IP:10.19.201.123
- 设备IP:10.19.201.101
我已经设置了 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 家
更改虚拟框设置
- 首先由管理员停止 VM
docker-machine stop default
- 打开虚拟盒子
- Select 默认 VM 并单击设置
- 转到网络页面,并在适配器 3 上启用新的网络适配器 (请勿更改适配器 1 和 2)
- 将适配器 3 连接到与您的物理网络桥接的适配器,然后单击“确定”
- 由管理员启动 VM
docker-machine start default
- 打开 Docker 快速启动终端到 运行 容器,新容器现在应该 运行 在 LAN 上。
Windows 10 PROFESSIONAL/ENTERPRISE
使用物理网络适配器创建 vSwitch
- 打开 Hyper-V 管理器
- 操作列表-> 打开虚拟交换机管理器
- 创建新的虚拟交换机 -> select类型:外部
- 将您的物理网络适配器分配给 vSwitch
- 选中“允许管理操作系统共享此网络适配器”并应用更改
- 转到控制 Panel\All 控制面板 Items\Network 连接。
- 检查刚刚创建的vEthernet,确保IPV4设置正确。 (有时dhcp设置会为空,需要在这里重新设置)
- 返回 Hyper-V 管理器,进入 MobyLinuxVM 的设置页面(确保它已关闭,如果没有,请退出 Docker)
- 添加硬件 > 网络适配器,select 您刚刚创建的 vSwitch 并应用更改
修改Docker源码
- 找到 MobyLinux 创建文件:MobyLinux。ps1 (通常位于:X:\Program Files\Docker\Docker\resources)
- 编辑文件,找到函数:function New-MobyLinuxVM
- 在函数中找到下面一行:
$vmNetAdapter = $vm | Hyper-V\Get-VMNetworkAdapter
- 更新为:
$vmNetAdapter = $vm | Hyper-V\Get-VMNetworkAdapter | Select-Object -First 1
- 管理员保存文件
- 重新启动 Docker,容器现在应该 运行 在 LAN 上。