linux搭建squid代理服务器的完整步骤

下面是详细讲解“Linux搭建Squid代理服务器的完整步骤”的攻略。其中,笔者以在Ubuntu 18.04系统上安装Squid为例介绍,其他系统可根据情况做相应调整。

1. 安装Squid

在终端输入以下命令,安装Squid:

sudo apt-get update
sudo apt-get install squid

2. 配置Squid

在安装完成后,需要进行配置。

2.1 配置Squid访问控制

打开Squid配置文件:sudo vi /etc/squid/squid.conf

找到http_access deny all行,注释掉这一行,并添加以下规则:

# 禁止直接访问外部网站
http_access deny !Safe_ports

# 禁止 CONNECT 方法
http_access deny CONNECT !SSL_ports

# 允许 localhost 访问
http_access allow localhost

# 允许内部网络访问
http_access allow your_network

# 其他都禁止
http_access deny all

注意,上述your_network是指允许内部网络访问,需要根据实际情况进行修改。

2.2 配置Squid缓存

在配置文件中搜索cache_dir,找到以下行:

# cache_dir ufs /var/spool/squid 100 16 256

将其修改为:

cache_dir ufs /var/spool/squid 100 16 256

其中,/var/spool/squid是Squid使用的缓存文件目录。

2.3 配置Squid日志

在配置文件中搜索access_log,并将其修改为:

access_log /var/log/squid/access.log squid

然后搜索cache_log,将其修改为:

cache_log /var/log/squid/cache.log

2.4 配置Squid端口

默认情况下,Squid使用的端口是3128,如果需要修改,可以搜索http_port,将其修改为:

http_port 8080

2.5 配置Squid缓存文件大小

默认情况下,Squid的缓存文件大小是100MB,可以通过搜索cache_mem,将其修改为:

cache_mem 256 MB

2.6 保存和退出配置文件

完成以上配置后,保存并退出配置文件。命令为:ctrl+c,输入:wq,回车即可。

3. 启动Squid

在终端输入以下命令,启动Squid服务:

sudo systemctl start squid

4. 验证Squid是否可用

在终端输入以下命令,验证Squid是否可用:

curl -x 127.0.0.1:8080 www.baidu.com

如果返回的是百度的HTML源码,则说明Squid已经可以正常工作。

示例1:使用Squid代理访问百度

在终端输入以下命令:

curl -x 127.0.0.1:8080 www.baidu.com

如果返回的是百度的HTML源码,则说明Squid已经可以正常工作,可以通过Squid代理访问百度了。

示例2:使用Squid代理访问Google

在终端输入以下命令:

curl -x 127.0.0.1:8080 www.google.com

因为Squid配置中,禁止直接访问外部网站,所以返回的是错误信息。

以上就是安装和配置Squid代理服务器的完整步骤,希望可以帮到你。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:linux搭建squid代理服务器的完整步骤 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • idea中Java实体类怎样生成序列化的版本号的方法

    如何在 IDEA 中生成序列化的版本号 在 IDEA 中生成序列化的版本号,可以通过使用 serialVersionUID 字段来实现。serialVersionUID是一个长整型的常量,用于表示序列化类的版本号。在序列化和反序列化过程中,如果类的版本号发生变化,可以防止出现错误的反序列化。 以下是在 IDEA 中生成序列化的版本号的步骤: 步骤一:创建 J…

    other 2023年6月28日
    00
  • C语言实现动态链表的示例代码

    让我们来讲解C语言实现动态链表的示例代码的完整攻略。 1. 概述 动态链表是指链表在运行时动态地申请内存空间,可以根据需要自由地进行插入和删除操作。相对于静态链表,动态链表具有更大的灵活性和扩展性。 在C语言中,动态链表可以通过结构体指针实现。本文介绍了一个简单的C语言实现动态链表的示例代码。 2. 定义链表结构体 首先,我们需要定义链表的结构体,包括数据和…

    other 2023年6月27日
    00
  • Laravel 5+ .env环境配置文件详解

    下面是关于“Laravel 5+ .env环境配置文件详解”的完整攻略: 什么是.env文件 在Laravel 5及以上版本中,.env文件是一个非常重要的配置文件,它可以让你轻松地配置的环境相关的变量。 这样一来,你就不需要在代码中硬编码环境相关的变量了,而是可以在.env文件中进行灵活的配置。这样,在不同的环境中使用相同的代码时就能够通过简单地修改.en…

    other 2023年6月25日
    00
  • C语言每日练习之二叉堆

    C语言每日练习之二叉堆 什么是二叉堆? 二叉堆是一种特殊的二叉树,它满足两个特性: 堆的父节点的键值总是大于或等于(小于或等于)任何一个子节点的键值; 堆总是一棵完全二叉树。 实现二叉堆 数据结构 为了实现二叉堆,我们需要先定义数据结构。二叉堆常常使用数组来表示,数组中第一个元素一般为根节点,其余元素依次为树中其它节点的值。通过数组下标计算节点间的关系,可以…

    other 2023年6月27日
    00
  • Python动态参数/命名空间/函数嵌套/global和nonlocal

    Python动态参数 在Python中,我们可以使用动态参数来处理不确定数量的参数。有两种类型的动态参数:args和*kwargs。 *args:它允许我们传递任意数量的非关键字参数给函数。这些参数被收集到一个元组中,可以在函数内部进行处理。 **kwargs:它允许我们传递任意数量的关键字参数给函数。这些参数被收集到一个字典中,可以在函数内部进行处理。 下…

    other 2023年8月8日
    00
  • iOS13.2开发者预览版beta1更新了什么 更新内容及升级方法(附全机型固件及描述文件下载

    iOS 13.2开发者预览版beta1更新内容及升级方法攻略 更新内容 iOS 13.2开发者预览版beta1已经发布,其中包含了以下更新内容: Deep Fusion摄影技术:适用于iPhone 11、iPhone 11 Pro和iPhone 11 Pro Max的新摄影技术,可提供更出色的细节和更低的噪音水平。 支持AirPods Pro:可定制的降噪功…

    other 2023年6月26日
    00
  • 关于java:使用okhttpclient的https请求

    以下是关于“使用OkHttpClient进行HTTPS请求”的完整攻略,过程中包含两个示例。 背景 OkHttpClient是一个流行的Java客户端库,它支持HTTP/2和WebSocket,并提供了易用的API。在进行HTTPS请求时,我们需要使用OkHttpClient的SSL套接字工厂来确保安全性。本攻略将介绍如何使用OkHttpClient进行HT…

    other 2023年5月9日
    00
  • vue cli4.0项目引入typescript的方法

    第一步:安装Vue CLI 和 Typescript 首先,你需要安装 Vue CLI 和 Typescript。运行如下命令: npm install -g @vue/cli npm install -g typescript 第二步:创建 Typescript 项目 使用 Vue CLI 创建一个新的项目,并选择手动配置,勾选需要的特性。运行如下命令: …

    other 2023年6月27日
    00
合作推广
合作推广
分享本页
返回顶部