⑴ virtualbox 虛擬機組網
最近打算搭一套虛擬機來學習一下 k8s,所以就需要搭建多個可以相互訪問的虛擬機並組成一個區域網。搭建的時候走了不少彎路,這里記錄一下組網過程。
本文涉及到了如下部分:
目的是搭建一套網路,滿足下列要求:
從需求可以看出來,網路模式選 橋接網卡 模式肯定就不行了,因為橋接網卡會將虛擬機映射到宿主機所處的網路中,雖然可以將其設置為靜態 ip,但是依舊會對宿主機網路產生一定影響,如果 宿主機移動到了另一個網路中,而那個網路中恰好又有另一個設備已經使用了虛擬機的 ip,那麼勢必會出現問題 。所以,橋接模式 pass。
然後來看一下 僅主機 host-only 模式,這個模式可以滿足第 2、3 條需求。但是使用該模式後,虛擬機想要訪問互聯網的話會受到宿主機的 host-only 網卡的網路狀態影響,如果該網卡不能上網的話那麼虛擬機就都不能上網,雖然可以通過配置完成,但是會修改宿主機的網路配置,個人不太滿意,繼續思考。
一提到簡單的網路配置那就想到了 NAT網路地址轉換 模式了。這個模式是 VirtualBox 默認的網路配置,可以讓虛擬機無需配置就直接連接互聯網。剛好可以滿足第 1 條需求。
那麼情況就已經清晰了,給每台虛擬機都配置雙網卡:
注意!該套雙網卡配置的默認網卡是網卡1,且網卡1的NAT地址轉換模式是無法訪問其他虛擬機的,而 k8s 有很多網路配置將默認使用網卡1。就會導致很多問題,詳情如下:
目的明確了接下來就是動手了,首先因為 VirtualBox 默認的就是 NAT網路地址轉換 模式。且綁定在 網卡1 上。所以這個就不用我們操作了,可以通過下面步驟確認一下:
因為宿主機訪問虛擬機可以用 網卡2 的 host-only 模式完成,所以這里的埠轉發就不用配置了。
然後我們給虛擬機配置第二個網卡,使用 host-only 模式。首先需先新建一個 host-only 網路,點擊菜單欄中 管理 > 主機網路管理器 ,再點擊新建創建,就可以創建一個可用的網路。
這個網卡就是虛擬機區域網的網關。可以看到默認生生成的網卡地址為 192.168.56.1 ,也就是說我們將要把虛擬機加入到 192.168.56.XXX 網段上。因為我們要把虛擬機地址設為靜態地址,所以後面的 DHCP 伺服器不用去關心。
然後就可以給每個虛擬機設置網卡了。如下,點擊 虛擬機設置 > 網路 > 網卡2 > 連接方式選擇僅主機 > 界面名稱選擇上一步新建的網路 。設置完成後點擊確認就可以完成綁定了。
網卡掛載完成後,就可以啟動虛擬機進行配置了,登錄上虛擬機之後 ifconfig 看一下:
從圖里可以看到, enp0s3 網卡的 ip 為 10.0.2.15 ,這是網路地址轉換模式配置的1號網卡。誒驚了,我第二個網卡呢?其實這里已經掛載上了,只不過還沒用啟用,用 ifconfig -a 就可以看到第二個網卡了。
圖里可以看到網卡2的名字叫 enp0s8 ,你的有可能不一樣,這個記住,一會要用的。
啟用網卡2
接下來就啟用網卡2,首先編輯網卡配置文件。
然後新增如下內容,記得把里邊的 enp0s8 改成自己的網卡名,我把這台虛擬機的 ip 設置成了 192.168.56.21 ,這個可以自己隨便改,只要是 192.168.56.XXX 網段就行:
編輯完成後 :wq 保存,然後啟用該網卡 下面這個網卡名也要改成自己的 :
什麼你說報錯了,找不到 ifup ?那安上就行了唄:
啟用完了之後再 ifconfig 就可以看到新的網卡了,如果沒看到的話就 reboot 重啟一下。
然後照葫蘆畫瓢配置好另一台虛擬機就可以測試啦,我配置的信息如下:
測試的話相互 ping 就好了,互聯網訪問直接 ping www..com 就行,這里就不展示了。
到此虛擬機就算組網成功了,添加新的虛擬機也只需要將其 ip 添加到 192.168..56.XXX 網段上即可。
如果我們想要在一台虛擬機上訪問另一台虛擬機,就要用 ssh xxx.xxx.xxx.xxx 來連接,那麼怎麼通過別名而不是直接輸入 ip 地址進行連接呢,很簡單,使用下述命令編輯文件 ~/.ssh/config ,沒有直接新建即可:
然後追加下述內容:
完成後 :wq 保存後測試一下,發現可以直接用 master1 進行訪問了:
如果在登錄輸入密碼後提示 Permission denied, please try again ,那就修改 ssh 的配置文件,啟用 root 登錄。使用 sudo vi /etc/ssh/sshd_config 來打開配合文件,並將 PermitRootLogin 和 PasswordAuthentication 欄位的值設置為 yes 。然後使用 service sshd restart 重啟服務即可。
上一步中使用 ssh master1 訪問其他虛擬機時,仍然需要輸入密碼,所以最後再來配置一下免秘鑰登錄,配置過程很簡單,想讓機器 A 訪問機器 B,就把機器 A 的公鑰放到機器 B 的 ~/.ssh/authorized_keys 文件里就行了。
首先我們在 worker1 上生成一個密鑰,輸入下述命令後一路回車即可:
然後登錄 master1 ,並依次輸入下述兩條命令將其復制並寫入到 master1 的 authorized_keys 中,注意我下面的 scp 命令中使用了 worker1 別名,要提前進行配置:
然後再次使用 ssh master1 登錄就可以發現直接連接上而不需要密碼了。
⑵ oracle virtualbox 虛擬機網路
下表概述了最重要的聯網模式。
表6.1。聯網模式概述
網路地址轉換(NAT)是從虛擬機訪問外部網路的最簡單方法。通常,在主機網路和來賓系統上不需要任何配置。因此,它是Oracle VM VirtualBox中的默認聯網模式。
啟用了NAT的虛擬機的行為就像是一台通過路由器連接到Internet的真實計算機。在這種情況下,路由器是Oracle VM VirtualBox網路引擎,該引擎透明地映射來往虛擬機的流量。在Oracle VM VirtualBox中,此路由器放置在每個虛擬機和主機之間。由於默認情況下虛擬機無法相互通信,因此這種隔離可最大程度地提高安全性。
NAT模式的缺點是,就像路由器後面的專用網路一樣,虛擬機是不可見的,並且無法從外部Internet訪問。除非設置埠轉發,否則無法以這種方式運行伺服器。請參見 使用NAT配置埠轉發 。
虛擬機從集成到Oracle VM VirtualBox的DHCP伺服器接收專用網路上的網路地址和配置。這樣分配給虛擬機的IP地址通常與主機位於完全不同的網路上。由於可以將虛擬機的多個卡設置為使用NAT,因此第一張卡連接到專用網路10.0.2.0,第二張卡連接到網路10.0.3.0,依此類推。如果需要更改來賓分配的IP范圍,請參見 微調Oracle VM VirtualBox NAT引擎 。
由於虛擬機連接到Oracle VM VirtualBox內部的專用網路並且對主機不可見,因此主機或同一網路上的其他計算機將無法訪問客戶機上的網路服務。但是,就像物理路由器一樣,Oracle VM VirtualBox可以通過埠轉發使選定的服務對來賓外部的世界可用。這意味著Oracle VM VirtualBox偵聽主機上的某些埠,並在相同或不同埠上將到達主機的所有數據包重新發送給來賓。
對於主機上的應用程序或網路上的其他物理或虛擬機,看起來好像代理的服務實際上在主機上運行。這也意味著您不能在主機的相同埠上運行相同的服務。但是,您仍然可以獲得在虛擬機中運行服務的優勢。例如,主機或其他虛擬機上的服務不會因服務中的漏洞或錯誤而受損或崩潰,並且該服務可以在與主機系統不同的操作系統中運行。
要配置埠轉發,可以使用圖形化的 埠轉發編輯器,該編輯器可在網路設置對話框中找到,用於配置為使用NAT的網路適配器。在這里,您可以將主機埠映射到來賓埠,以將網路流量路由到來賓中的特定埠。
或者,可以使用命令行工具 VBoxManage
您將需要知道服務使用的來賓埠,並決定要使用主機上的埠。您可能要在來賓和主機上使用相同的埠。您可以使用主機上服務尚未使用的任何埠。例如,要在來賓中建立到ssh伺服器的入站NAT連接 ,請使用以下命令:
⑶ 如何讓virtualbox虛擬機上網
可通過以下步驟讓virtualbox虛擬機上網:
1、在虛擬機中設置,點擊虛擬機中的"設置",選擇"網路",選擇「連接方式」,選擇"NAT";
2、進入虛擬機系統(XP或者Ubuntu),將IP設置成為DHCP自動獲取。這樣虛擬機就可以上網;
3、點擊虛擬機中的"設置",選擇"網路",選擇「連接方式」,選擇"Bridged Adapter"。進入虛擬機系統(XP或者Ubuntu),靜態設置IP,將IP設置成和主機在一個網段的IP,網關和DNS設置和主機的一樣。這樣虛擬機就可以上網了。
⑷ 如何設置virtualbox虛擬機上網設置
可通過以下步驟設置virtualbox虛擬機上網使用:
1、如是NAT網路接入模式,虛擬機可訪問主機,虛擬機可訪問互聯網,在做了埠映射後,主機可以訪問虛擬機上的服務(如資料庫)。在設置里選擇網路,在啟用網路連接的連接方式中選擇網路地址轉換(NAT),點擊確定;
2、如是橋接網卡模式,可先啟用虛擬機的虛擬網卡,再設置橋接;
3、如是內部網路模式,虛擬機系統訪問Internet,在設置里選擇網路,在啟用網路連接的連接方式中選擇內部網路,點擊確定。