我通过 vagrant 将 VirtualBox 虚拟机配置为在 192.168.56.100 有一个 private_network 地址,并注意到我可以 ping 该地址,但不能 ssh 到它。
经过一番调查,我发现即使我关闭了 VM,我仍然可以 ping 地址 192.168.56.100,而没有运行 VirtualBox VM。
更奇怪的是,当我重新配置我的 Vagrant 文件以使用地址 192.168.56.101 然后重新启动我的主机时。然后最初在重新启动后 vboxnet0 不存在,我无法 ping 任何 192.168.56.* 地址。然后,当我通过 vagrant up 启动虚拟机时,vboxnet0 在 192.168.56.1 可用,新 VM 在 192.168.56.101 可用。但是我仍然可以ping 192.168.56.100??不存在会使用此地址的虚拟机!
我该如何进一步调试呢?如何找出 192.168.56.100 是什么?vboxnet0 不是 brdige 设备,所以我不能使用 brctl 之类的工具。
谢谢!
PS:我在“Ubuntu 22.04 LTS”上:Linux master 5.15.0-30-generic #31-Ubuntu SMP Thu May 5 10:00:34 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux。
我在版本 6.1.32_Ubuntu r149290 中使用 VirtualBox。
首先是我之前要求的附加信息vagrant up
。
ip route sh
default via 192.168.178.1 dev wlp4s0 proto dhcp metric 600
169.254.0.0/16 dev virbr0 scope link metric 1000 linkdown
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-87529e8f38b0 proto kernel scope link src 172.18.0.1 linkdown
172.20.0.0/16 dev br-09115dd7adf5 proto kernel scope link src 172.20.0.1 linkdown
172.21.0.0/16 dev br-95476c66ec3f proto kernel scope link src 172.21.0.1 linkdown
172.25.0.0/16 dev br-f259d334ba7f proto kernel scope link src 172.25.0.1 linkdown
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
192.168.178.0/24 dev wlp4s0 proto kernel scope link src 192.168.178.63 metric 600
ip addr show | grep 'inet '
inet 127.0.0.1/8 scope host lo
inet 192.168.178.63/24 brd 192.168.178.255 scope global dynamic noprefixroute wlp4s0
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
inet 172.20.0.1/16 brd 172.20.255.255 scope global br-09115dd7adf5
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-87529e8f38b0
inet 172.21.0.1/16 brd 172.21.255.255 scope global br-95476c66ec3f
inet 172.25.0.1/16 brd 172.25.255.255 scope global br-f259d334ba7f
ping 192.168.56.100
PING 192.168.56.100 (192.168.56.100) 56(84) bytes of data.
^C
--- 192.168.56.100 ping statistics ---
4 packets transmitted, 0 received, 100% packet loss, time 3080ms
之后也是一样vagrant up
:
ip route sh
default via 192.168.178.1 dev wlp4s0 proto dhcp metric 600
169.254.0.0/16 dev virbr0 scope link metric 1000 linkdown
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 linkdown
172.18.0.0/16 dev br-87529e8f38b0 proto kernel scope link src 172.18.0.1 linkdown
172.20.0.0/16 dev br-09115dd7adf5 proto kernel scope link src 172.20.0.1 linkdown
172.21.0.0/16 dev br-95476c66ec3f proto kernel scope link src 172.21.0.1 linkdown
172.25.0.0/16 dev br-f259d334ba7f proto kernel scope link src 172.25.0.1 linkdown
192.168.56.0/24 dev vboxnet0 proto kernel scope link src 192.168.56.1
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 linkdown
192.168.178.0/24 dev wlp4s0 proto kernel scope link src 192.168.178.63 metric 600
ip addr show | grep 'inet '
inet 127.0.0.1/8 scope host lo
inet 192.168.178.63/24 brd 192.168.178.255 scope global dynamic noprefixroute wlp4s0
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
inet 172.20.0.1/16 brd 172.20.255.255 scope global br-09115dd7adf5
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0
inet 172.18.0.1/16 brd 172.18.255.255 scope global br-87529e8f38b0
inet 172.21.0.1/16 brd 172.21.255.255 scope global br-95476c66ec3f
inet 172.25.0.1/16 brd 172.25.255.255 scope global br-f259d334ba7f
inet 192.168.56.1/24 brd 192.168.56.255 scope global vboxnet0
我启动的 VM 具有 IP 192.168.56.101 并按应有的响应:
ping 192.168.56.101
PING 192.168.56.101 (192.168.56.101) 56(84) bytes of data.
64 bytes from 192.168.56.101: icmp_seq=1 ttl=64 time=0.364 ms
64 bytes from 192.168.56.101: icmp_seq=2 ttl=64 time=0.205 ms
但是现在 192.168.56.100 上也有一些响应:
ping 192.168.56.100
PING 192.168.56.100 (192.168.56.100) 56(84) bytes of data.
64 bytes from 192.168.56.100: icmp_seq=1 ttl=255 time=0.108 ms
64 bytes from 192.168.56.100: icmp_seq=2 ttl=255 time=0.078 ms
@BrahimGaabab 确实提供了答案:我通过 File -> Host Network Manager GUI 检查,然后切换到 DHCP 选项卡,那里显示“服务器地址:192.168.56.100”。
我永远也猜不到。我猜想“基地址” 192.168.56.1 也可以用作 DHCP 服务器。