Squid 透明代理.note
一、配置 Squid 透明代理:
client: 1.1.1.1
squid: 1.1.1.254、192.168.10.254
web:192.168.10.1
## 这里的环境需要client直接 curl访问 web(192.168.10.1)1、配置 透明代理:
vim squid.conf
或者:

新版本最好是使用 intercept
2、配置 防火墙,将端口重定向到 squid进行代理:
nft add rule ip nat prerouting iif ens37 tcp dport 80 redirect to 3128
or
iptables -t nat -A PREROUTING -i ens37 -p tcp --dport 80 -j REDIRECT --to-port 3128
# ens37 是客户端流量传入的接口(因为本次实验环境是内外网环境,客户端在外网,因此没有指定客户端地址,正常一般建议加上客户端网段)
·添加一个 头部信息 方便进行测试查看:

访问测试:

二、squid透明代理https:
squid 本地需要信任 ca 根证书
需要安装 squid-openssl ,否则无法成功
vim /etc/squid/squid.conf
# generate-host-certificates=off 一定要是 off,否则重启squid报错
systemctl restart squid
# 配置 防火墙重定向到 squid https端口
nft add rule ip nat prerouting iif ens37 tcp dport 443 redirect to 3129
or
iptables -t nat -A PREROUTING -i ens37 -p tcp --dport 443 -j REDIRECT --to-port 3129·测试:


·关于透明代理的一点问题:
# 在内外网环境中,当透明代理和nat在同一台机器时
外网client如果要访问内网web,需要dnat将其流量重定向到web
但是透明代理却需要将其重定向到本地(会冲突)
# 解决方案:(客户端配置vpn)
透明代理的nat配置为 ip saddr {VPN客户端网段}
当客户端连接vpn时,通过透明代理访问
当客户端断开vpn连接时,通过dnat访问