在一些情况下,需要变更自己的访问 IP,可以通过 Squid 搭建代理服务器实现。

本文使用的是 CentOS 7.6 系统。

一、部署 Squid

安装 Squid

yum install squid -y
  • 1.

启动服

systemctl start squid
  • 1.

二、访问控制

总有刁民想害郑,疯狂访问朕的HTTP代理服务,所以需要进行一下访问控制。

使用 vim 打开 /etc/squid/squid.conf 配置文件。

  1. 端口默认是 3128,建议修改一下。
http_port 3128
  • 1.
  1. 新增 acl 策略
    acl 策略主要有以下几种:
# 配置访问源ip,采用子网掩码的方式,可以指定网段
acl home src xxx.xxx.xx.xx/xx

# 配置访问目标ip,采用子网掩码的方式,可以指定网段
acl home dst xxx.xxx.xx.xx/xx

# 配置访问目标端口
acl home port xxx

# 配置访问目标域名
acl home dstdomain .xxxx.com

# 配置访问目标网站,支持正则,-i表示不区分大小写
acl home url_regex -i ^https://

# 配置访问目标路径,支持正则,-i表示不区分大小写
acl home url_regex -i \.html$

# 配置访问时间,MTWHF为星期的首字母
acl home time MTWHF 08:30-17:30

# 配置客户机最大连接数
acl home maxconn 20
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  1. 应用 acl 策略
# 禁止该acl策略
http_access deny xxx

# 允许该acl策略
http_access allow xxx

# 同时选择多个acl是与的关系
http_access allow xxx yyy

# 对acl不匹配的请求进行控制
http_access allow !xxx
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  1. 重启服务
# 检查配置
squid -k parse

# 重启服务
systemctl restart squid
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

三、隐藏 IP

通过以上配置后,服务可以实现 HTTP 代理,但是并不能隐藏客户端IP。

要隐藏客户端 IP,需要关闭代理的两个请求头,在配置文件中添加如下配置:

# 高密配置,不暴露源ip
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
  • 1.
  • 2.
  • 3.