Linux搭建代理服务器
1代理服务器
代理服务器代替内网的PC去访问外网web,并将访问的数据缓存起来,当pc再次访问相同数据时,直接将缓存中的数据直接返回PC客户端,提高了访问速度,节省了带宽。
客户端请求—>查看缓存----如果有数据直接返回
|
---->如果没有想要的数据代替客户端到外网去访问,将访问的结果放在缓存里,再返回给客户端
2实现代理服务功能的软件
查看squid nginx varnish(运行在代理服务器上)
3 安装
yum -y install squid
*确保关闭 防火墙 selinux
下面是普通代理(需要手动指定代理服务器的地址和端口号)
pc---->squid----->httpd
内网 外网
4 配置
vim /etc/squid/squid.conf
A: http_port 3218 //默认监听端口号,可以修改
B: chache_mem 8MB //默认缓存大小
C: cache_dir ufs(存储格式) /var/spool/squid 100(目录空间大小) 16(一级目录数) 256(二级子目录数)//默认缓存目录
D:maximum_object_size 4096KB //能够缓存的最大查询对象
E:reply_body_max_size 10240000 allow all //允许访问的最大对象
F:http_access allow all //访问控制,允许所有主机访问
5 启动代理服务
service squid start
进程名 squid
端口 3128
进程所有这 squid
传输协议 tcp
6 配置客户端(在浏览器里指定代理服务器的IP和端口号)
就firefox浏览器来设置:首选项—>高级->网络->手动配置代理
HTTP代理:写代理服务器连接内网物理卡的地址 端口:squid 的端口号
7测试
http://公网IP(/test.html)
这个是透明代理
(客户段指定代理服务器为自己的网关 ,在代理服务器上配置防火墙规则,把代理服务器接受到的访问目标端口是80的请求转给代理服务器squid 服务的3128)
客户端不用在浏览器里指定代理服务器的IP地址和端口号,就可以直接访问公司上的网址服务器,给用户的感觉就是自己是直接和公网通信的
pc---->squid----->httpd
内网 外网
1 启用防火墙
service iptables start ,若没反应则在命令行#setup
iptables -L //查看默认规则
iptables -F //删除默认的防火墙规则
service iptables save //保存默认防火墙规则
iptables 共有个表,不同表有不同作用
filter 对数据包做过滤
mangle 对数据包打标签
raw 对数据包的状态做跟踪
nat 对端口或地址做转换
每个表里都有不同的链(链就是数据包传输的方向(参照物是防火墙本机))
input链 进入防火墙本机的数据包
output链 从防火强本机出去的数据包
forward 处理经过防火墙的数据包
POSTROUTING 路由后处理
PREROUTING 路由前处理
2设置防火墙
iptables -t 表名 管理动作 链名 匹配条件 -j 处理动作
iptables -t filter -L //查看表中所有链规则
iptables -t nat -A REROUTING -i eth1 -s 192.168.0.0/24 -p tcp --dport 80 -j REDIRECT --to-ports 3128
-eth1 代理服务器接内网的的网卡
—A 添加链
-p 指定数据中的传输协议
-s 指定数据中的来源地址
-i 指定数据进入的接口
--dport 指定数据包中的目标端口
REDIRECT –to-ports 端口号 把与条件匹配的数据包里的目标端口转换
iptables -t nat -L PREROUTING //查看已配置的防火墙配置
iptables -t nat -F REROUTING // 清楚指定表里指定链的指定规则
service iptables save //保存规则
3修改配置文件
vim /etc/squid/squid.conf
htt_port 3128 transparent
service squid restart
4客户端测试
http://公网地址/a.html
**普通代理 和透明代理 都是代替局域网用户访问公网**
反向代理(代替公网客户端访问内网的网站服务器)
即外网用户可以访问内网用户服务器
pc---->squid----->httpd
公网 内网
1配置内网的网站服务器 (启动服务 、 编写网页文件)
2 配置squid 反向代理服务器
service httpd stop
chkconfig –level 35 httpd off
避免其占用80 端口,影响squid 80的实际功能
service iptables stop
chkconfig –leve 35 iptables off
3修改主配置文件
vim /etc/squid/squid.conf
http_port 80 vhost
cache_peer 192.168.1.100 parent 80 0 originserver
真是网站的IP
此处还可以继续添加cache_peer 条目 //默认只访问第一个
service squid restart
4 客户端访问
http://代理服务器的公网IP端口