简单 iptables 端口转发

转发至他服:

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."

本机端口转发:

# 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
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容