squid代理

一、squid正向代理设置

squid代理_第1张图片

1、安装squid

[root@daixuan ~]# yum install -y squid

2、编辑squid配置文件

[root@daixuan ~]# vim /etc/squid/squid.conf
cache_dir ufs /var/spool/squid 1024 16 256  //注释去掉,设置缓存目录,大小为1024MB
cache_mem 28 MB                    //添加一行,设置缓存占用内存的大小
refresh_pattern \.(jpg|png|gif|js|css|mp3|mp4)  1440  20%  2880 ignore-reload //添加一行
[root@daixuan ~]# squid -k check          //检测配置文件有没有语法错误

3、启动squid服务

[root@daixuan ~]# /etc/init.d/squid restart
[root@daixuan squid]# netstat -lnp | grep squid
tcp        0      0 :::3128     :::*     LISTEN      5906/(squid)

4、设置IE浏览器使用squid代理访问

工具-Internet选项-连接-局域网设置-勾选为LAN使用代理服务器-高级(HTTP:192.168.101.230,端口:3128)


5、Linux上使用curl使用代理访问网址

[root@daixuan 00]# curl -x127.0.0.1:3128 www.baidu.com -I
HTTP/1.0 200 OK

6、拒绝所有站点,设置黑白名单

[root@daixuan ~]# vim /etc/squid/squid.conf
acl http proto HTTP
acl good_domain dstdomain .baidu.com  //设置baidu为白名单,其他所有网站为黑名单
http_access allow good_domain
http_access deny !good_domain
[root@daixuan 00]# squid -k reconfigure //重新加载squid的配置文件
重启squid服务,测试百度可以打开,其他所有网页直接报错,且不能打开。
[root@daixuan 00]# curl -x 127.0.0.1:3128 www.baidu.com -I
HTTP/1.0 200 OK
[root@daixuan 00]# curl -x 127.0.0.1:3128 www.qq.com -I
HTTP/1.0 403 Forbidden

7、接受所有站点,拒绝黑名单

acl http proto HTTP
acl bad_domain dstdomain .baidu.com
http_access allow !bad_domain   //允许除了百度的其他所有站点
http_access deny bad_domain    //拒绝百度
[root@daixuan 00]# curl -x 127.0.0.1:3128 www.baidu.com -I
HTTP/1.0 403 Forbidden  //百度被拒绝访问


二、squid反向代理设置

squid代理_第2张图片

[root@daixuan ~]# vim /etc/squid/squid.conf
注释掉黑白名单设置
#acl http proto HTTP
#acl bad_domain dstdomain .baidu.com
#http_access allow !bad_domain
#http_access deny bad_domain
http_port 80 accel vhost vport
cache_peer 111.13.100.92 parent 80 0 originserver name=a
cache_peer_domain a www.baidu.com

保存重启squid服务,则百度可以访问通过代理访问,其他网站不能通过代理访问。


三、正向代理配置实例

客户Azure服务器,全部是linux服务器,yarn部署在其中一台虚拟机上,nginx代理可以转发,但是查看log的时候会到datanode上取数据,跳转失败,如果在内网内有一台windows虚拟机可以远程登录,则可以查看,现在没有,但是研发又需要查看yarn的状态和log,怎么办?


配置squid代理

1、安装squid

[root@hub02 ~]# yum install -y squid

2、配置公司的出口公网IP可以使用该代理,*是代替数字

修改配置如下:

acl localhost src 127.0.0.1/32 180.169.39.* 58.247.81.* 116.236.168.* ::1

修改端口,8090是公网微软云公网IP(139.219.227.16)开放转发到hub02的端口。

# Squid normally listens to port 3128                                                                                                                                             
http_port 8090

3、检查错误,并重启squid服务

[root@daixuan ~]# squid -k check          //检测配置文件有没有语法错误
[root@daixuan ~]# /etc/init.d/squid restart

4、如果需要限制代理只能访问内网内的web

acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1                                                                                                                                   
acl allow_ip dst 10.0.0.0/24
http_access allow  allow_ip                                                                                                                                                       
http_access deny all


Linux服务器客户端设置squid正向代理:

export http_proxy=

http://172.22.40.*:3128




一个限制访问来源ip和访问地址ip的实际例子:


acl manager proto cache_object

acl localhost src 127.0.0.1/32 ::1

acl company src   180.169.39.88/32 58.247.81.88/32 

acl to_host dst 10.0.0.0/24

acl SSL_ports port 443

acl Safe_ports port 80          # http

acl Safe_ports port 21          # ftp

acl Safe_ports port 443         # https

acl Safe_ports port 70          # gopher

acl Safe_ports port 210         # wais

acl Safe_ports port 1025-65535  # unregistered ports

acl Safe_ports port 280         # http-mgmt

acl Safe_ports port 488         # gss-http

acl Safe_ports port 591         # filemaker

acl Safe_ports port 777         # multiling http

acl CONNECT method CONNECT

acl SSL_ports port 443

acl CONNECT method CONNECT

http_access allow manager localhost

http_access deny manager

http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost

http_access allow company  to_host

http_access deny all

http_port 8090

coredump_dir /var/spool/squid3

refresh_pattern ^ftp:           1440    20%     10080

refresh_pattern ^gopher:        1440    0%      1440

refresh_pattern -i (/cgi-bin/|\?) 0     0%      0

refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880

refresh_pattern .               0       20%     4320

~