我的環境
- 電腦:win10 22H2(標題所稱「主機」,下稱「電腦」)
- 裝在電腦的 VirtualBox 7.0.8 裡的虛擬機(下稱「虛擬機」)
- Endeavour OS
- Firewalld 2.0.0
- KDE Plasma 5.27
- 網路
- Android 手機透過 USB 線分享 4G 網路給電腦
步驟:
- 到 VirtualBox 設定 > 網路 > 進階
- 「介面卡類型」選「半虛擬化網路 (virtio-net)」,按確定
- (上面的「附加到」用預設的「NAT」即可)
- 啟動虛擬機、啟動伺服器,看埠號是多少
- 如 IP 位址是:http://10.0.2.15:5173/
- 則埠號是 5173
- 到 VirtualBox 設定 > 網路 > 進階 > 連接埠轉送,按右上角 ➕
- 「客體連接埠」填剛剛的埠號
- 「客體 IP」不用填
- 「主機連接埠」也填剛剛的埠號
- 到電腦的 設定 > 網路和網際網路 > (左邊)乙太網路 > 選「已連線」的
- 看最下面的「IPv4 位址」(下稱「電腦 IP 位址」)
- 「主機 IP」填這個值,按確定
- 如果你的虛擬機內沒有防火牆,這時應該可以在電腦及手機的網頁瀏覽器輸入「電腦 IP 位址:剛剛的埠號」連上伺服器了
- 例如:192.168.42.49:5173
- 調整虛擬機內的防火牆
- 用命令的話:(不打 sudo 的話會有輸入密碼的視窗)
- sudo firewall-cmd --zone=public --add-port 剛剛的埠號/tcp
- 要永久儲存設定的話
- sudo firewall-cmd --zone=public --add-port 剛剛的埠號/tcp --permanent && sudo firewall-cmd --reload
- 用 GUI 的話:
- 按虛擬機右下方的(KDE Plasma 的)🔼(顯示隱藏圖示)
- 在「firewall-applet」上按右鍵 >「編輯防火牆設定」,輸入密碼
- 要永久儲存設定的話上面的「組態」選「永久」,並且調完設定後要按上方「選項」>「重新載入 Firewalld」才會生效
- 按中間偏上的「連接埠」,按下面的「加入」
- 輸入剛剛的埠號,按確定
這樣電腦跟手機就能連上 VirtualBox 虛擬機裡的網頁伺服器了。
參考資料: