iptables实现端口转发、端口映射及双向通路其实不难配置,只要你跟好我的脚步,看下文:
项目上线,有两台服务器,A在公网。linux rhel5.4,运行php开发的一个打折购物网:尚品折扣,数据库部署到内网中,每次导入数据都要ssh到公网,然后再转到内网。一次采集了一些服装品牌的数据,比如,艾格的服装资讯,优衣库的打折,朵以的产品介绍
下面是实现过程:
允许数据包转发:
- #echo 1 > /proc/sys/net/ipv4/ip_forward
转发TCP 8081到xx.xx.xx.xx:
- #iptables -t nat -I PREROUTING -p tcp –dport 80 -j DNAT –to xx.xx.xx.xx
使转发数据包实现“双向通路”,给数据包设置一个正确的返回通道:
- #iptables -t nat -I POSTROUTING -p tcp –dport 8080 -j MASQUERADE
表示将规则保存到/etc/sysconfig/iptables文件
- #service iptables save
重启iptables使刚才添加的规则生效
- #service iptables restart
#p#
如果执行上述命令,依然不能转发,可能由于iptables服务没有停止,命令无法写入iptables文件,应先执行service iptables stop,再执行上述命令,***service iptables start再启动服务
由于Linux防火墙默认是关闭3306端口。因此,若要能够访问3306端口,可以用两种方式,一个是关闭防火墙,另一个就是让防火墙开放3306端口。
开放3306端口的解决步骤如下:
1、修改/etc/sysconfig/iptables文件,增加如下一行:
-A RH-Firewall-1-INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
2、重启防火墙,这里有两种方式重启防火墙
a) 重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
b) 即时生效,重启后失效
开启: service iptables start
关闭: service iptables stop
数据库映射成功。
通过文章的描述,相信各位都能学会了iptables实现端口转发、端口映射及双向通路的方法。希望对大家有帮助!
【编辑推荐】
- CentOS下配置iptables防火墙
- Centos5下安装iptables以及layer7协议
- Centos 5.3 环境下编译iptables
- CentOS+iptables+squid透明代理+防火墙设置
- centos IPTables 配置方法
- 创建iptables NAT 规则
- Ubuntu iptables 初始化的实现
- Ubuntu iptables 内网端口映射