CentOS 安装HTTP代理服务器 Squid

参考:大部分摘自此文,做了少部分修改

Squid 是一个功能全面的缓存代理服务器,它支持著名的网络协议像 HTTP,HTTPS,FTP 等等。将 Squid 放在网页服务器的前端,通过缓存重复请求,过滤网络流量等,可以极大地提高服务器的性能。

这篇指南将会讲解如何在 CentOS 7 上建立 Squid,并且配置火狐和 Google 浏览器来使用这个代理服务器。

一、在 CentOS 上安装 Squid

Squid 软件包包含在默认的 CentOS 7 源仓库中。想要安装它,以 sudo 用户身份运行下面的命令:

yum install squid -y

一旦安装完成,启动并开启 Squid 服务:

service squid start

想要验证安装是否成功,输入下面的命令,将会打印出服务的状态:

service squid status
● squid.service - Squid caching proxyLoaded: loaded (/usr/lib/systemd/system/squid.service; enabled; vendor preset: disabled)Active: active (running) since Sat 2019-07-13 16:47:56 UTC; 12s ago
...

二、配置 Squid

Squid 通过编辑 /etc/squid/squid.conf 文件进行配置。新增文件可以使用"include"指令添加到配置文件中。

在做任何修改之前,使用cp命令备份原来的配置文件:

cp /etc/squid/squid.conf{,.orginal}

想要编辑文件,使用文本编辑器打开它:

vim /etc/squid/squid.conf

默认情况下,Squid 被配置成在服务器所有网络接口上监听端口3128

如果你想修改端口号,并且设置监听接口,定位到 http_port 处,并且指定接口 IP 地址和新端口。如果没有接口指定,Squid 将监听所有网络接口。

/etc/squid/squid.conf

# Squid normally listens to port 3128
http_port IP_ADDR:PORT

在所有接口上和默认端口上运行 Squid 对大部分用户都很适用。

你可以使用 Access Control Lists (ACLs)来控制 Squid 服务器的访问。

默认情况下,Squid 仅仅允许从本地主机和本地网络来的访问。

如果所有将要使用代理服务器的客户端都有一个固定 IP 地址,你可以创建一个 包含允许 IP 地址的 ACL。

不用在主要配置中添加 IP 地址,我们可以创建一个新配置文件,用来配置地址: /etc/squid/allowed_ips.txt

192.168.33.1
# All other allowed IPs

一旦完成,打开主要配置文件,并且创建一个新的 ACL ,命名为allowed_ips,并且使用http_access指令允许它访问: /etc/squid/squid.conf

# ...
acl allowed_ips  src "/etc/squid/allowed_ips.txt"
# ...
http_access allow localnet
http_access allow localhost
http_access allow allowed_ips
# And finally deny all other access to this proxy
http_access deny all

这个http_access规则的顺序很重要。确认你在http_access deny all之前添加了这一行。

http_access指令类似于防火墙规则。Squid 从上到下读取规则,并且后面匹配的规则不会被处理。

不管你对配置文件做了什么修改,你需要重新启动 Squid 服务器来使修改生效:

service squid restart

三、Squid 设置账号密码进行身份验证

Squid 可以使用不同的后端,包括 Samba,LDAP 和 HTTP 基本验证来验证用户。

在这个例子中,我们配置 Squid 使用基本验证。它是一个简单的验证方法,内置在 HTTP 协议中。

我们将使用openssl来生成密码,并且附加username:password对到文件/etc/squid/htpasswd文件中,并且显示出来:(密码只能设置 8 位,超过 8 位会忽略超出的)

printf "USERNAME:$(openssl passwd -crypt PASSWORD)\n" | sudo tee -a /etc/squid/htpasswd

例如,创建一个用户名称为mike,并且密码为Pz$lPk76,你将要运行:

printf "mike:$(openssl passwd -crypt 'Pz$lPk76')\n" | sudo tee -a /etc/squid/htpasswd
mike:2nkgQsTSPCsIo

下一步是配置 Squid 去启用 HTTP 基本验证,并且使用这个文件。

打开主要配置文件,添加下面的内容: /etc/squid/squid.conf

