與多個虛擬主機共享外部IP

與多個虛擬主機共享外部IP

對於託管一些 LAMP 虛擬機器(使用 VirtualBox)的 centos 伺服器,我有一個外部 IP。我希望能夠使用這個單一主機的外部 IP 來定址虛擬機器。就像從外部將連接埠轉送到特定機器一樣:

2.2.2.2 > external IP [WAN]
10.0.0.1 > host IP (tiger) [LAN]
10.0.0.2 > virtual client #1 (zebra)
10.0.0.3 > virtual client #1 (mouse)

因此外部IP透過路由器轉送到主機IP(tiger),然後它會查看連接埠並將其傳送給zebra或滑鼠。兩個虛擬客戶端可能(不應該)對 Apache 等使用相同的連接埠。

最好是在主機上完成路由解決方案,因為我無法存取路由器本身(但如果管理員可以完成,可以要求特定設定)

希望我說清楚了。

答案1

如果您只是想將 2.2.2.2 上的不同連接埠路由到不同的虛擬機,您可以使用iptables。請參閱CentOS指南了解更多詳細信息,包括如何使規則持久化iptables僅更改設置,直到下次重新啟動為止)。若要將連接埠 13080 上的傳入 TCP 請求定向到連接埠 80 上的 10.0.0.1:

iptables -t nat -A PREROUTING -p tcp --dport 13080 -j DNAT --to 10.0.0.1:80

如果要根據 HTTP 請求中的主機名稱選擇 VM,則需要 HTTP 伺服器作為調度程序。您可以使用 Apache,但對於如此快速、簡單的任務,nginx很受歡迎。

相關內容