使用iptables做端口转发

通过iptables可以做转发

IPT="/sbin/iptables"
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
$IPT -F
$IPT -t nat -F
$IPT -X
$IPT -t nat -X
$IPT -Z
$IPT -t nat -Z
#DNAT 做端口转发
$IPT -t nat -A PREROUTING -d 192.168.19.102 -p tcp --dport 33 -j DNAT --to-destination 192.167.19.101:22
#SNAT 做端口转发
$IPT -t nat -A POSTROUTING -p tcp -d 192.167.19.101 --dport 22 -j SNAT --to-source 192.167.19.102
    
#SNAT 做网关转发
#$IPT -t nat -A POSTROUTING  -s 192.168.0.0/16  -j SNAT --to-source 210.72.24.15

说明:
DNAT 做端口转发
是将对外网ip 192.168.19.102的访问,映射到对内网ip 192.167.19.101的访问;

一内一外的双网卡转一内的单网卡的时候,上面的配置信息里面实际是有三个IP信息的

备注:

首先需要启用NAT需要在Linux上打开内核对IP包的转发支持,linux上编辑:/etc/sysctl.conf 文件:

net.ipv4.ip_forward = 1

然后执行

sysctl -p

对于单网卡虚拟网卡的场景

#!/bin/sh 
IPT="/sbin/iptables"
/bin/echo "1" > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
$IPT -F
$IPT -t nat -F
$IPT -X
$IPT -t nat -X
$IPT -Z
$IPT -t nat -Z

iptables -t nat -A PREROUTING  -p tcp --dport 8082   -i enp6s0f1 -d 20.20.20.247  -j DNAT --to-destination 192.168.0.1:80
iptables -t nat -A POSTROUTING  -j MASQUERADE

上面的操作可以配置虚拟网卡iptable转发的访问

写于: 2014年08月04日
更新于: 2015年03月24日

posted @ 2015-03-24 12:04  武汉-磨渣  阅读(152)  评论(0编辑  收藏  举报