Search code examples
iptables

iptables DNAT does not work port forwarding between 2 interface


I have one interface which visible to my network, and a loopback (127.0.0.1),

ens192 -> 192.168.22.100

lo -> 127.0.0.1

I have a service running on lo interface on port 3333, and I want to reach that port via ens192 via port 4444

192.168.22.100:4444 -> 127.0.0.1:3333

I have tried all available solutions on StackOverflow it doesn't work.


Solution

  • sysctl -w net.ipv4.conf.[IFNAME].route_localnet=1
    
    iptables -t nat -A PREROUTING -p tcp -d 192.168.22.100 --dport 4444 -j DNAT --to 127.0.0.1:3333
    
    iptables -A INPUT -i ens192 -p tcp --dport 4444 -m state --state NEW,ESTABLISHED -j ACCEPT
    iptables -A OUTPUT -o ens192 -p tcp --sport 4444 -m state --state ESTABLISHED -j ACCEPT