CentOS9部署Squid 5.5代理服务教程

下文主要包括:CentOS 9 安装 + 配置 Squid(5.x) 的完整、可行配置方案,含基础正向代理、允许内网、防火墙、SELinux、开机自启和测试,实现内网不走代理,外网需登录认证放行(2小时凭据有效期内免密)

一、环境说明

  • 系统:CentOS 9 Stream
  • Squid 版本:5.x(官方源自带)
  • 内网网段示例:192.168.1.0/24
  • 代理端口:3128

二、安装 Squid

# 1. 更新系统
sudo dnf update -y

# 2. 安装 squid
sudo dnf install squid -y

# 3. 查看版本(确认 5.x)
squid -v

三、备份配置文件(重要)

#备份配置
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf.bak
#安装http-tools支持包(身份验证功能需要用到)
dnf install -y squid httpd-tools #httpd-tools 包含 htpasswd,用来创建账号密码文件
#创建密码文件(第一次用 -c)
htpasswd -c /etc/squid/passwd user1 #输入密码、确认密码
#再加用户(不要 -c,否则覆盖)
htpasswd /etc/squid/passwd user2
#权限必须严格
chown squid:squid /etc/squid/passwd
chmod 600 /etc/squid/passwd
#查看用户
cat /etc/squid/passwd


四、基础配置(/etc/squid/squid.conf)

#编辑Squid配置文件
sudo vim /etc/squid/squid.conf
#Squid 配置文件的规则是 从上到下匹配,匹配到就生效

4.1 关键配置(直接替换 / 修改)

# 1. 监听端口(默认 3128)
http_port 3128
#https_port 443 cert=/etc/squid/ssl_cert/squid.pem key=/etc/squid/ssl_cert/squid.pem     #如启用https需增加自签名证书

# 2. 缓存目录(默认即可,生产可加大;纯代理也可以 cache deny all)
cache_dir ufs /var/spool/squid 100 16 256
cache_mem 256 MB
maximum_object_size 80 MB

# 3. 日志路径
access_log /var/log/squid/access.log combined
cache_log /var/log/squid/cache.log

# 4. 允许的内网段(改成你的网段)
acl localnet src 192.168.1.0/24
acl localnet src 172.16.0.0/12
acl localnet src 10.0.0.0/8

# 5. 访问控制:先允许内网,最后拒绝所有
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic realm "Squid Proxy Login"
auth_param basic credentialsttl 2 hours   #凭证缓存有效期 2 小时(如缺少这行,默认值为2小时)
#auth_param basic credentialsttl 0        #凭证不限时,至重启squid失效
acl authenticated proxy_auth REQUIRED
http_access allow localnet            #内网访问直接放通,如全部要认证则这条必须注释掉
http_access allow authenticated       #启用鉴权访问(如内网直接放通的则内网不需要鉴权)
http_access deny all

# 6. 主机名(随便填)
visible_hostname squid-proxy

# 7. 运行用户/组(默认 squid)
cache_effective_user squid
cache_effective_group squid

说明:默认配置很多,只改上面这几处即可,其他保持默认。


五、初始化缓存目录

sudo squid -z
# 出现 "Creating swap directories" 即可

六、启动服务 + 开机自启

# 启动
sudo systemctl start squid

# 开机自启
sudo systemctl enable squid

# 查看状态(active (running) 正常)
sudo systemctl status squid

七、防火墙放行 3128

sudo firewall-cmd --add-port=3128/tcp --permanent
sudo firewall-cmd --reload

# 验证
sudo firewall-cmd --list-ports | grep 3128

八、SELinux 放行(CentOS 9 默认开启)

# 允许 squid 监听 3128
sudo setsebool -P squid_connect_any 1

# 或更精准:
sudo semanage port -a -t http_port_t -p tcp 3128

九、FRP部署

9.1 Frps安装(与Squid同侧)9.1 Frps安装(与Squid同侧)

#安装Frp
wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz
tar -zxvf frp_0.58.1_linux_amd64.tar.gz     #解压
mv frp_0.58.1_linux_amd64 frp               #重命名目录为frp
chown -R root:root frp                      #目录权限设置

#Frps配置
cd /root/frp
vi frps.toml                    #开始配置frp服务端配置文件
#Frps配置文件示例
bindPort = 7000                 #监听端口
auth.token = "Abc123456"        #填写你的真实token,建议提高复杂性

