我的 Windows 10 机器上安装了 Oracle VirtualBox(我们称之为“主机”)。我有两个 Linux VM,它们获取相同的 IP 地址(尽管我努力为它们分配不同的 IP 地址)。我尝试更改文件/etc/network/interface
。但它们获取相同的 IP 地址。
我在 Oracle VirtualBox“网络适配器”设置中为这些虚拟机的设置配置了端口转发。这样我就可以从我的 Windows 10 机器上使用 Putty 使用唯一的 IP 地址连接到它们。
当我在每台 Linux 机器上执行此操作时,我得到了不同的结果:
nmap -p 8140 1.2.3.4
而不是1.2.3.4
,我使用的是在端口转发/网络适配器设置中为某台服务器配置的 IP 地址。这是我使用 Putty 连接服务器时使用的 IP 地址。
从具有 IP 地址的 Linux VM 客户服务器1.2.3.4
,我看到端口8140
处于“打开”状态(因此处于监听状态)。从其他 Linux VM 客户服务器,我看到端口8140
处于“关闭”状态,因此未被过滤/阻止。
我尝试使用这个telnet 1.2.3.4 8140
,但是另一台服务器拒绝了我的连接。(这个 telnet 命令在1.2.3.4
服务器本身上运行。)
我该怎么做才能获得一致的 nmap 结果?我甚至没有意识到这种情况是可能的。
2019 年 3 月 4 日更新:我尝试过许多不同的网络适配器设置。问题仍然可重现。我甚至无法记录我尝试过的不同设置的数量。
2019 年 3 月 5 日更新:我的问题与 Linux 客户虚拟机上的 IP 地址“解析”(尽管我使用的是实际 IP 地址而不是 FQDN)为 127.0.0.1 一致。无论我使用哪个远程 IP 地址作为相应参数,nmap、SSH 和 ssh-keyscan 命令的结果都是相同的。我的 nmap、SSH 和 ssh-keyscan 命令的结果与我使用 127.0.0.1 时的结果相同。我听说过 DNS 解析不正确。我不知道为什么 Linux 客户虚拟机的 IP 地址会解析为 127.0.0.1。