On my Ubuntu 14.04 I have a service running on a local IP (192.168.33.99) and port 80. In my network, my Ubuntu computer has IP 192.168.2.3. Now I want to redirect all traffic on 192.168.2.3:8080 to 192.168.33.99:80 (note that this is a local IP on the Ubuntu machine). How can I do that?
1 Answer
What you're looking for is called NAT.
First we want to enable portforwarding:
sysctl net.ipv4.ip_forward=1
Now we should add a rule that forwards all incoming traffic on 8080:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination 192.168.33.99:80
Then all that is left, is iptables to masquerade
iptables -t nat -A POSTROUTING -j MASQUERADE
-
Thank you! I now get the following message after trying to reach 192.168.2.3:8080 -> ERR_CONNECTION_REFUSED. How can I resolve this? Mar 29, 2016 at 15:24
-
@Kevin - are you able to reach 192.168.33.99:80? Also please post output of
iptables -nvL
– rowanMar 29, 2016 at 15:29 -
Yes @FAT32, but I am not able to reach the 192.168.2.3:8080 Mar 29, 2016 at 15:31
-
-
Ah, it is working (I can reach it through the network) @FAT32, but not on my local machine, thank you! Mar 29, 2016 at 15:33