簡單 iptables 端口轉(zhuǎn)發(fā)

轉(zhuǎn)發(fā)至他服:

if [ $(id -u) -ne 0 ]; then
    echo "This script must be run as root" 1>&2
    exit 1
fi

USAGE="Usage: $(basename $0) add|del tcp|udp src_port dst_addr dst_port"
if [ $# -lt 4 ]; then
    echo $USAGE 1>&2
    exit 1
fi

case $1 in
    add)
        OPT="-A"
        ;;

    del)
        OPT="-D"
        ;;

    *)
        echo $USAGE 1>&2
        exit 1
        ;;
esac
case $2 in
    tcp)
        PROTO="-p tcp -m tcp"
        ;;

    udp)
        PROTO="-p udp"
        ;;

    *)
        echo $USAGE 1>&2
        exit 1
        ;;
esac
SRC_PORT=$3
DST_ADDR=$4
DST_PORT=$5

set -x
iptables -t nat $OPT PREROUTING $PROTO --dport $SRC_PORT -j DNAT --to-destination $DST_ADDR:$DST_PORT
iptables -t nat $OPT POSTROUTING $PROTO -d $DST_ADDR --dport $DST_PORT -j MASQUERADE
#iptables $OPT INPUT $PROTO --dport $SRC_PORT -j ACCEPT
#iptables $OPT OUTPUT $PROTO --sport $DST_PORT -j ACCEPT
{ set +x; } 2>/dev/null
echo "iptables $1 done."

本機(jī)端口轉(zhuǎn)發(fā):

# add
sudo iptables -t nat -A PREROUTING -p tcp -m tcp --dport $DST_PORT -j REDIRECT --to-ports $SRC_PORT
# remove
sudo iptables -t nat -D PREROUTING -p tcp -m tcp --dport $DST_PORT -j REDIRECT --to-ports $SRC_PORT
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容