一 :从一台机到另一台机端口转发

启用网卡转发功能

#echo 1 > /proc/sys/net/ipv4/ip_forward



举例:从192.168.0.132:21521(新端口)访问192.168.0.211:1521端口

a.同一端口转发(192.168.0.132上开通1521端口访问 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT)

iptables -t nat -I PREROUTING -p tcp --dport 1521 -j DNAT --to 192.168.0.211

iptables -t nat -I POSTROUTING -p tcp --dport 1521 -j MASQUERADE



b.不同端口转发(192.168.0.132上开通21521端口访问 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21521 -j ACCEPT)

iptables -t nat -A PREROUTING -p tcp -m tcp --dport21521 -j DNAT --to-destination192.168.0.211:1521

iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 192.168.0.211 -p tcp -m tcp --dport 1521 -j SNAT --to-source 192.168.0.132





以上两条等价配置(更简单[指定网卡]):

iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 31521 -j DNAT --to 192.168.0.211:1521

iptables -t nat -A POSTROUTING -j MASQUERADE





保存iptables

#service iptables save

#service iptables restart

二 用iptables做本机端口转发

代码如下:

  iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080




  估计适当增加其它的参数也可以做不同IP的端口转发。

  如果需要本机也可以访问,则需要配置OUTPUT链(********特别注意:本机访问外网的端口会转发到本地,导致访不到外网,如访问yown.com,实际上是访问到本地,建议不做80端口的转发或者指定目的 -d localhost):

iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080



原因:

外网访问需要经过PREROUTING链,但是localhost不经过该链,因此需要用OUTPUT。

#######################################################################################

概述:公司有一些核心MySQL服务器位于核心机房的内网段,作为运维人员,经常需要去连接这些服务器,因无法直接通过外网访问,给管理造成了不便。

思路:虽然解决此问题的方法及思路有很多,但当下想使用IPTABLES的端口重定向功能解决此问题,比较简单易用,而且扩展性也比较好,依次类推,可以运用到其他的端口转发方面的应用。

网络环境:

公网服务器      :eth0:公网IP    eth1:内网IP - 192.168.1.1

mysql服务器:eth1:内网IP - 192.168.1.2


实现方法:通过访问公网IP的63306端口来实现到内网MYSQL服务器的3306端口的访问

在公网服务器上:

配置脚本:

iptables -t nat -A PREROUTING
-p tcp --dport 63306 -j DNAT --to-destination 192.168.1.2:3306

iptables -t nat -A POSTROUTING -d 192.168.1.2 -p tcp --dport 3306 -j SNAT
--to 192.168.1.1

允许服务器的IP转发功能:

echo 1 > /proc/sys/net/ipv4/ip_forward

使用方法:

mysql -h 公网IP -p 63306 -uroot -p

###############################################################################################

由于业务需要,服务器越来越多,内网服务器无外网环境管理甚是不便,所以折腾了一下外网到内网的端口转发以达到轻松管理的目的,贴一下心得。





S1:

eth0 10.0.0.1

eth1 x.x.x.x





S2:

eth0 10.0.0.2





S1 8082端口转发到内网机器22端口



iptables规则配置如下:



iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 8082 -j DNAT --to-destination 10.0.0.2:22



iptables -t nat -A POSTROUTING -d 10.0.0.2 -p tcp --dport 22 -j SNAT --to-source x.x.x.x

说明:

iptables -t nat -A PREROUTING -d "对外公网ip" -p tcp --dport "对外端口" -j DNAT --to "内部实际提供服务的ip":"实际提供服务的端口"



iptables -t nat -A POSTROUTING -d "内部实际提供服务的ip"-p tcp --dport "实际提供服务的端口" -j SNAT --to-source "运行iptables机器的内网ip"

最新文章

  1. OS命令注入中的空格
  2. scp详解
  3. Linux初学 - head,tail,grep,sed,yum,find
  4. WPF好看的进度条实现浅谈(效果有点类似VS2012安装界面)
  5. JAVA的面向对象编程--------课堂笔记
  6. hdu1116 欧拉回路
  7. php+mysql简单留言,适合新手
  8. haskell Types 和 Typeclasses
  9. 《JavaScript+DOM编程艺术》的摘要(三)---图片库实例
  10. jboss规则引擎KIE Drools 6.3.0 Final 教程(2)
  11. 图像识别基本算法之SURF
  12. VMware虚拟机与Windows文件共享
  13. [转] webpack之前端性能优化(史上最全,不断更新中。。。)
  14. C# 文件/文件夹压缩解压缩
  15. MDK-ARM输出HEX文件重命名设置
  16. [转]lua数据结构--闭包
  17. c#: 以模态窗口显示于其它进程窗体之前
  18. React多页面应用脚手架-v1.3.0
  19. java开发之发牌小程序
  20. checklistbox的用法

热门文章

  1. npm 项目更换目录后无法启动
  2. Nginx优化use参数epoll,kqueue,rtsig,eventport,poll
  3. tornado返回指定的http code
  4. 微信小程序 - 上拉加载
  5. jQuery Mobile Slider 禁用点击事件
  6. ubuntu PHP相关操作
  7. Django-Views模块详解
  8. 原来你是这样的JAVA[03]-继承、多态、抽象类
  9. .net整理
  10. CVE-2017-8635复现