...
# Example rule allowing access from your local networks.
# Adapt localnet in the ACL section to list your (internal) IP networks
# from where browsing should be allowed
http_access allow localnet
http_access allow localhost# 自己添加的部分 start
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/htpasswd
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated
# 自己添加的部分 end# And finally deny all other access to this proxy
http_access deny all
...

前面三行我们创建了一个 ACL 名称为 authenticated, 最后一行允许通过验证用户访问。

重启 Squid 服务:

service squid restart

 四、使用 python 的 requests 模块进行验证

import requestsproxy_url = 'http://mike:Pz$lPk76@SERVER_IP:PORT'
proxy = {'http': proxy_url, 'https': proxy_url}
rst = requests.get('https://baidu.com', proxies = proxy)
print(rst.status_code)

查看日志是否正确

tail -f /var/log/squid/access.log

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/127502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

HarmonyOS数据管理与应用数据持久化(一)

一. 数据管理概述 功能介绍 数据管理为开发者提供数据存储、数据管理能力,比如联系人应用数据可以保存到数据库中,提供数据库的安全、可靠等管理机制。 数据存储:提供通用数据持久化能力,根据数据特点,分为用户首选项、…

Spring Cloud应用- Eureka原理、搭建

初期对Spring Cloud的学习以应用搭建为主,所以内容不会太枯燥。 一直以来,自以为Spring全家桶的学习中,Spring framework是基础中的基础,部分内容也还是必须要读源码去理解底层原理,SpringMVC、SpringBoot&#xff0c…

Java多线程编程中之volatile详解

前言 在Java多线程编程中,volatile关键字是一种重要的同步机制,可以理解为低配版synchronized,轻量级的同步策略,保证可见性,不保证原子性,禁止指令重排。它用于确保多线程环境下变量的可见性和顺序性。通过使用volatile关键字,可以避免线程之间的竞争条件和数据不一致性…

11.2树的高度,表达式树,非递归遍历,层序遍历,奇偶树

课上 前序,根左右 中序,左根右 若前序中序相同,则树都没有左节点 求树的高度 表达式树 中缀表达式树 主要考虑括号问题 这个就是考虑递归底层,要结束时的情形;以及根节点的情形; 由于表达式树是满树&…

使用稳定扩散和SAM修改图像内容

推荐稳定扩散AI自动纹理工具: DreamTexture.js自动纹理化开发包 介绍 大型语言模型 (LLM) 和基础计算机视觉模型的最新突破为编辑图像或视频解锁了新的界面和方法。您可能听说过修复、复绘、生成填充和文本到图像;这篇文章将向您展示如何通过…

【git】git拉取代码报错,fatal: refusing to merge unrelated histories问题解决

大家好,我是好学的小师弟。今天准备将之前写的代码,拉到新的工程文件夹(仓库)下面,用了pull命令,结果报错了,报错截图如下 $ git pull https://gitee.com/* #仓库地址 fatal: refusing to merge unrelated histor…

JavaEE-cookie和session

本部分内容包括 cookie基本概念,sendcookies和getcookies代码; session基本概念,session实现登陆界面; 上述过程中涉及的代码如下: 1 import javax.servlet.ServletException; import javax.servlet.annotation.WebSe…

java实现pdf文件添加水印,下载到浏览器

java实现pdf文件添加水印&#xff0c;下载到浏览器 添加itextpdf依赖 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.8</version> </dependency>文件下载到浏览器和指定路径 …

Java-数组的定义与使用

本章重点&#xff1a; 1. 理解数组基本概念 2. 掌握数组的基本用法 3. 数组与方法互操作 4. 熟练掌握数组相关的常见问题和代码 1. 数组的基本概念 1.1 为什么要使用数组 public class TestStudent{public static void main(String[] args){int score1 70;int s…

有色金属冶炼VR虚拟场景互动教学有何优势

真实模拟&#xff1a;VR虚拟现实技术可以提供一个真实的虚拟环境&#xff0c;模拟钢铁制造现场&#xff0c;包括设备、工艺流程、操作规程等&#xff0c;使学员获得直观、真实的体验。 安全可靠&#xff1a;钢铁制造技能培训可以在虚拟环境中进行&#xff0c;不会对人员或设备造…

