Linux-Networking

如何使用一個主機伺服器公共 IP 訪問多個訪客虛擬機?

  • January 13, 2022

我有一個裸機主機伺服器,帶有多個使用 QEMU/KVM 製作的來賓虛擬機,使用虛擬網路“預設”:NAT 選項。只有一個公共 IP 可用。

為了更好地說明:

  • BM 主機伺服器 (Ubuntu),IP 89.185.xx.xx
  • VM 來賓伺服器 (Ubuntu) 1 號,IP 192.168.122.101

虛擬機訪客伺服器(Ubuntu)2號,IP 192.168.122.102

虛擬機客戶伺服器(Ubuntu)3號,IP 192.168.122.103

現在我想在每個 VM 上使用不同的埠執行相同的應用程序,並且能夠通過相同的公共 IP 從外部連接到每個實例。例如:

  • 89.185.xx.xx:30334
  • 89.185.xx.xx:30335
  • 89.185.xx.xx:30336

類似的設置,例如在多個 docker 容器中執行應用程序。請問我該如何設置?

取自https://www.systutorials.com/port-forwarding-using-iptables/

為 VM1 從公共 IP 埠轉發到本地 IP:

# iptables -A PREROUTING -t nat -i eth0 -p tcp --dport 30334 -j DNAT --to 192.168.122.101:30334
# iptables -I FORWARD 1 -p tcp -d 192.168.122.101 --dport 30334 -j ACCEPT 

此範例假定本地和遠端埠均為30334,公共介面名稱為eth0

引用自:https://serverfault.com/questions/1088978