CentOS 7中使用Squid提供HTTP代理详解

本文主要记录了一下设置CentOS服务器使用Squid作为HTTP代理,及客户端的代理配置的方法,下面来看看详细的介绍吧。

使用Squid提供HTTP代理

主机上安装和设置Squid

作为网关的n147机器,公网IP是2.2.2.147。安装Squid,然后修改配置,启用服务。

yum install -y squid
# squid的配置文件在 /etc/squid/squid.conf,修改内容可参考下面的Dockerfile
# 修改配置后,初始化squid的工作目录
squid -z
# 启动服务
systemctl enable squid
systemctl start squid

以Docker容器的方式运行Squid

Dockerfile内容如下:

FROM alpine:latest
RUN apk update --no-cache; \
 apk add squid --no-cache
# 可以在squid.conf中限制允许访问此代理的IP范围,否则只有内网IP可以访问
RUN sed -i "/RFC 4291/a acl ics src 2.2.2.0/24" squid.conf; \
 sed -i "/RFC 4291/a acl ics src 2.2.3.3/32" squid.conf
# 可以修改默认的端口号,如果修改了默认端口,需要修改下面的 EXPOSE 部分
RUN sed -i "/http_port/c http_port 8888" squid.conf
# 开启cache
RUN sed -i '/cache_dir/s/#//g' /etc/squid/squid.conf
# 或者直接使用修改过的配置文件
# ADD squid.conf /etc/squid/squid.conf
# squid -z用于初始化,创建cache目录,但直接在Dockerfile中
# RUN squid -z
# 却无法创建cache目录,导致squid无法启动
# 故将初始化和启动命令写入脚本中
RUN echo -e '#!/bin/sh\n[ -d /var/cache/squid/00 ] || squid -z\nsquid -N' >/squid.sh; \
 chmod +x /squid.sh
EXPOSE 3128
CMD ["/squid.sh"]

构造镜像:docker build ./ -t squid:latest

启动容器:docker run -d -p 3128:3128 --name squid squid:latest

使用HTTP代理

内网其它不能直接访问外网的机器可以设置使用n147提供的代理服务。

全局的环境变量

在/etc/environment(不需要export),/etc/profile或/etc/profile.d/http_proxy.sh导出http_proxy和https_proxy

export http_proxy=http://2.2.2.147:3128
export https_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"

重启docker daemon: systemctl restart docker,执行docker info查看是否生效。

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::proxy http://2.2.2.147:3128;

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

(0)

