首先要先說一下為什麼要設定這個東西呢 ?? 這個是因為 VirtualBox 的 NAT 預設只有讓 Guest 連到 Host 及經由 Host 連外部,但是,預設卻沒有可以讓 HOST 直接連到 Guest ,所以,不論是在 Guest 上架了 SSH、FTP 或是 Apache 等伺服器,Host 端就是連不到 Guest。
因此,要讓 Host 可以連到 Guest 的伺服器的話,那就要設定 NAT 的 Port Forwarding,讓 VirtualBox 的 NAT 可以知道 Host 的要求要對應到 Guest 的那一個 Port 去,設定 Port Forwarding 的方法如下:
1.把設定的 Guest 虛擬機器關機。
2.到 VirtualBox 的管理畫面找出要設定的 Guest 名稱。
3.在 Host 上執行下列三個指令 ( VBoxManage 是在 VirtualBox 安裝資料夾的一支程式 )
VBoxManage setextradata "Ubuntu910DT" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol" TCP
VBoxManage setextradata "Ubuntu910DT" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort" 80
VBoxManage setextradata "Ubuntu910DT" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort" 8080
上面的例子是將 HOST 的 Port 8080 對應到名稱為 "Ubuntu910DT" 的 Guest 的 TCP Port 80 ( 就是 HTTP Server ) 的意思。
另外,上指令裡的 "guesthttp" 是類似一個設定檔名稱的意思,所以可以隨便命名,只要方便識別就可以了。
4. 啟動 Guest
設定完成之後,在 Host 上打開灠瀏器並輸入 Guest 的 IP 及 Port 8080 ( 如,http://ip:8080) ,這樣就可以看到 Guest 的網頁了 。
5.移除設定
如果之後要移或停用這組 Port Forwarding,只要用和上面一樣的指令,但是後不加參數就可以了。
VBoxManage setextradata "Ubuntu910DT" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/Protocol"
VBoxManage setextradata "Ubuntu910DT" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/GuestPort"
VBoxManage setextradata "Ubuntu910DT" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/guesthttp/HostPort"
設定完成之後要重開啟 Guest 才會生效的,這個是要注意的,雖然不關機也可以設定而且也不會出現錯誤,但是新設就是不會生效的...。
另外,也可以直接透過調整網卡設定的方式,不需要設定 Port Forwarding 就可以連通,請參考這裡。
推薦閱讀
- 問題沒解決嗎? 更多的 Ubuntu 教學在 這裡
- Prompt Injection: 提示詞注入安全漏洞
- 二款 Mac 無痛安裝的 Stable Diffusion 軟體
- 用 AI 寫部落格文章好不好 ?
- 沒有免費的 Midjourney 和 Colab 又不想花錢怎麼辦 ?
- 不學 Prompt 技巧也能善用 ChatGPT 的簡單方法
- 企業 AI 應用:不只是聊天機器人
- Automatic 比 Automatic1111 更好用 ? 都是 Stable Diffusion WebUI
- Stable Diffusion 的 /describe 圖生文功能
- AI 畫出讓人可怖的美圖 !
有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁
沒有留言 :
張貼留言
歡迎留言提問和討論 .... 😁