virtualbox結合nat和host-only設置固定ip的環境

需求

平時在做一些實驗或學習的時候,比如rocketmq、kafaka、zookeeper等,需要在虛擬機上創建幾個虛擬機組成集群來做實驗;一般有兩個要求:

  • 虛擬機能訪問網路,需要下載安裝東西
  • 虛擬機的ip需要固定;不然在虛擬機重啟或者電腦從家裡拿到辦公室的時候,ip變了,又要一個個進命令行去看ip,然後改程式碼里的配置,麻煩的很
  • 虛擬機之間能互相訪問,集群/主從架構節點需要互相通訊

網路連接方式選擇

可以訪問網路的連接方式:

  • nat(網路地址轉換)
  • 橋接

但是,

  • NAT不支援靜態IP、虛擬機之間不能互相訪問
  • 橋接的話會佔用區域網的ip,在自己屋裡還好,設備少,可以避開,要是拿到辦公環境就容易和其他機器的ip衝突了

多塊網卡 NAT + Host Only

直接用橋接模式,到時能滿足需求,但是也不大好; 但是我們這是用的虛擬機,有多個網卡

我們可以通過多個網卡,設置不同的網路連接方式,達到目標;

  • 第一個網卡選擇 NAT 模式使得虛擬機能訪問網路
  • 第二個網卡選擇 Host Only 使多個虛擬機之間能互相通訊並且還能設置靜態ip

1. 第一塊網卡設置NAT

首先 VirtualBox 使用 NAT 模式,需要先開始一個全局設置 (管理 -> 全局設置)

然後網路連接設置為 NAT

ping 一下網路試試

2. 第二塊網卡設置 Host Only

設置靜態ip

進入網卡配置目錄 cd /etc/sysconfig/network-scripts
ifcfg- 開頭的文件, 由於現在有多個網卡,ifcfg的文件有多個

那麼編輯哪個呢?網卡有唯一的 mac 地址,看看第二塊host only 的網卡mac地址為

看看虛擬機網路 ip addr

可以看到,第二塊網卡mac地址對應的設備為 enp0s8

那麼編輯的文件應該是 ifcfg-enp0s8

BOOTPROTO=static  ## 改為static靜態ip
IPADDR=192.168.56.104 ##設置靜態ip
NETMASK=255.255.255.0 ## 設置子網掩碼

注意:IPADDR 和 NETMASK 要和宿主機的網路設置匹配;我自己的筆記型電腦 ip是 192.168.56.1 所以上面虛擬機的ip地址只能設置成 192.168.56.x 這個ip段

從筆記型電腦(宿主)ping一下虛擬機試試

成功! 其他台虛擬機可以用一樣的方式去設置,或者再配置完整個虛擬機環境(網路、基本的java環境、zookeeper節點)後,直接利用virtual box複製後改改ip 更省事

Exit mobile version