Java架构师知识产权与标准化

目录 1 导学2 知识产权概述3 保护期限4 知识产权人的确定4 侵权判断5 标准划分想学习架构师构建流程请跳转:Java架构师系统架构设计 1 导学 2 知识产权概述 知识产权是指公民、法人、非法人单位对自己的创造性智力成果和其他科技成果依法享有的民事权。是智力成果的创造人依…

JVM虚拟机:堆结构的逻辑分区

堆内存的逻辑分区 堆内存的逻辑分区如下所示: 堆内存中分为新生代和老年代,二者空间大小1:3。在新生代里面分为两类区域(eden、survivor),三个区域(eden、survivor、survivor),三个区大小比例为8:1:1。 对象存放的位置 栈 当我们new一个对象的时候,首先会将对象…

Jorani远程命令执行漏洞 CVE-2023-26469

Jorani远程命令执行漏洞 CVE-2023-26469 漏洞描述漏洞影响漏洞危害网络测绘Fofa: title"Jorani"Hunter: web.title"Jorani" 漏洞复现1. 获取cookie2. 构造poc3. 执行命令 漏洞描述 Jorani是一款开源的员工考勤和休假管理系统&#xff0c;适用于中小型企业…

如何提高滚柱导轨的精度?

滚柱导轨是一种高精度的传动零部件&#xff0c;起导向作用&#xff0c;如果滚柱导轨的精度受损&#xff0c;则无法达到预期的使用效果&#xff0c;那么&#xff0c;我们应该如何提高滚柱导轨的精度呢&#xff1f; 1、优化材料选型&#xff1a;选用高质量的材料作为制造导轨的原…

vue手机项目如何控制蓝牙连接

要控制蓝牙连接&#xff0c;您需要使用Vue的蓝牙插件或库&#xff0c;例如BLE-Peripheral或cordova-plugin-ble-central。以下是一些基本步骤&#xff1a; 导入蓝牙插件或库。在Vue组件中创建一个蓝牙对象并初始化它。扫描周围的蓝牙设备并连接到所需的设备。一旦连接成功&…

Jetpack:026-Jetpack中的Slider

文章目录 1. 概念介绍2. 使用方法3. 代码与效果3.1 示例代码3.2 运行效果 4. 内容总结 我们在上一章回中介绍了Jetpack多点触控相关的内容&#xff0c;本章回中 主要介绍Slider。闲话休提&#xff0c;让我们一起Talk Android Jetpack吧&#xff01; 1. 概念介绍 我们在本章回…

UEditorPlus v3.6.0 图标补全,精简代码,快捷操作重构,问题修复

UEditor是由百度开发的所见即所得的开源富文本编辑器&#xff0c;基于MIT开源协议&#xff0c;该富文本编辑器帮助不少网站开发者解决富文本编辑器的难点。 UEditorPlus 是有 ModStart 团队基于 UEditor 二次开发的富文本编辑器&#xff0c;主要做了样式的定制&#xff0c;更符…

AI技术发展:防范AI诈骗,守护数字安全

随着AI技术的迅猛发展&#xff0c;人工智能赋予了计算机更多的能力&#xff0c;包括自然语言处理、图像生成、声音合成等。这些领域的突破为人们提供了全新的体验和便捷&#xff0c;但同时也催生了一些潜在的安全风险&#xff0c;其中最突出的就是AI诈骗。本文将探讨如何防范AI…

竖版视频怎么做二维码?扫码播放竖版视频的方法

当我们在将视频转二维码图片展示的时候&#xff0c;一般横版视频在手机展示不会有影响&#xff0c;但是竖版视频会默认用横版的方式播放就会导致无法清晰的看到画面的内容&#xff0c;那么如何将竖版视频生成二维码是很多小伙伴头疼的一个问题。那么下面教大家使用二维码生成器…

mysql使用进阶----查询计划

查询计划 比如下面语句&#xff1a; select * from sa_group_member_t WHERE MEMBER_ROLE_CODE XXXX;在语句之前加explain &#xff0c;可看到查询计划为&#xff1a; —-----------------------------------------------------------------------------------------------…