荣耀之链论坛

 找回密码
 立即注册
搜索
查看: 742|回复: 3

squid 透明代理 加速内网客户端访问网站的速度

[复制链接]

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
发表于 2022-9-9 14:05 | 显示全部楼层 |阅读模式
目的:
加速一些静态内容的访问,比如图片,就不需要每次都重新向服务器获取了,有缓存的话直接本地缓存返回就非常快了

前几年网上都还有一些旁路缓存的软件的,现在再搜索不知道为什么就都没了,是因为带宽高了不需要了吗?
我搭建这个的目的是因为我每次访问github,用户的头像都卡半天,装了这个以后只要是看过的头像就立刻加载出来了,还是很明显的


安装过程:
服务器系统是ROCKYLINUX8 最小化安装

yum install squid
然后编辑配置文件
/etc/squid/squid.conf

把这个打开
http_access deny to_localhost

缓存目录 #单位是M 这个教程自己找吧,我只用来给我家里用,这个设定暂时足够用
cache_dir ufs /var/spool/squid 100 16 256

代理设置 如果这台服务器有多个网卡,建议手动指定IP 比如这样写http_port 192.168.1.1:3130
http_port 3130   #这3条必须这样设定 少一个都不行 不这样写也不行 我多次测试得出的结论
http_port 3128 intercept
https_port 3129 transparent cert=/etc/squid/certs/squid-ca-cert-key.pem key=/etc/squid/certs/squid-ca-key.pem ssl-bump
ssl_bump none all

然后保存

然后设置生成证书
yum install openssl
mkdir /etc/squid/certs
cd /etc/squid/certs
openssl req -new -newkey rsa:2048 -sha256 -days 365 -nodes -x509 -extensions v3_ca -keyout squid-ca-key.pem -out squid-ca-cert.pem
cat squid-ca-cert.pem squid-ca-key.pem >> squid-ca-cert-key.pem
chown squid:squid -R /etc/squid/certs

检查配置文件squid -k parse

最后启动服务 service squid start
就可以了

然后这台服务器开启转发
echo 1 > /proc/sys/net/ipv4/ip_forward
设置iptables透明代理的语句
iptables -t nat -I PREROUTING 1 -i eth0 -p tcp --dport 443 -j REDIRECT --to-ports 3129
iptables -t nat -I PREROUTING 2 -i eth0 -p tcp --dport 80 -j REDIRECT --to-ports 3128

这样服务器就设置好了

然后客户端把网关指向这台服务器就可以了,客户端浏览网站的时候就是被透明代理了

234楼的内容是我参考过了,里面的配置都有点问题,至少在我这个版本上完全按照他的配置写有的连服务都启动不了,都有各种问题


最后附上官方文档
http://www.squid-cache.org/Versions/v4/cfgman/
很详细的文档,但是全英文

回复

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2022-9-9 20:37 | 显示全部楼层
这个教程有提到ssl证书的操作
https://elatov.github.io/2019/01/using-squid-to-proxy-ssl-sites/

其中和默认配置不同的地方就是

  1. http_port 3128 ssl-bump cert=/etc/squid/certs/squid-ca-cert-key.pem generate-host-certificates=on dynamic_cert_mem_cache_size=16MB
  2. https_port 3129 intercept ssl-bump cert=/etc/squid/certs/squid-ca-cert-key.pem generate-host-certificates=on dynamic_cert_mem_cache_size=16MB
  3. sslcrtd_program /usr/lib64/squid/security_file_certgen -s /var/lib/ssl_db -M 16MB
  4. #上面那条语句需要手动创建证书目录
  5. #/usr/lib64/squid/security_file_certgen -c -s /var/lib/ssl_db -M 16MB  #注意:这里多一个-c
  6. acl step1 at_step SslBump1
  7. ssl_bump peek step1
  8. ssl_bump bump all
  9. ssl_bump splice all
复制代码

利用这个方法配置以后还是需要添加代理服务器,并且访问https的时候就会提示证书问题,需要手动把squid创建的那个证书安装到电脑里面才不会提示,这不是多此一举吗,默认的配置都不会提示证书问题
蛋疼

附件是保存的mhtml网页




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2022-9-9 20:45 | 显示全部楼层
#https://cloud-atlas.readthedocs. ... nsparent_proxy.html
#这个教程也有https相关的





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

1326

主题

2373

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
10267
 楼主| 发表于 2022-9-10 15:18 | 显示全部楼层
https://maple52046.github.io/posts/setup-squid-transparent-proxy-with-docker/
透明代理的一个教程





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

荣耀之链

GMT+8, 2025-6-18 05:30 , Processed in 0.013627 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表