From c89bbb1fa060f0be93071f8a2a5c7702e04c45f3 Mon Sep 17 00:00:00 2001 From: Randall Date: Mon, 18 Nov 2024 16:23:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20port=5Fforward/port=5Fforw?= =?UTF-8?q?ard.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- port_forward/port_forward.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 port_forward/port_forward.sh diff --git a/port_forward/port_forward.sh b/port_forward/port_forward.sh new file mode 100644 index 0000000..8f9a4c5 --- /dev/null +++ b/port_forward/port_forward.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +# Function to add port forwarding rule +add_port_forwarding() { + local protocol=$1 + local src_port=$2 + local dest_ip=$3 + local dest_port=$4 + + # Add the port forwarding rule + iptables -t nat -A PREROUTING -p tcp --dport $src_port -j DNAT --to-destination $dest_ip:$dest_port + iptables -t nat -A POSTROUTING -p tcp -d $dest_ip --dport $dest_port -j MASQUERADE + + echo "Port forwarding added: $src_port -> $dest_ip:$dest_port" +} + +# Function to list port forwarding rules +list_port_forwarding() { + echo "Current port forwarding rules:" + iptables -t nat -L PREROUTING -n -v --line-numbers +} + +# Main script logic +if [ "$1" == "add" ] && [ "$2" == "ipv4" ]; then + add_port_forwarding "tcp" $3 $4 $5 +elif [ "$1" == "list" ]; then + list_port_forwarding +else + echo "Usage: $0 add ipv4 " + echo " $0 list" +fi \ No newline at end of file