If you are IPtables nooob just like me, then you might find it hard to work with it. But today here I have a simple script that allows packet forwarding between Interfaces.
Let us consider a scenario where you have multiple interfaces. But you have to somehow link those two because you want packet forwarding.
A simple real world use case for such situation can be something like. Creating WireGuard VPN on your VPS instance.
I came across this script while I was setting up the VPN on a VPS.
Change the WANIF and LANIF variables with the interface that you want to forward.
'wlan0' LANIF='eth0' # enable ip forwarding in the kernel echo 'Enabling Kernel IP forwarding...' /bin/echo 1 > /proc/sys/net/ipv4/ip_forward # flush rules and delete chains echo 'Flushing rules and deleting existing chains...' $IPTABLES -F $IPTABLES -X # enable masquerading to allow LAN internet access echo 'Enabling IP Masquerading and other rules...' $IPTABLES -t nat -A POSTROUTING -o $LANIF -j MASQUERADE $IPTABLES -A FORWARD -i $LANIF -o $WANIF -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A FORWARD -i $WANIF -o $LANIF -j ACCEPT $IPTABLES -t nat -A POSTROUTING -o $WANIF -j MASQUERADE $IPTABLES -A FORWARD -i $WANIF -o $LANIF -m state --state RELATED,ESTABLISHED -j ACCEPT $IPTABLES -A FORWARD -i $LANIF -o $WANIF -j ACCEPT echo 'Done.'IPTABLES=/sbin/iptables WANIF=Code language: Bash (bash)
I would love to break down the script but the comments are already in place. And that concludes our packet forwarding between interfaces tutorial.