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

相關文章
相關標籤/搜索