Chinaunix首页 | 论坛 | 博客
  • 博客访问: 33847
  • 博文数量: 12
  • 博客积分: 382
  • 博客等级: 一等列兵
  • 技术积分: 105
  • 用 户 组: 普通用户
  • 注册时间: 2010-08-21 11:17
文章分类
文章存档

2014年(2)

2012年(2)

2011年(8)

我的朋友

分类: LINUX

2014-02-24 10:48:50

实现目标: 内网用户,无论其在IE地址栏内输入任何网址,都被系统强制跳转到路由器主页(192.168.1.1)

解决办法: 

  1. iptables -t nat -A PREROUTING -m multiport -p tcp --dport 80,8080 -j DNAT --to 192.168.1.1:80  


这样不管在浏览器里面打入什么地址都自动显示192.168.1.1的首页。


这种方案对路由器可以上网没有问题,但是当路由器没有上网时,就会失效。

彼时,用户在PC上敲击网址后,首先进行DNS查询,由于网络不通,DNS必然失败,从而导致PC压根就不会

发送HTTP的报文出去。这样,就不存在数据的重定向。


一种可行的方案是,在没有上网时,通过DNS欺骗来达到重定向的目的。不过这样需要修改DNS的源码。

==============续:
操作环境: win7_64bit + CentOS6.0
打一开始做Nat转发就很郁闷做了好几天不成功,后来与老师交流了一下
回家又自己研究琢磨了一下,现在能把iptables基本的转发和端口重定向等等功能实现。

 Nat 端口重定向:
     A: 192.168.6.125  
     B: 192.168.6.124 
     B里挂WEB站点,实现通过访问A来达到访问B站点的功能。
只需要在A主机里添加以下两行代码足以实现端口重定向功能

#iptables -t nat -A PREROUTING -d 192.168.6.125 -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.6.124

#iptables -t nat -A POSTROUTING -d 192.168.6.124 -p tcp --dport 80 -j MASQUERADE (此条是用透明模式转发,B机里看到的源地址为实际访问地址)

既然有了第一条转发规则,为什么需要第二条,其实开始几天我也百思不得其解,不过我现在是这么理解的,

iptables里链的框架图是这样的


-->PREROUTING-->[ROUTE]-->FORWARD-->POSTROUTING-->
一个数据包进来以上当你给他把标签加上以上,想再发出去,是不是得在出口那儿再允许此标签通过呢。


阅读(4524) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~