Chinaunix首页 | 论坛 | 博客
  • 博客访问: 43526
  • 博文数量: 26
  • 博客积分: 20
  • 博客等级: 民兵
  • 技术积分: 245
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-17 15:52
文章分类

全部博文(26)

文章存档

2016年(23)

2015年(3)

我的朋友

分类: LINUX

2016-06-13 12:27:43

 准备:需要先开启linux的数据转发功能
       # vi /etc/sysctl.conf,将net.ipv4.ip_forward=0更改为net.ipv4.ip_forward=1
       # sysctl -p  //使数据转发功能生效

2、一台主机到另外一台主机的端口转发
       将外网访问172.16.0.20的306端口转发到172.16.0.215 3306端口。
       iptables -t nat -A PREROUTING -d 172.16.0.20 -p tcp --dport 3306 -j DNAT --to-destination 172.16.0.215:3306


       将172.16.0.215 3306端口将数据返回给客户端时,将源ip改为172.16.0.20
       iptables -t nat -A POSTROUTING -d 172.16.0.215 -p tcp --dport 3306 -j SNAT --to-source 172.16.0.20


       查看nat,可以使用命令:iptables -t nat –list检查nat列表信息

3、要针对本机进行端口转发
       将外网访问80端口的数据转发到8080端口
       # iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 8080


       将本机访问80端口的转发到本机8080 
       # iptables -t nat -A OUTPUT -p tcp -d 127.0.0.1 --dport 80 -j DNAT --to 127.0.0.1:8080
       # iptables -t nat -A OUTPUT -p tcp -d 192.168.4.177 --dport 80 -j DNAT --to 127.0.0.1:8080
       本地连接指的是在本机上,用 127.0.0.1 或者本机 IP 来访问本机的端口。本地连接的数据包不会通过网卡,而是由内核处理后直接发给本地进程。这种数据包在 iptables 中只经过 OUTPUT 链,而不会经过 PREROUTING 链。所以需要在 OUTPUT 链中进行 DNAT。除了对 127.0.0.1 之外,对本机 IP (即 192.168.4.177) 的访问也属于本地连接。
阅读(1302) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~