免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: skylove
打印 上一主题 下一主题

[网络管理] 如何用iptables将透明代理请求重定向另一主机?【已解决】 [复制链接]

论坛徽章:
0
11 [报告]
发表于 2006-03-01 15:43 |只看该作者
其实应该这样设置

1、PREROUTING 该怎么做还怎么做,DNAT 到那个 PROXY
iptables -t nat -I PREROUTING -s <内网IP> -d ! <内网IP> -p tcp --dport 80 -j DNAT <PROXY_IP>:3128

2、针对访问 PROXY 的数据首包进行一次原地址修改
ipitables -t nat -I POSTROUTING -d <PROXY_IP> -p tcp --dport 3128 -j SNAT --to <LINUX_IP>

论坛徽章:
0
12 [报告]
发表于 2006-03-01 15:44 |只看该作者
原帖由 skylove 于 2006-3-1 15:41 发表
最后自己的变态搞法自己搞定.... 用b的外网ip就行了~~~~~DNAT --to

然后squid里设置好netmask 就行了...


不过还是奇怪,为什么指定成b网的内网ip就不可以呢?(b网是2个ip,b自身是直接出去的,不用经过a)

nat 表不是每个数据包都经过的,它只处理一个 connection 的首包(我理解是)

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
13 [报告]
发表于 2006-03-01 15:45 |只看该作者
原帖由 platinum 于 2006-3-1 15:43 发表
其实应该这样设置

1、PREROUTING 该怎么做还怎么做,DNAT 到那个 PROXY
iptables -t nat -I PREROUTING -s <内网IP> -d ! <内网IP> -p tcp --dport 80 -j DNAT <ROXY_IP>:3128

2、针对 ...

loop 了.

论坛徽章:
0
14 [报告]
发表于 2006-03-01 15:46 |只看该作者
原帖由 q1208c 于 2006-3-1 15:45 发表

loop 了.

不会啊,为何会 loop 呢?

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
15 [报告]
发表于 2006-03-01 15:51 |只看该作者
原帖由 platinum 于 2006-3-1 15:46 发表

不会啊,为何会 loop 呢?


proxy_server 也会向 " ! <内网IP>  --dport 80" 发包的.

要先加一条 让那个 proxy_server 直接出去才行的.

论坛徽章:
0
16 [报告]
发表于 2006-03-01 15:51 |只看该作者
我用上面的方法也做了一个自己的,可以试试哦,看是不是 loop ^_^
http://61.48.176.206

我的链路是 ADSL,下行 1Mbps,上行 512Kbps
而真正访问后,我的实际流量很小,这也就是我上面说的只针对首包修改的意思

论坛徽章:
0
17 [报告]
发表于 2006-03-01 15:54 |只看该作者
原帖由 q1208c 于 2006-3-1 15:51 发表


proxy_server 也会向 " ! <内网IP>  --dport 80" 发包的.

要先加一条 让那个 proxy_server 直接出去才行的.

我的“内网IP”指的是 client 那些机器的 IP 范围
因为我不知道 skylove 的网络拓扑,不知道 nat 和 proxy 的关系是怎样的,也许 proxy 不走 nat 出去也说不定,所以只好先这样写了

论坛徽章:
0
18 [报告]
发表于 2006-03-01 15:54 |只看该作者
proxy 不走nat出去,proxy本身就是有2个网卡,其中一个是外网ip,而且网关也是公网上的

我现在觉得好奇的就是... 为什么内网ip那里会需要改掉源地址???  
现在的想法是...可能是因为正好下面的完全snat冲突了,如果下面snat那里 !80大概就不用改才对....

论坛徽章:
33
荣誉会员
日期:2011-11-23 16:44:17天秤座
日期:2014-08-26 16:18:20天秤座
日期:2014-08-29 10:12:18丑牛
日期:2014-08-29 16:06:45丑牛
日期:2014-09-03 10:28:58射手座
日期:2014-09-03 16:01:17寅虎
日期:2014-09-11 14:24:21天蝎座
日期:2014-09-17 08:33:55IT运维版块每日发帖之星
日期:2016-04-17 06:23:27操作系统版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-24 06:20:0015-16赛季CBA联赛之天津
日期:2016-05-06 12:46:59
19 [报告]
发表于 2006-03-01 16:03 |只看该作者
原帖由 platinum 于 2006-3-1 15:54 发表

我的“内网IP”指的是 client 那些机器的 IP 范围
因为我不知道 skylove 的网络拓扑,不知道 nat 和 proxy 的关系是怎样的,也许 proxy 不走 nat 出去也说不定,所以只好先这样写了

论坛徽章:
0
20 [报告]
发表于 2006-03-01 16:06 |只看该作者
算了,我也不折腾自己了...折磨2位了

想了想大概是策略冲突

因为在DNAT的时候,虽然是dnat到内网proxy的;但是由于nat上还有一条snat的默认出去策略,根据iptables的依次执行原则,就把源地址给改成了nat的外网ip了.

理论上如果要做到我想的 ,那么在做snat的时候就该指定是除目的端口为tcp 80以外的才做snat....估计这样才行...
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP