博客 / 詳情

返回

mac無法ping通vagrant的私有網絡ip的解決辦法

  1. 確保virtualbox擁有兩張網卡:

    1. 一張用作網絡地址轉換(NAT)
    2. 一張用作private_network,即 僅主機(hostOnly)網絡
  2. 選擇其中一張網卡,假如這張網卡的ipv4地址為 192.168.57.1,那麼你就可以從
    192.168.57.11192.168.57.255的範圍選擇一個作為private_network
  3. 假如我選擇了 192.168.57.15作為 private_network,那麼 Vagrantfile就修改為:

    # vi: set ft=ruby :
    
    # All Vagrant configuration is done below. The "2" in Vagrant.configure
    # configures the configuration version (we support older styles for
    # backwards compatibility). Please don't change it unless you know what
    # you're doing.
    Vagrant.configure("2") do |config|
     
      config.vm.box = "centos7-box"
    
      config.vm.network "private_network", ip: "192.168.57.15"
    
      config.vm.synced_folder "../data", "/vagrant_data" 
    
    end
  4. 重啓兩次虛擬機後,登錄虛擬機,就可以通過命令 ip addr查看到你設置的 private_network

      enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
     link/ether 08:00:27:4f:ad:ae brd ff:ff:ff:ff:ff:ff
     inet 192.168.57.15/24 brd 192.168.57.255 scope global enp0s8
        valid_lft forever preferred_lft forever
     inet6 fe80::a00:27ff:fe4f:adae/64 scope link
        valid_lft forever preferred_lft forever

    這個時候,基本就可以從主機ping通vagrant虛擬機了。

另外,為了防止訪問虛擬機裏面的服務而出現以下問題:

curl: (7) Failed connect to 192.168.57.15:8080; Connection refused

建議關閉防火牆:

$ sudo systemctl status firewalld.service # 查看得到“active(running)”,表示防火牆已經被打開了
$ sudo systemctl stop firewalld.service # 關閉防火牆
$ sudo systemctl disable firewalld.service # 永久關閉防火牆
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.