在一些情况下,需要变更自己的访问 IP,可以通过 Squid
搭建代理服务器实现。
本文使用的是 CentOS 7.6
系统。
一、部署 Squid {#一-部署-Squid}
安装 Squid
。
yum install squid -y
启动服务。
systemctl start squid
二、访问控制 {#二-访问控制}
总有刁民想害郑,疯狂访问朕的HTTP代理服务,所以需要进行一下访问控制。
使用 vim
打开 /etc/squid/squid.conf
配置文件。
-
端口默认是
3128
,建议修改一下。http_port 3128
-
新增
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
-
应用
acl
策略# 禁止该acl策略 http_access deny xxx # 允许该acl策略 http_access allow xxx # 同时选择多个acl是与的关系 http_access allow xxx yyy # 对acl不匹配的请求进行控制 http_access allow !xxx
-
重启服务
# 检查配置 squid -k parse # 重启服务 systemctl restart squid
三、隐藏 IP {#三-隐藏-IP}
通过以上配置后,服务可以实现 HTTP 代理,但是并不能隐藏客户端IP。
要隐藏客户端 IP,需要关闭代理的两个请求头,在配置文件中添加如下配置:
# 高密配置,不暴露源ip
request_header_access Via deny all
request_header_access X-Forwarded-For deny all