Iptables 端口转发 port forward
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Iptables 端口转发 port forward相关的知识,希望对你有一定的参考价值。
参考技术A Linux 下配置iptables 实现端口转发。从网卡enp8s0 进, 从网卡enp8s0_priv_mac 出。port 5000 -->192.168.100.1:22
ip_base="192.168.100."
modprobe iptable_nat
echo 1 > /proc/sys/net/ipv4/ip_forward
sleep 1
ip=$(ip -f inet -o addr show enp8s0|cut -d\ -f 7 | cut -d/ -f 1 | head -n 1)
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -t nat -A POSTROUTING -o enp8s0_priv_mac -j MASQUERADE
iptables -A INPUT -i enp8s0 -j ACCEPT
iptables -A FORWARD -i enp8s0 -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A FORWARD -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -t nat -A PREROUTING -i enp8s0 -p tcp -d ip_base1:22"
iptables -t nat -A PREROUTING -i enp8s0 -p udp -d ip_base1:22"
iptables -t nat -A OUTPUT -o lo -p tcp -d ip_base1:22"
iptables -t nat -A OUTPUT -o lo -p udp -d ip_base1:22"
利用iptables做端口转发
#!/bin/bash #sh forward_port.sh add/del port #sh forward_port.sh add 80 if [ -z $1 ];then echo "参数1为空" elif [ -z $2 ];then echo "参数2为空" fi mode=$1 pro=‘tcp‘ #src_host=‘47.97.205.48‘ src_host=‘47.97.205.48‘ src_port=$2 Dst_Host=‘183.129.207.71‘ Dst_Port=$2 # 清空规则 function clean_rule(){ iptables -F iptables -X iptables -Z iptables -t nat -F } function add_rule(){ #iptables -w -t nat -A PREROUTING -p $pro -d $src_host --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port echo "iptables -t nat -A PREROUTING -p $pro -d $src_host --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port" #iptables -w -t nat -A POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host echo "iptables -t nat -A POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host" } function del_rule(){ iptables -w -t nat -D PREROUTING -p $pro -d $src_host --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port #echo "iptables -t nat -A PREROUTING -p $pro -d $src_host1 --dport $src_port -j DNAT --to $Dst_Host:$Dst_Port" iptables -w -t nat -D POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host #echo "iptables -t nat -A POSTROUTING -p $pro -d $Dst_Host --dport $Dst_Port -j SNAT --to $src_host1" } if [[ "$mode" == "add" ]];then add_rule elif [[ "$mode" == "del" ]];then del_rule else echo "参数1不正确(add/del)" fi iptables-save > /dev/null # 显示已有规则 #iptables -t nat -L -n --line-number
以上是关于Iptables 端口转发 port forward的主要内容,如果未能解决你的问题,请参考以下文章
Centos 设置iptables端口转发 “Unit iptables.service could not be found”错误