iptables实现端口转发、端口映射与双向通路

项目上线,有两台服务器,A在公网。linux rhel5.4,运行php开发的一个打折购物网:[color=black][url=http://www.spzhekou.com]尚品折扣[/url][/color],数据库部署到内网中,每次导入数据都要ssh到公网,然后再转到内网。一次采集了一些服装品牌的数据,比如,[color=black][url=http://www.spzhekou.com/special/view/id-26]艾格[/url][/color]的服装资讯,[color=black][url=http://www.spzhekou.com/special/view/id-24]优衣库[/url][/color]的打折,[color=black][url=http://www.spzhekou.com/special/view/id-14]朵以[/url][/color]的产品介绍
下面是实现过程:

允许数据包转发:
#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

如果执行上述命令,依然不能转发,可能由于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

数据库映射成功。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值