利用squid搭建代理服务器linux
squid代理服务实现内网经过代理服务器访问外网以及外网主机经过代理服务访问内网服务器的功能,提供代理服务的软件有不少,典型的有squid、nginx、varnish等,本文使用squid实现代理服务。nginx
squid代理服务的有点:vim
(1)提供缓存,增长了访问速度浏览器
(2)提供用私网IP访问公网地址的解决方案缓存
(3)提升了网络的安全性安全
(4)方便对用户管理服务器
squid代理服务类别:网络
(1)普通代理,用于内网访问公网,需手动设置代理服务器地址以及端口dom
(2)透明代理,用于内网访问公网,不需手动设置代理tcp
(3)反向代理,用于发布内网服务器供公网地址访问
部署squid代理:
拓扑结构:
代理服务器需准备两块网卡,eth0链接内网,IP地址为192.168.1.253,eth1链接外网,IP地址为1.1.1.1,外网服务器IP地址为1.1.1.253,内网服务器地址为192.168.1.1
一、普通代理
(1)代理服务器安装squid服务
(2)修改squid配置文件、启动代理服务并设置,开机自启动
[root@proxy ~]#vim /etc/squid/squid.conf //squid主配置文件
http_port 3128 //squid服务默认监听端口
cache_mem 8 MB //默认缓存大小,缓存只能缓存静态页面,不能缓存动态页面
cache_dir ufs /var/spool/squid 100 16 256 //squid缓存存储目录
数值解释:
100 缓存目录大小
16 一级子目录数
256 一级子目录下的目录数
maximum_object_size 4096 KB 超过该值的数据不保存到缓存中
reply_body_max_size 10240000 访问目标最大量,超过则不容许访问
#visible_hostname 指定代理服务器的主机名,不设置的状况下使用环回接口对应的主机名 ,作代理服务器的主机名(该选项为可选项)
http_access deny all 默认拒绝全部代理,将deny改成allow表示容许全部,此处需改成allow
上述设置完成后启动squid代理并设置开机自启
(3)设置客户端
本文客户端使用另外一台linux服务器模拟,使用firefox浏览器为例,其余浏览器设置代理的方法请百度。
(4)测试
外网服务器上搭建网站服务,写一个测试主页放在网站根目录下,用于测试。
内网服务器在浏览器里访问外网服务器IP地址,能看到网页说明代理工做正常
二、透明代理
(1)修改squid配置文件启用透明代理,重启squid服务
vim/etc/squid/squid.conf
http_port 3128 transparent //只修改这一条便可
(2)启用防火墙,编写防火墙规则,将80端口的访问请求转到3128代理端口
[root@proxy ~]#iptables -t nat -A PREROUTING -i eth0 -s 192.168.1.0/24 -p tcp --dport 80 -jREDIRECT --to-ports 3128//添加防火墙规则
(3)修改客户端配置
(4)测试
同普通代理
三、反向代理
(1) 反向代理多台主机:
当有多台主机须要向外网发布时,能够将squid主机设置修改以下:
http_port 80 vhost //设置squid主机监听80端口
cache_peer 192.168.1.1 parent 80 0originserver //添加一台内网主机
重启squid服务便可,访问时访问squid代理服务的外网地址
(2) 反向代理虚拟主机:
修改squid主机配置文件以下:
vim /etc/squid/squid.conf
http_port 80 vhost
cache_peer 192.168.8.3 parent 80 0originserver name=www
cache_peer 192.168.8.3 parent 80 0originserver name=bbs
cache_peer_domain www www.zhy.com
cache_peer_domain bbs bbs.zhy.com
(3)测试