# Windows 客户端 frpc.toml 配置示例
serverAddr = "服务器IP"           # 填写你 VPS 的真实 IP
serverPort = 7000                 #服务器监听端口
auth.token = "Abc123456"

# 1. 主访客:尝试通过 XTCP 进行 P2P 打洞
[[visitors]]
name = "squid-xtcp-visitor"
type = "xtcp"
serverName = "squid-xtcp"          # 对应 VPS 上新增的 XTCP 代理名称
secretKey = "123456abc"
bindAddr = "127.0.0.1"
bindPort = 13128
keepTunnelOpen = true
fallbackTo = "squid-stcp-fallback" # 打洞失败自动回退到下面的 STCP 访客
fallbackTimeoutMs = 500

# 2. 备用访客:当 XTCP 失败时,通过服务器中转流量
[[visitors]]
name = "squid-stcp-fallback"
type = "stcp"
serverName = "squid-stcp"         # 对应 VPS 上原有的 STCP 代理名称
secretKey = "123456abc"
bindAddr = "127.0.0.1"
bindPort = -1                     # 仅作内部回退通道,不单独占用端口

#测试连接效果
curl -x http://127.0.0.1:3128 http://www.baidu.com
# 返回百度页面即成功

9.2 Frpc安装(与Squid同侧)

  • 代理地址:Squid 服务器 IP
  • 端口:3128
  • 浏览器 / 系统代理设置后访问外网测试
  • 9.2 Frpc安装(与Squid同侧)
  • 代理地址:Squid 服务器 IP
  • 端口:3128
  • 浏览器 / 系统代理设置后访问外网测试。

9.3 Frpc安装(本机/客户机)

  • 代理地址:Squid 服务器 IP
  • 端口:3128
  • 浏览器 / 系统代理设置后访问外网测试
  • 9.2 Frpc安装(与Squid同侧)
  • 代理地址:Squid 服务器 IP
  • 端口:3128
  • 浏览器 / 系统代理设置后访问外网测试。

十、测试代理(本机或内网机器)

9.1 本机测试

curl -x http://127.0.0.1:3128 http://www.baidu.com
# 返回百度页面即成功

9.2 内网客户端测试(Windows/Linux)

  • 代理地址:Squid 服务器 IP
  • 端口:3128
  • 浏览器 / 系统代理设置后访问外网测试。

十、常用优化(可选)

10.1 加大缓存(例如 2GB)

cache_dir ufs /var/spool/squid 2048 16 256

10.2 禁止缓存大文件(如 >100M)

maximum_object_size 100 MB

10.3 黑名单(禁止访问某些域名)

acl blacklist dstdomain .qq.com .taobao.com
http_access deny blacklist

十一、常见问题排查

  1. 启动失败tail -f /var/log/squid/cache.log 看报错
  2. 客户端连不上:检查防火墙 3128、SELinux、ACL 网段是否正确
  3. 能连但上不了网:检查服务器本身能否上网、DNS 是否正常、是否被GFW
  4. 不用密码也能上:检查:http_access allow authenticated 必须在 http_access deny all 之前,且没有任何允许 IP 的规则。
  5. 认证失败:密码文件权限必须 600、属主 squid
    确认路径:/usr/lib64/squid/basic_ncsa_auth(64 位系统)
  6. SELinux 导致认证卡着:setsebool -P squid_connect_any 1
  7. 查看访问日志:tail -f /var/log/squid/access.log
  8. 配置语法检查:squid -k parse
  9. 重载配置(不重启服务):squid -k reconfigure

Our Services

Worpress

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Web Design

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Ecommerce

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Brand Now

SEO

Lorem ipsum dolor amet consectetur adipiscing elit. Nunc mi dui placerat eu faucibus vel, efficitur quis magna. Pellentesque habitant morbi tristique senectus et netus et malesuada.

Read More

Our Team

zahera

Zahera

(HR)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Alex

Alex

(CEO)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Alex

Sara

(CCO)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Mark

Mark

(Manager)

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean vel tempor sem. Vestibulum suscipit faucibus sem ut porta. Integer ut justo euismod, auctor turpis et

Testimonials

  • Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit,
    Safira
    (Quia, CEO)
  • At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.
    Alana
    (Wirate, PA)
  • Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
    Sara
    (Yahoo, Manager)

Our Partners