Para conseguir isso, atribua o ip público ao sistema host . Em seguida, encaminhe a porta necessária de host system para guest system.
Suponha que guest seja um servidor web, então você precisa encaminhar a porta 80 de host para a porta 80 de guest para que cada solicitação para a porta 80 no ip público seja encaminhada para a porta 80 de guest .
Suponha que você tenha atribuído ip público à eth0 e o ip do seu guest é 192.168.1.2, então você tem que dizer ao host que ele deve fazer NAT / MASQUERADE para que as máquinas virtuais tenham acesso à internet. Você também precisa informar host de quais portas ele deve encaminhar para qual endereço IP. Você pode consultar o script a seguir.
#!/bin/sh
GUEST_IP=192.168.1.2
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
### Port Forwarding ###
### web server
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to $GUEST_IP:80
### mail server
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to $GUEST_IP:25
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 143 -j DNAT --to $GUEST_IP:143
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 110 -j DNAT --to $GUEST_IP:110
Os dois primeiros comandos permitem Nat / Masquerad'ing em host
### Port Forwarding ###
Aqui você coloca quantas regras forem necessárias. Isso informa ao host para encaminhar certas portas para determinadas portas de destino em determinados endereços IP de destino.