[VirtualBox] 用 NAT Network 讓多個 VM 可互連,也可連至 Internet
最近在研究滲透測試 (penetration testing),
想在自己的 Mac Book 上,架 VirtualBox 的虛擬機器來測試,
但遇到一個網路設定的問題:
- 我想要兩台 VM 可以互連,這樣才能做中間人攻擊 (Man-in-the-middle attack)
- 兩台 VM 都要可以連上 Internet
- Mac Book 在公司/家裡網路切換時,希望 VM 的 IP 位址不需要重新設定
如果只要要滿足前兩點的話,用 Bridge 模式就行了,
這樣兩台 VM 都會從公司/家裡的 DHCP 取得各自的 IP,
可以互連、可以上網,只是第三點沒辦法滿足 (公司是 10.x.x.x,家裡是 192.168.x.x)…
參考了一下 VirtualBox 的文件,Introduction to networking modes 這章裡有個表格,
詳述各種網路模式下,VM 可以連線的範圍。
要同時滿足上面的 3 點需求的話,就只能用 NAT Network 了~
這個模式下,VM 都會取得 VirtualBox 配發的虛擬 IP,
因此不論 Mac Book 移動到哪裡,VM 的 IP 都是一樣的。
上網的話則是透過本機的網卡連出去,也沒有問題
(只不過外部的人無法從 Internet 直接連線至 VM,要用 Port Forwarding 才行)~
NAT Network 和 NAT 模式其實很類似,
只是 NAT 模式是每台 VM 都屬於各自的 NAT 範圍,
彼此不能互通,因此沒辦法滿足我的需求~
來看一下怎麼設定 NAT Network 吧~
1. 新增 NAT Network
先到 VirtualBox > Preferences > Network > NAT Networks,
這邊預設是空的,按下 + 鈕新增一個 NatNetwork,
接著再按下右下的設定鈕:
預設值應該可以不用修改,可以看到這個 NAT Network 的子網域是 10.0.2.x,
連接到這個網路的 VM 可以透過 DHCP 取得 10.0.2.x 的 IP。
至於 Supports IPv6 我目前沒有需求,就不用勾選
(一開始勾了之後,還因為我在用的應用程式不支援,反倒出了問題):
2. 將 VM 連接至 NAT Network
到 VM > Machine > Settings > Network,
將 VM 連接到 NAT Network (注意不是 NAT),這樣就可以了~
有多台 VM 要可以互連時,就每一台都作相同的設定就行:
3. 測試 NAT Network
在 VM 裡,執行 ipconfig 看看取得的 IP,
可以看到取得了 10.0.2.4 的 IP,第二台 VM 拿到的通常就是 10.0.2.5,以此類推:
C:\>ipconfig 乙太網路卡 區域連線: 連線特定 DNS 尾碼 . . . . . . . . : 連結-本機 IPv6 位址 . . . . . . . : fe80::89eb:1c49:9a42:f44b%11 IPv4 位址 . . . . . . . . . . . . : 10.0.2.4 子網路遮罩 . . . . . . . . . . . .: 255.255.255.0 預設閘道 . . . . . . . . . . . . .: 10.0.2.1
要與類近的 VM (如 10.0.2.5) 互連,
或是連到 Internet (如 www.google.com),都沒有問題:
C:\>ping 10.0.2.5 Ping 10.0.2.5 (使用 32 位元組的資料): 回覆自 10.0.2.5: 位元組=32 time<1ms TTL=128 回覆自 10.0.2.5: 位元組=32 time<1ms TTL=128 C:\>ping www.google.com Ping www.google.com [216.58.200.36] (使用 32 位元組的資料): 回覆自 216.58.200.36: 位元組=32 時間=124ms TTL=53 回覆自 216.58.200.36: 位元組=32 時間=10ms TTL=53
這樣子就可以開始玩 MITM attack 啦~^^
6 thoughts on “[VirtualBox] 用 NAT Network 讓多個 VM 可互連,也可連至 Internet”
您好
針對您以上的設計
若我要從外面打進虛擬機
則需開啟特定port
我也有照網路上去設定了port forward
可是我打不進我的虛擬機
想請問大大知道如何設定嗎?
我之前用 port forwarding 連進 VM 的文章:https://ephrain.net/virtualbox-%E4%BD%BF%E7%94%A8-port-forwarding-%E9%80%A3%E4%B8%8A-nat-%E6%A8%A1%E5%BC%8F%E4%B8%8B%E7%9A%84-vm/
不過我不知道你說的打不進去的細節,
有可能設定不正確,
或是你安裝 VirtualBox 電腦本身有防火牆,
或是你的 VM 裡面的作業系統有防火牆,
可以先關掉看看~
helpful post, thank you
You are welcome 🙂
好文 感謝
不客氣^^