iptables

  1. 一 从一台机到另一台机端口转发  
  2. 启用网卡转发功能  
  3. #echo 1 > /proc/sys/net/ipv4/ip_forward  
  4. 举例:从192.168.0.132:21521(新端口)访问192.168.0.211:1521端口  
  5. a.同一端口转发(192.168.0.132上开通1521端口访问 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1521 -j ACCEPT)  
  6. iptables -t nat -I PREROUTING -p tcp --dport 1521 -j DNAT --to 192.168.0.211  
  7. iptables -t nat -I POSTROUTING -p tcp --dport 1521 -j MASQUERADE  
  8. b.不同端口转发(192.168.0.132上开通21521端口访问 iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21521 -j ACCEPT)  
  9. iptables -t nat -A PREROUTING -p tcp -m tcp --dport 21521 -j DNAT --to-destination 192.168.0.211:1521  
  10. 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  
  11.   
  12. 以上两条等价配置(更简单[指定网卡]):  
  13. iptables -t nat -A PREROUTING -p tcp -i eth0 --dport 31521 -j DNAT --to 192.168.0.211:1521  
  14. iptables -t nat -A POSTROUTING -j MASQUERADE  
  15. 保存iptables  
  16. #service iptables save  
  17. #service iptables restart  
  18. 二 用iptables做本机端口转发  
  19. 代码如下:  
  20.   iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080  
  21. 估计适当增加其它的参数也可以做不同IP的端口转发。  
  22. 如果需要本机也可以访问,则需要配置OUTPUT链(********特别注意:本机访问外网的端口会转发到本地,导致访不到外网,如访问yown.com,实际上是访问到本地,建议不做80端口的转发或者指定目的 -d localhost):  
  23.   iptables -t nat -A OUTPUT -d localhost -p tcp --dport 80 -j REDIRECT --to-ports 8080  
  24. 原因:  
  25. 外网访问需要经过PREROUTING链,但是localhost不经过该链,因此需要用OUTPUT。  
posted @ 2017-02-14 17:27  XavierLee  阅读(124)  评论(0编辑  收藏  举报