CentOS 7中使用Squid提供HTTP代理详解
本文主要记录了一下设置CentOS服务器使用Squid作为HTTP代理,及客户端的代理配置的方法,下面来看看详细的介绍吧。
使用Squid提供HTTP代理
主机上安装和设置Squid
作为网关的n147机器,公网IP是2.2.2.147。安装Squid,然后修改配置,启用服务。
yuminstall-ysquid #squid的配置文件在/etc/squid/squid.conf,修改内容可参考下面的Dockerfile #修改配置后,初始化squid的工作目录 squid-z #启动服务 systemctlenablesquid systemctlstartsquid
以Docker容器的方式运行Squid
Dockerfile内容如下:
FROMalpine:latest RUNapkupdate--no-cache;\ apkaddsquid--no-cache #可以在squid.conf中限制允许访问此代理的IP范围,否则只有内网IP可以访问 RUNsed-i"/RFC4291/aaclicssrc2.2.2.0/24"squid.conf;\ sed-i"/RFC4291/aaclicssrc2.2.3.3/32"squid.conf #可以修改默认的端口号,如果修改了默认端口,需要修改下面的EXPOSE部分 RUNsed-i"/http_port/chttp_port8888"squid.conf #开启cache RUNsed-i'/cache_dir/s/#//g'/etc/squid/squid.conf #或者直接使用修改过的配置文件 #ADDsquid.conf/etc/squid/squid.conf #squid-z用于初始化,创建cache目录,但直接在Dockerfile中 #RUNsquid-z #却无法创建cache目录,导致squid无法启动 #故将初始化和启动命令写入脚本中 RUNecho-e'#!/bin/sh\n[-d/var/cache/squid/00]||squid-z\nsquid-N'>/squid.sh;\ chmod+x/squid.sh EXPOSE3128 CMD["/squid.sh"]
构造镜像:dockerbuild./-tsquid:latest
启动容器:dockerrun-d-p3128:3128--namesquidsquid:latest
使用HTTP代理
内网其它不能直接访问外网的机器可以设置使用n147提供的代理服务。
全局的环境变量
在/etc/environment(不需要export),/etc/profile或/etc/profile.d/http_proxy.sh导出http_proxy和https_proxy
exporthttp_proxy=http://2.2.2.147:3128 exporthttps_proxy=http://2.2.2.147:3128
squid可以作为https代理,只要设置https_proxy=http://2.2.2.147:3128,即这个环境变量以http://开头。
Docker
Docker需要单独设置代理,新建文件/etc/systemd/system/docker.service.d/http-proxy.conf,内容如下(注意多项环境变量之间要有空格,还设置了对私有镜像仓库不使用代理):
[Service] Environment="HTTP_PROXY=http://2.2.2.147:3128""HTTPS_PROXY=http://2.2.2.147:3128""NO_PROXY=localhost,10.0.0.147"
重启dockerdaemon:systemctlrestartdocker,执行dockerinfo查看是否生效。
yum
yum会使用全局代理设置,也可以单独设置代理,在/etc/yum.conf中增加:
proxy=http://2.2.2.147:3128
apt
在文件/etc/apt/apt.conf中增加:
Acquire::http::proxy"http://2.2.2.147:3128"; Acquire::https::proxyhttp://2.2.2.147:3128;
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对毛票票的支持。