相关推荐

  • CentOS下使用Squid架设CDN服务器的方法

    很多站长在建设大型网站的过程当中,常会遇到网站在特定地区打开速度慢的问题.这时候一般会在那个地区来做一个网站镜像,通过智能DNS来确定用户访问哪台镜像服务器. 这里我们采用WDCP和WDCDN来建立我们的CDN加速点.因为WDCDN依赖于WDCP,所以我们先来安装WDCP. 具体步骤如下: 第一步:安装WDCP 1.X wget http://dl.wdlinux.cn:5180/rpms/rpm_install_1x sh rpm_install_1x 中间会提示选择安装lamp 或 lnmp

  • centos下简单配置安装Squid 3.0反向代理

    安装篇: 本教程应用环境为干净centos 5.5 ,预先分好并加载/data分区,并且关闭selinux及iptables 首先修改文件描述符并设定临时端口范围,这些设置重启后生效 复制代码 代码如下: cat >> /etc/security/limits.conf <<DDD * soft nofile 8192 * hard nofile 20480 DDD cat >> /etc/sysctl.conf <<DDD #set temp port r

  • CentOS 7中使用Squid提供HTTP代理详解

    本文主要记录了一下设置CentOS服务器使用Squid作为HTTP代理,及客户端的代理配置的方法,下面来看看详细的介绍吧. 使用Squid提供HTTP代理 主机上安装和设置Squid 作为网关的n147机器,公网IP是2.2.2.147.安装Squid,然后修改配置,启用服务. yum install -y squid # squid的配置文件在 /etc/squid/squid.conf,修改内容可参考下面的Dockerfile # 修改配置后,初始化squid的工作目录 squid -z #

  • 在 CentOS 7 中安装 MySQL 8 的教程详解

    准备 本文环境信息: 软件 版本 CentOS CentOS 7.4 MySQL 8.0.x 安装前先更新系统所有包 sudo yum update 安装 1. 添加 Yum 包 wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm # 或者 wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm sudo yum up

  • iOS中TableView如何统一数据源代理详解

    前言 TableView 是 iOS 应用程序中非常通用的组件,几乎每一个界面都有一个TableView,而我们许多的代码都和TableView有关系,比如数据展示.更新TableView,一些响应选择事件等,而这些大多都会通过其代理函数来实现,所以在VC中我们通常需要实现大量TableView的代理函数,如下面这样 func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat

  • Spring中的AutowireCandidateResolver的具体使用详解

    接口定义 用于推断一个特定的beanDefinition是否能作为指定依赖的候选者的策略接口 public interface AutowireCandidateResolver { // 默认情况下直接根据bd中的定义返回,如果没有进行特殊配置的话为true default boolean isAutowireCandidate(BeanDefinitionHolder bdHolder, DependencyDescriptor descriptor) { return bdHolder.g

  • 超全MyBatis动态代理详解(绝对干货)

    前言 假如有人问你这么几个问题,看能不能答上来 Mybatis Mapper 接口没有实现类,怎么实现的动态代理 JDK 动态代理为什么不能对类进行代理(充话费送的问题) 抽象类可不可以进行 JDK 动态代理(附加问题) 答不上来的铁汁,证明 Proxy.Mybatis 源码还没看到位.不过没有关系,继续往下看就明白了 动态代理实战 众所周知哈,Mybatis 底层封装使用的 JDK 动态代理.说 Mybatis 动态代理之前,先来看一下平常我们写的动态代理 Demo,抛砖引玉 一般来说定义 J

  • Spring之@Aspect中通知的5种方式详解

    目录 @Before:前置通知 案例 对应的通知类 通知中获取被调方法信息 JoinPoint:连接点信息 ProceedingJoinPoint:环绕通知连接点信息 Signature:连接点签名信息 @Around:环绕通知 介绍 特点 案例 对应的通知类 @After:后置通知 介绍 特点 对应的通知类 @AfterReturning:返回通知 用法 特点 案例 对应的通知类 @AfterThrowing:异常通知 用法 特点 案例 对应的通知类 几种通知对比 @Aspect中有5种通知

  • IOS 中CALayer绘制图片的实例详解

    IOS 中CALayer绘制图片的实例详解 CALayer渲染内容图层.与UIImageView相比,不具有事件响应功能,且UIImageView是管理内容. 注意事项:如何使用delegate对象执行代理方法进行绘制,切记需要将delegate设置为nil,否则会导致异常crash. CALayer绘制图片与线条效果图: 代码示例: CGPoint position = CGPointMake(160.0, 200.0); CGRect bounds = CGRectMake(0.0, 0.0

  • PHP中的函数声明与使用详解

      函数 1.  函数名是标识符之一,只能有字母数字下划线,开头不能是数字: 函数名的命名,必须符合"小驼峰法则"FUNC(),func(),Func(); 函数名不区分大小写; 函数名不能与已有函数同名,不能与内置函数名同名: 2.   function_exists("func");用于检测函数是否已经声明: 注意传入的函数名,必须是字符串格式,返回结果为true/false: echo打印时,true为1,false不显示:               [ph

  • Mongodb中MapReduce实现数据聚合方法详解

    Mongodb是针对大数据量环境下诞生的用于保存大数据量的非关系型数据库,针对大量的数据,如何进行统计操作至关重要,那么如何从Mongodb中统计一些数据呢? 在Mongodb中,给我们提供了三种用于数据聚合的方式: (1)简单的用户聚合函数: (2)使用aggregate进行统计: (3)使用mapReduce进行统计: 今天我们首先来讲讲mapReduce是如何统计,在后续的文章中,将另起文章进行相关说明. MapReduce是啥呢?以我的理解,其实就是对集合中的各个满足条件的文档进行预处理

  • vue中component组件的props使用详解

    本文介绍了 vue中component组件的props使用详解,分享给大家,具体如下: props使用方法 Vue.component('my-component',{ props:['message'], template:'<div class="tem1">{{message}}</div>' }); <my-component message="hello"></my-component> 注意:props 的

随机推荐