通过iptables可以做转发

#!/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
#DNAT 做端口转发
$IPT -t nat -A PREROUTING -d 192.168.0.174 -p tcp --dport 28 -j DNAT --to-destination 192.168.9.101:22
#SNAT 做端口转发
$IPT -t nat -A POSTROUTING -p tcp -d 192.168.9.101 --dport 22 -j SNAT --to-source 192.168.0.174
    
#SNAT 做网关转发
#$IPT -t nat -A POSTROUTING  -s 192.168.0.0/16  -j SNAT --to-source 210.72.24.15

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

备注:

首先需要启用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日