Debian

如何訪問 Linux 機器內的 VM?

  • January 15, 2022

我有一台託管虛擬機/Docker 容器的 Debian 機器。我想從外部機器訪問該容器,但它不僅僅是我需要訪問的單個埠,因為該容器託管一個網站,我需要能夠向不同頁面發出請求,例如“site.com/ home”或“site.com/index”,我需要能夠訪問容器上的不同埠,比如192.49.11.1:1234192.49.11.1容器的 IP 地址在哪裡(我不知道它是如何得到的,確切地說)。

我的網路由 Debian 機器、外部(Windows 10)機器和路由器組成。我在想,如果我要在路由器的路由表中添加一條記錄,告訴它將任何請求路由192.49.11.1到 Debian 機器,並且它會知道將它們路由到容器,我會得到我想要的。

問題是我該怎麼做,這可行嗎?

因為該容器託管了一個網站

執行此操作的規範方法是將容器的埠映射到 Docker 主機上的埠,使用-p選項、Docker Compose YAML 文件中的條目或您使用的任何內容。如果您有多個埠,請映射所有埠。

我的網路由 Debian 機器、外部(Windows 10)機器和路由器組成。

所以你必須讓 Debian 機器成為你網路的一部分。你沒有告訴我們它是什麼類型的虛擬機(WSL?Hyper-V?)。Google你正在使用的任何類型的虛擬機的文件。(使用 WSL 非常困難,但有一種解決方法)。

我在想,如果我要在路由器的路由表中添加一條記錄,告訴它將任何到 192.49.11.1 的請求路由到 Debian 機器

您不會向容器的 IP 發出請求(它可能一開始就沒有這個地址)。您向 Debian 主機的 IP 發出請求,或者如果您還需要 WSL 的埠轉發,則向 Windows 主機發出請求。

引用自:https://unix.stackexchange.com/questions/686531