免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 22499 | 回复: 67
打印 上一主题 下一主题

[网络管理] 一个月的心血!iptables+NAT+squid 透明代理上网实现方案 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-06-27 09:39 |只看该作者 |倒序浏览
一个月的心血!iptables+NAT+squid 透明代理上网实现方案

历尽千辛万苦,翻变了所有技术论坛,整整研究了一个多月终于搞定啦!
关于此话题网上很多,但没有一篇是能让你实现目标的,惟有这篇!
本人也是Linux菜鸟,刚开始玩Linux,自学的何其经历艰苦!
今天刊登这份文章,希望给象我一样的新手提供帮助。
更希望高手能够指出不足之处,谢谢。


平台:RedHat8.0 各组件均为Linux 自带,双网卡eth0为出口地址,eth1为连接内网地址,网络连接正常。

实现步骤:

一。做IP地址翻译,让局域网内机器能够连入互联网。

    #加载模块  
    modprobe ip_tables      
    modprobe iptable_nat   
    modprobe iptable_filter   
    modprobe ip_conntrack_ftp  
    modprobe ip_nat_ftp       
    #启用IP转发
    echo 1 >; /proc/sys/net/ipv4/ip_forward
    #ip翻译(伪装)       
    iptables -t nat -A POSTROUTING -s 172.28.0.0/16 -o eth0 -j SNAT --to x.x.x.x       

    注:172.28.0.0/16为内网地址,x.x.x.x为这台机器的外部接口地址。

    客户端只需将自己的网关设置为这些命令就实现了让内网机器上网的目的!如果想用代理服务器提供HTTP的缓存功能接 着做:

二。代理服务器

    #修改配置文件----squid.conf   
    cd /etc/squid
    cp squid.conf.defauld squid.conf   
    #切记!这点重要,因为二者文件有所不同!!!

行数          修改
48        http_port 80
405        cache_mem 80 MB  #大小自己改
1466         http_access allow all
1650         httpd_accel_host virtual
        httpd_accel_port 80
        httpd_accel_with_proxy on
        httpd_accel_uses_host_header on   

   最后一步运行squid:
   cd /etc/init.d
   ./squid start

#以上是最简单的设置,至于怎么优化squid请参考其他资料。

这样,客户端实际上是通过代理方式浏览网页(其他服务则不通过代理服务!)。
这样做的最大神奇之处在于:
1.客户断完全感觉不到代理服务器的存在,IE不用做任何设置!
2.你可以随时启动/关闭squid,客户端完全不受影响!(够神奇吧?!)


三.补充
  
    以下两句最好写进 /etc/rc.d/rc.local,因为这两条记录重起机器后就失效了。
    echo 1 >; /proc/sys/net/ipv4/ip_forward
    iptables -t nat -A POSTROUTING -s 172.28.0.0/16 -o eth0 -j SNAT --to x.x.x.x



                        完

祝大家愉快!



这家伙很懒,写的不够详细,如有不明之处,请跟贴。   



注:  这部分内容目前实现的功能主要就是一个nat的转换的功能,对于squid方便的功能还没有加上来,如果想实现iptables + squid的结合的话,必须在规则里加上如下一条:
iptables -t nat -A PREROUTING -i eth1 -p tcp -s 172.28.0.0/16 --dport 80 -j REDIRECT --to-port 3128


     by wind521

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
2 [报告]
发表于 2003-06-27 09:46 |只看该作者

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

不是吧! 

:)这个东东用了一个月!!!

论坛徽章:
0
3 [报告]
发表于 2003-06-27 09:49 |只看该作者

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

对于第3条补充, 我是这样做的,
1、修改/etc/sysctl.conf, net.ipv4.ip_forward = 1
2、成功iptable转发后,用iptables-save >; iptables,生成一个文件,然后将iptables文件移到/etc/sysconfig下。

论坛徽章:
0
4 [报告]
发表于 2003-06-27 09:50 |只看该作者

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

做ip翻译的时候,每台局域网的客户端都要那样设置??

论坛徽章:
0
5 [报告]
发表于 2003-06-27 10:31 |只看该作者

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

本人是菜鸟所以时间比较长一点,很辛苦啊!

注:我使用的内网地址是172.28.0.0 255.255.0.0
NAT机器内网IP地址是172.28.0.1
客户机的地址只要是这个网段,并且把网关设成172.28.0.1就可以了。

没想到还有比我菜的鸟,哈哈,总算我也有发挥的余地啦啦啦~~~

论坛徽章:
1
巳蛇
日期:2014-12-29 11:22:41
6 [报告]
发表于 2003-06-27 12:29 |只看该作者

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

加个精华,鼓励原创

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
7 [报告]
发表于 2003-06-27 12:47 |只看该作者

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

鼓励原创!!但精华没有必要!!

论坛徽章:
0
8 [报告]
发表于 2003-06-27 13:12 |只看该作者

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

好象只是实现了NAT,内部用户能上网,squid根本没用上

论坛徽章:
0
9 [报告]
发表于 2003-06-27 13:35 |只看该作者

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

不错

论坛徽章:
0
10 [报告]
发表于 2003-06-27 15:33 |只看该作者

一个月的心血!iptables+NAT+squid 透明代理上网实现方案

他的nat 和 iptables做在一起了啊

不错不错,值得鼓励!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP