发布时间:2020-01-04 15:09:23
截至 2007 年 12 月, 我国网民数已达到 2.1 亿人, 我国拥有的 IPv4 地址数量 1.35 亿个, 人均不足 0.7 个.根据 IPv4 地址的剩余数量状况, 预计到 2012 年, 全球 IPv4 地址将会完全耗尽。虽然国家在积极地推进 IPv4 到 IPv6 的过渡工作, 但目前 IPv6 地址还处于试验阶段, IPv6 在国内利用率较低, 从 IPv4 向 IPv6 过渡仍然在技术和商用方面存在一定问题[1]。当前国内许多大型实验中心或企事业单位 IP 地址紧缺, 申请新 IP 地址费时费钱。
Linux 作为一种免费的网络操作系统越来越受到广大用户的青睐, 而且我国已经把 Linux 作为政府上网指定操作系统。Linux 操作系统下的免费代理软件 Squid 可以用来解决 IP 地址紧缺问题。
2 Squid 简介[2]
Squid 是 Linux 下一款比较优秀的应用程序代理软件, 可以设置高速缓存和灵活的策略配置。缓存的存在使得网络速度有很大改善, 其原理为当一个用户访问一个地址后, Squid 把该地址内容存到本地内存或硬盘上, 下一个用户再访问该地址时, Squid 如果发现该地址内容没有变化, 就直接从本地取数据发给用户, 于是速度得到了很大提高, 同时减少了网络带宽占用, 这使得别的访问请求得到高速处理成为可能。多个 Squid 服务器可以级联起来, 配置成一个更大更快的代理缓存群。同时 Squid 还支持 FTP、GO-
PHER、SSL 和 WAIS 等协议。而且 Squid 代理软件可以方便地从其官方网站 http://www.squid- cache.org/上免费下载。
3 解决方案
代理服务器采用双网卡, 一块连接内部局域网, 一块连接互联网。如图 1 所示, 服务器上网卡 1 使用实 IP 地址: 210.26.96.15 为真实申请的 IP 地址, 用它连接互联网。网卡 2 使用虚 IP 地址: 192.168.1.1, 为自已设定的代理服务器地址, 它联接到局域网中的交换机上。局域网中客户机的 IP 地址设定为 192.168.1.2~192.168.1.254 的地址段中, 客户机全部连接到交换机上。客户机操作系统的浏览器代理全部设定为 192.168.1.1, 端口: 8888.
在代理服务器上安装 Linux 操作系统并配置 Squid, 其配置文件是/etc/squid/squid.conf。修改 squid.conf 文件部分内容如下:
http_port 192.168.1.1: 8888 //代理端口 cache_mem 128 MB //缓存大小
下面是缓存空间使用策略, 当缓存空间使用达到 95%时, 新内容将取代旧的, 直到空间又下降到 90%才停止这一活动。
下面的内容是缓存存取策略。日志、Squid 代理网段、可使用 Squid 代理上网的 IP 地址、允许使用的用户和用户组等配置。 cache_dir ufs /var/spool/squid 256 16 256 //缓存目录 cache_access_log /var/log/squid/access.log //日志记录文件
cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log
visible_hostname No1.proxy client_mask 255.255.255.255 acl advance 192.168.1.2- 192.168.1.255 acl all src 0.0.0.0/0 http_access allow all cache_effective_user Squid
Squid 使用 acl 来定义用户组, 并使用 http_access 来控制用户组的权限, 这里未加限制, 可参考文献[3]。
4性能评价
在联想开天 4610 ( P4/2.4G, 256M 内存, 80G 硬盘, D- link 品牌 100M 以太网交换机)硬件环境下, 安装 Linux 操作系统, 1024M
交换分区, 配置 Squid 作为代理服务器, 10M的外网联接, 70 台同型号的计算机做局域网内客户端, 采用文献[4]所述方法对所构建的代理服务器性能进行测评, 客户端上网速度峰值可达到 1.2MB/s, 平均能达到 178KB/s 的速度。基本能满足局域网内浏览网页和下载一般软件的需要。
5结束语
本文针对 IP 地址耗尽问题, 提出了一种比较方便的解决方案。通过 Linux 操作系统下 Squid 代理软件实现了对局域网内客户
机的代理功能, 用一个真实 IP 做代理, 使多台客户端计算机上网。Squid 代理功能还可以用在同一个帐号供多台计算机上网的功能。在学校、实验中心等 IP 地址紧缺的单位具有较大用途。代理服务器的用户管理及安全性问题本文没有详细讨论, 可以参考文献[5]进一步完善。
大客户
微信
置顶