检测VM上冲突的转发端口

时间:2013-06-14 17:48:35

标签: networking virtualbox

我在Windows上使用Oracle VirtualBox。我已经设置了NAT和转发端口。

当某些转发端口与主机的端口意外冲突时,不会显示任何错误,并且所有转发的端口都会失败。

是否有可能检测到那些冲突的端口?我使用过VBoxManage工具,既没有输出消息,也没有startvm命令的详细模式。

由于

1 个答案:

答案 0 :(得分:2)

我建议使用netstatVBoxManage的组合并解析输出。您可以在非Windows主机上轻松地将findstr命令替换为grep

首先,我会在相关虚拟机上获得NAT端口列表。 VBoxManage showvminfo命令将输出一组有关配置的信息,您可以过滤这些信息以查找NAT规则。您将需要在输出中查找主机端口协议字段(如果已配置,可能还需要主机IP),因为这样您将看到它是否是已经在使用中。

C:\>vboxmanage showvminfo Linux  | findstr Rule
NIC 1 Rule(0): protocol=tcp, host ip=, host port=2222, guest ip=, guest port=22

第二次,使用上面的信息我知道我需要检查是否有任何内容正在侦听端口TCP端口2222,所以我可以使用netstat命令向我展示所有的监听套接字,按我的标准过滤:

C:\>netstat -an | findstr LISTENING | findstr TCP | findstr 2222
Proto  Local Address          Foreign Address        State
TCP    0.0.0.0:2222           0.0.0.0:0              LISTENING

因为我的guest虚拟机已经运行,我可以看到它已经在TCP 2222上获取了连接。如果你没有得到任何输出,那么没有任何东西正在侦听该特定端口,你可以安全地启动你的VM。