iptables+NAT+squid 透明代理上网实现方案

平台: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    
    #切记!这点重要,因为二者文件有所不同!!!

行数          修改
48http_port 80
405cache_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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值