You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现两台Vagrant VirtualBox虚拟机之间的通信?

如何实现两台Vagrant VirtualBox虚拟机之间的通信?

看起来你已经搭好了基础的私有网络配置,但虚拟机之间还是没法通信,我来帮你排查几个最常见的问题,一步步来解决:

1. 先检查VirtualBox的主机网络管理器

打开VirtualBox,点击顶部菜单的「文件」→「主机网络管理器」,找到对应192.168.56.x网段的虚拟网卡(一般是vboxnet0):

  • 确认网卡是已启用状态,子网掩码设置为255.255.255.0
  • 看看DHCP服务器有没有和你的静态IP冲突(比如DHCP地址池不要覆盖你设置的192.168.56.2/3)
  • 另外别忘了检查主机的防火墙(不管是Windows Defender防火墙、Ubuntu的ufw还是macOS防火墙),有时候主机会拦截虚拟网卡之间的流量,可以临时关闭主机防火墙测试一下。

2. 排查虚拟机内部的防火墙规则

Ubuntu Noble默认是启用ufw防火墙的,这很可能是ping不通的罪魁祸首:

  • 先在虚拟机里临时关闭ufw试试:sudo ufw disable
  • 关闭后再ping对方的IP,如果能通了,说明是防火墙限制了内部通信。之后可以按需添加允许规则:
    sudo ufw allow in from 192.168.56.0/24
    

3. 验证Vagrant网络配置的正确性

虽然你已经用ip add show看到了IP,但可以再确认几个细节:

  • 两台虚拟机的子网掩码是否一致?确保都是255.255.255.0
  • 有没有可能Vagrant没有正确应用网络配置?可以尝试销毁虚拟机重新创建:
    vagrant destroy -f && vagrant up
    
    有时候旧的网络配置残留会导致问题,重新初始化能解决很多奇怪的bug。

优化后的Vagrantfile参考

我给你调整了一下Vagrantfile,加上了一些能避免通信问题的配置:

Vagrant.configure("2") do |config|
  config.vm.box = "ubuntu/noble64"
  # 禁用默认共享文件夹(可选,避免潜在的网络干扰)
  config.vm.synced_folder ".", "/vagrant", disabled: true

  servers = [
    { :name => "master1", :ip => "192.168.56.2" },
    { :name => "master2", :ip => "192.168.56.3" },
  ]

  servers.each do |opts|
    config.vm.define opts[:name] do |server|
      server.vm.hostname = "#{opts[:name]}k3s"
      # 明确指定子网掩码,避免自动配置出错
      server.vm.network "private_network", ip: opts[:ip], netmask: "255.255.255.0"
      # 预配置主机名解析,方便用主机名访问对方
      server.vm.provision "shell", inline: <<-SHELL
        echo "#{servers[0][:ip]} #{servers[0][:name]}k3s" >> /etc/hosts
        echo "#{servers[1][:ip]} #{servers[1][:name]}k3s" >> /etc/hosts
        # 初始化时关闭ufw,或者按需添加规则
        sudo ufw disable
      SHELL
      server.vm.provider :virtualbox do |vb|
        vb.name = "#{opts[:name]}k3s"
        vb.gui = false
        vb.memory = 1024
        vb.cpus = 2
        vb.linked_clone = true
      end
    end
  end
end

这个配置会在虚拟机启动时自动配置主机名解析,同时关闭默认防火墙,创建好之后直接就能互相ping通了。

一般来说,按上面的步骤排查,90%的虚拟机通信问题都能解决,先从防火墙和主机网络配置入手,这是最常见的问题点~

备注:内容来源于stack exchange,提问作者iaquobe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 10:48:09