使用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日