在ubuntu上在安装Squid代理服务器

Squid 是一个代理和缓存服务器,它将请求转发到所需的目的地,同时保存请求的内容,当你再次请求相同内容时,他可以向你提供缓冲内容,从而提高访问速度。Squid代理服务器目前支持的协议有:http、SSL、DNS、FTP。

一:安装Squid

1、更新您的系统软件包

复制代码
apt update && sudo apt upgrade -y

2、安装policy代理

复制代码
apt-cache policy squid

3、启动代理,并设置

复制代码
apt install -y squid
systemctl start squid
systemctl enable squid
systemctl status squid

二:配置Squid代理

1、备份Squid配置文件

复制代码
cp /etc/squid/squid.conf  /etc/squid/squid.conf.bk

2、编辑squid.conf

复制代码
vim /etc/squid/squid.conf

3、修改代理端口

在squid.conf中查找http_port 3128

默认端口为3128,你可以修改为任意你想使用的端口,假如你只是希望自己私密使用,你可以选一个别从比较难找到的端口。

4、放通防火墙设置

复制代码
ufw allow 8080/tcp
ufw enable

如未开启防火墙此步可省略。

5、设置Squid缓存大小

复制代码
cache_mem 256 MB

6、配置使用的DNS

复制代码
dns_nameservers 8.8.8.8 8.8.4.4

7、设置ACL访问和http access

设置acl,在squid.conf里面查找下面,并配置或添加。

设置http access访问,想出去的就allow,不想让出去的就deny。

以上配置就基本上配置好了。接下来重启squid服务

复制代码
systemctl restart squid

三:划重点

1、屏蔽 Squid 代理服务器上的传出流量,关闭via on

复制代码
# via on
via off

2、去掉代理标头

复制代码
request_header_access From deny all
request_header_access Server deny all
request_header_access WWW-Authenticate deny all
request_header_access Link deny all
request_header_access Cache-Control deny all
request_header_access Proxy-Connection deny all
request_header_access X-Cache deny all
request_header_access X-Cache-Lookup deny all 
request_header_access X-Forwarded-For deny all
request_header_access Pragma deny all
request_header_access Keep-Alive deny all

3、设置访问密码

设置一个名为test的用户访问密码

复制代码
touch /etc/squid/passwd
chown proxy: /etc/squid/passwd
htpasswd /etc/squid/passwd test

编辑squid.conf,添加如下代码,以启用密码服务。

复制代码
auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

4、调试

显示配置文件中的错误

复制代码
squid -k parse

显示auth的正确位置

复制代码
dpkg -L squid | grep ncsa_auth

四:访问端设置

打开win11的设置,找到"网络和Internet",然后是"代理"

找到手动设置代理,如下图

在这里填上你刚才的Squid服务器IP和访问商品就配置好啦。

相关推荐
Web3探索者10 小时前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
zylyehuo12 小时前
Linux系统中网线与USB网络共享冲突
linux
荣--15 小时前
一键部署不是为了省时间 —— 它是把"买来的 PaaS"变成"自己的平台"的拐点
运维·zabbix·工程化·一键部署·平台化·边界设计
江华森15 小时前
动手实战学 Docker — 从零到集群编排完全指南
运维
Avan_菜菜1 天前
FRP 内网穿透完整实战:从 HTTP 映射到 HTTPS 自签代理
运维·nginx·https
Sokach10152 天前
Linux Shell 脚本从零到能用:一个新手的一天学习总结
linux
SelectDB2 天前
Litefuse 开源并推出单进程轻量模式,25 秒就能跑起来的 Agent 可观测与评估平台
运维·后端·自动化运维
AlfredZhao2 天前
Docker 容器时区不对,`timedatectl` 不存在怎么办?
linux·timezone
zzzzzz3104 天前
9K Star 炸裂开源!这个 C 语言写的代码知识图谱,把 Linux 内核索引压缩到了 3 分钟
linux·服务器·sql
XIAOHEZIcode4 天前
Linux系统鼠标偏移常见原因以及修复方案
linux·运维·游戏