在Linux上安装和配置Squid代理服务器

文章目录
  • 前言
  • 环境描述
  • 安装Squid代理
  • 配置Squid正向代理
  • 配置代理服务器
  •  限制IP访问
  • 规定时间内禁止联网
  • 禁止访问指定服务器
  • 禁止访问指定的域名
  • 前言

    Squid代理是一种开源的网络代理软件,广泛应用于Linux系统中。 Squid代理服务器支持很多缓存协议(ICP、HTCP、CARP、WCCP),并允许代理HTTP、HTTPS、FTP等流量。 Squid 易于扩展,您可以使用它来过滤内容或限制每个用户或站点的带宽,它支持用户身份验证(包括 Active Directory LDAP 身份验证),主要用于缓存和转发网络请求,以提高网络性能和安全性。Squid代理服务器支持多种代理模式,包括传统代理、透明代理和反向代理。

    1. 传统代理(正向代理) :这种模式下,客户端需要手动指定代理服务器的IP地址和端口号才能通过Squid代理服务器上网。这种方式适用于互联网环境,但对客户端配置要求较高。
    2. 透明代理:在这种模式下,客户端无需指定代理服务器的地址和端口,而是通过默认路由或防火墙策略将Web访问重定向给代理服务器处理。这种方式对客户端配置较为友好,用户几乎无感知地使用代理服务。
    3. 反向代理:反向代理通常用于将内部WEB服务器的请求转发到外部WEB服务器,从而实现加速和负载均衡。反向代理可以缓存请求资源,并在缓存命中时直接返回给客户端,否则从后端服务器获取并返回结果。

    环境描述

    Ubuntu 作为Squid代理服务器,配备两块网卡

    • 192.168.0.201/24 网关192.168.0.1 (外网)
    • 192.168.0.202/24 无网关 (内网)

    Windows Server 作为 客户端,仅配置IP和掩码,默认无法上互联网

    • 192.168.0.250/24 无网关

    安装Squid代理

    使用包管理器在主机上安装 Squid 包。根据您的 Linux 版本,使用以下命令之一

    Oracle、Rocky Linux、CentOS、Fedora 或 Red Hat Enterprise Linux

    dnf install -y squid

    SUSE Linux 企业服务器

    zypper install squid -y

    Kali、Ubuntu、Debian、UOS、Kylin

    apt-get install squid -y

    如果你想在 Squid 中实现用户身份验证,请再安装一个包

    RHEL/CentOS/Fedora

    dnf -y install httpd-tools

    Kali/Ubuntu/Debian/UOS/Kylin

    sudo apt install apache2-utils -y

    使用systemd启动Squid并设置为开机启动,运行服务并检查其状态。

    systemctl enable --now squid
    systemctl status squid

    配置Squid正向代理

    主配置文件一般都在/etc/squid/squid.conf,需要先复制一份做备份,预防修改坏了,使用指令

    sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak

    然后再进行编辑sudo vi /etc/squid/squid.conf,我们找到配置IP地址的那行,默认是没有192.168.0.0/24的,根据实际情况添加一行,再这里我们也能找到默认端口号3128

    acl localnet src 192.168.0.0/24

    默认情况下,Squid 接受端口 TCP/3128 上的用户连接。您可以更改http_port中的端口号。我将squid监听端口改为63333

    http_port 63333

    确保防火墙允许通过Squid的端口。可以通过以下命令开放该63333端口

    iptables -I INPUT -p tcp --dport 63333 -j ACCEPT

    然后在编辑子配置文件sudo vi /etc/squid/conf.d/debian.conf,将http_access allow localnet取消注释

    重启一下服务。

    systemctl restart squid

    配置代理服务器

    将Windows Server客户端配置代理IP及端口,这里配置的也就是环境中用于内网的IP 192.168.0.202

    设置好了保存,再访问网站,就已经可以正常联网了。

     限制IP访问

    可以通过限制固定IP来上网,需要在配置文件 /etc/squid/squid.conf 添加

    acl badhost src 192.168.0.250

    或者仅允许一个子网的客户端进行访问

    acl localnet src 192.168.0.0/24

    规定时间内禁止联网

    acl worktime time MTWHF 18:00-7:00
    http_access deny worktime

    禁止访问指定服务器

    acl baddst dst 192.168.0.100
    acl baddst dst 8.8.8.8

    禁止访问指定的域名

    http_access deny badhost baddomain

    Squid还有很多功能,这里就不一一展示了,可以自行去官网查看。

    0

    1. This post has no comment yet

    发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    使用DLVM本地部署DeepSeek(补充)
    使用DLVM本地部署DeepSeek(补充)
    Linux 6 张图
    Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
    Error response from daemon: Get “https://registry-1.docker.io/v2/”: net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
    Linux 2 张图
    MySQL 30周年庆 OCP 认证免费
    MySQL 30周年庆 OCP 认证免费
    Linux 5 张图
    使用Kubeadm在Ubuntu 20.04中部署Kubernetes
    使用Kubeadm在Ubuntu 20.04中部署Kubernetes
    Linux 24 张图
    Wifipumpkin3 安装记录
    Wifipumpkin3 安装记录
    Linux 1 张图
    在Ubuntu系统安装KVM虚拟化
    在Ubuntu系统安装KVM虚拟化
    Linux 14 张图
    © 2025 诺诺博客如有侵权请联系删除 | 网站地图 | 百度统计 | 又拍云CDN加速
    为了获得更好的浏览效果 建议您使用IE8.0及以上版本浏览器登陆本站点 · 服务器托管于腾讯云