squid代理
一、squid正向代理设置
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反向代理设置
[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
~