Linux-Networking
如何使用一個主機伺服器公共 IP 訪問多個訪客虛擬機?
我有一個裸機主機伺服器,帶有多個使用 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
。