iptables 端口映射

Posted on 2013-10-11 14:35  NooBkey  阅读(467)  评论(0编辑  收藏  举报

一、环境和要实现功能
   PC1的网络设置如下:
   eth0       192.168.0.29 内网
   eth1 219.239.11.22 外网
  PC2的网络设置则为:192.168.0.21
内网
  我们要实现的功能就是将PC1的8080端口映射到PC2的80端口,也即访问
http://219.239.11.22:8080
即可访问到PC2上的WEB服务。
  二、实现步骤
  1、
首先应该做的是/etc/sysctl.conf配置文件的 net.ipv4.ip_forward = 1 默认是0
    这样允许iptalbes
FORWARD。
  2、 在/etc/rc.d/init.d目录下有iptables 文件,使用格式如下
  Usage: ./iptables
{start|stop|restart|condrestart|status|panic|save}
  相当与service iptables
{….}
  把iptables 服务停止,清除以前的规则,存盘
  到/etc/rc.d/init.d目录下,运行
  ./iptables
stop
  iptalbes -F
  iptalbes -X
  iptalbes -Z
  ./iptables
save
  3、 重新配置规则
  iptables -t nat -A PREROUTING -d 219.239.11.22 -p tcp
-m tcp --dport 8080 -j DNAT --to-destination 192.168.0.21:80
  iptables -t
nat -A POSTROUTING -d 192.168.0.21 -p tcp -m tcp --dport 80 -j SNAT --to-source
192.168.0.29
  iptables -A FORWARD -o eth0 -d 192.168.0.21 -p tcp –dport 80
-j ACCEPT
  iptables -A FORWARD -i eth0 -s 192.168.0.21 -p tcp –sport 80 -j
ACCEPT
  DNAT SNAT 的请参考帮助,这里不再陈述。
  4、 新的规则存盘
  ./iptables
save
  规则存盘后在/etc/sysconfig/iptables这个文件里面,若你对这个文件很熟悉
  直接修改这里的内容也等于命令行方式输入规则。
  5、
启动iptables 服务
  ./iptables
start
  在/proc/net/ip_conntrack文件里有包的流向,如下面
  tcp      6 53 TIME_WAIT
src=../../221.122.59.2 dst=219.239.11.22 sport=7958 dport=8080 packets=9
bytes=1753
         src=../../172.18.10.205 dst=172.18.10.212 sport=80
dport=7958 packets=9 bytes=5777 [ASSURED] use=1

Copyright © 2024 NooBkey
Powered by .NET 8.0 on Kubernetes