且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

iptables外网一端口通过NAT转发内网一服务器端口上

更新时间:2022-05-02 05:01:39

命令格式
-A PREROUTING -d 服务器IP -p tcp -m tcp --dport 端口2222 -j DNAT --to-destination 内网IP:22
-A POSTROUTING -s 192.168.10.0/255.255.255.0 -o 网卡eth0 -j SNAT --to-source  服务器IP

直接修改/etc/sysconfig/iptables
-A PREROUTING -d 192.168.68.132 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.10.253:22
-A POSTROUTING -s 192.168.68.0/255.255.255.0 -o eth0 -j SNAT --to-source  192.168.68.132

或者使用命令
iptables -t nat -A PREROUTING -d 192.168.68.132 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.10.253:22
iptables -t nat -A POSTROUTING -s 192.168.68.0/255.255.255.0 -o eth0 -j SNAT --to-source  192.168.68.132

注意FORWARD
:FORWARD ACCEPT [0:0]

检查sysctl
/etc/sysctl.conf
net.ipv4.ip_forward = 1
sysctl -p

重启IPTABLES
/etc/init.d/iptables restart

SHELL脚本
 


  1. #!/bin/bash  
  2. modprobe ip_tables              
  3. modprobe iptable_nat           
  4. modprobe ip_nat_ftp             
  5. modprobe ip_conntrack          
  6. modprobe ip_conntrack_ftp   
  7.  
  8. ipt=/sbin/iptables  
  9.  
  10. lan=192.168.68.0/24  
  11. lo=127.0.0.1  
  12.  
  13. $ipt -F  
  14. $ipt -t nat  -F  
  15.  
  16. $ipt -N allow  
  17. $ipt -A allow -j ACCEPT  
  18.  
  19. ####  
  20. $ipt -A INPUT -s $lo -j allow  
  21. $ipt -A INPUT -s $lan -j allow  
  22. $ipt -A INPUT -p tcp --dport 33308  -j allow   
  23. $ipt -A INPUT -p udp --dport 123  -j allow   
  24. $ipt -A INPUT  -p tcp --dport 80  -j allow  
  25. $ipt -A INPUT  -p tcp --dport 22  -j allow  
  26. $ipt -A INPUT -p udp --sport 53  -j allow  
  27.  
  28. ####forward  
  29. echo '1' > /proc/sys/net/ipv4/ip_forward  
  30.  
  31. $ipt -t nat -A PREROUTING -d 192.168.68.132 -p tcp -m tcp --dport 2222 -j DNAT --to-destination 192.168.10.253:22  
  32. $ipt -t nat -A POSTROUTING -s 192.168.68.0/255.255.255.0 -o eth0 -j SNAT --to-source  192.168.68.132  
  33.  
  34. ####  
  35. $ipt -A INPUT -j DROP  
  36. /sbin/service iptables save 

 执行脚本后

重启IPTABLES
/etc/init.d/iptables restart

 


本文转自 ppabc  51CTO博客,原文链接:http://blog.51cto.com/ppabc/796588