linux下用iptables作端口映射

情形一:跨网络、跨主机的映射Full-Natbash

咱们想到达主机B的80端口,可是因为网络限制可能没法直接完成。可是咱们能够到达主机A的8080端口,而主机A能够直接到达B的80端口。 这时候能够使用iptables,将主机B的80端口映射到主机A的8080端口,经过访问A的8080至关于访问B的80。实现以下: 在主机A上直接以下命令,实现端口映射的Full-Nat网络

#!/bin/bash
pro='tcp'
NAT_Host='Host_A'
NAT_Port=8080
Dst_Host='Host_B'
Dst_Port=80
iptables -t nat -A PREROUTING  -m $pro -p $pro --dport $NAT_Port -j DNAT --to-destination $Dst_Host:$Dst_Port
iptables -t nat -A POSTROUTING -m $pro -p $pro --dport $Dst_Port -d $Dst_Host -j SNAT --to-source $NAT_Host

说明:tcp

NAT_Pro表示NAT的协议,能够是tcp或udp
NAT_Host表示中间作端口映射的主机。这里也就是主机A
NAT_Port表示中间作端口映射的端口。这里也就是主机A的8080口
Dst_Host表示被NAT的主机。这里也就是主机B
Dst_Host表示被NAT的端口。这里也就是主机B的80口

情形二:主机内部的端口重定向code

咱们可能须要将访问主机的7979端口映射到8080端口。也能够iptables重定向完成ip

iptables -t nat -A PREROUTING -p tcp --dport 7979 -j REDIRECT --to-ports 8080io

注意问题table

须要打开ip_forward功能。iptables

echo '1' > /proc/sys/net/ipv4/ip_forwardudp

相关文章
相关标签/搜索