# by TRex # IPTABLES path # The number below depends on your system configuration #IPT=`whereis iptables | awk ' {print ½½ $2}'` IPT="iptables" echo "script underway..." #--------------------------------------- PORT="16185" EXT_IP="85.94.105.249" BATTLE_HOST="192.168.0.8" #--------------------------------------- usage() { echo "Usage: $0 {start|stop}" } case "$1" in start) echo "received START" PORT_II=$PORT for HOST in $BATTLE_HOST; do PORT_I=$PORT_II $IPT -t nat -A PREROUTING -p udp -d $EXT_IP --dport $PORT_II -j DNAT --to-destination $HOST:$PORT_II $IPT -t nat -A POSTROUTING -p udp -s $HOST --sport $PORT_II -j SNAT --to-source $EXT_IP:$PORT_II PORT_II=$[PORT_I + 1] done $IPT -L -v -t nat |grep "udp spt:16" $IPT -L -v -t nat |grep "udp dpt:16" echo "Battle - START - OK" ;; stop) PORT_II=$PORT for HOST in $BATTLE_HOST; do PORT_I=$PORT_II $IPT -t nat -D PREROUTING -p udp -d $EXT_IP --dport $PORT_II -j DNAT --to-destination $HOST:$PORT_II $IPT -t nat -D POSTROUTING -p udp -s $HOST --sport $PORT_II -j SNAT --to-source $EXT_IP:$PORT_II PORT_II=$[PORT_I + 1] done $IPT -L -v -t nat |grep "udp spt:16" $IPT -L -v -t nat |grep "udp dpt:16" echo "Battle - STOP - OK" ;; *) usage ;; esac