forward port 22 from host ip to nat network KVM guest

In your home lab or in public server it is quite possible that you have only one kvm host ip on eth0 and you dont want or cannot create bridge interface in order to assign public ips to all the guest vm so that you can access them individually from outside host network.

In this case you can forward ports to nat network guest ip .

Example.

KVM host ip is :172.16.0.20
linux guest ip : 192.168.122.10

you have ssh access to host using port 22 i.e. ssh [email protected]

now if you want to access guest vm also you can forward a port 2222 to guest vm and you can access as

ssh [email protected] -p 2222

we can use iptables rule in order to get this happen .

iptables -I FORWARD -o virbr0 -d  192.168.122.10 -p tcp --dport 22 -j ACCEPT

iptables -t nat -I PREROUTING -p tcp --dport 2222 -j DNAT --to 192.168.122.10:22


next in extending this if you want to expose 80 of your guest from host ip then do so and add bellow extra rules

iptables -I FORWARD -o virbr0 -d  192.168.122.10 -p tcp --dport 80 -j ACCEPT

iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 192.168.122.10:80

i am considering that webservice port 80 is not used by host . webservice is running in guest vm with port 80.

hope it solves your query.


Comments

Popular posts from this blog

Running web ssh client on port 443 /80 with nginx as reverse proxy

Running cockpit behind nginx reverse proxy with nginx ssl and cockpit non ssl

Setup VOD streaming server with nginx using RTMP on Ubuntu 18.04