CentOS 7 配置squid 透明代理(测试笔记)

本文介绍如何在CentOS 7上配置Squid作为透明代理服务器,包括系统准备、Squid安装配置及iptables设置等关键步骤。

一:计划进行的方式,

1.系统安装的是centos 7 min。

2.squid是直接yum install squid.service安装的。

3.因为对firewall-cmd不了解,所以先按照从前方式使用iptables安装完成以后,在使用firewall-cmd来操作。

4.系统装好以后,首先进行2个动作如下:

   4.1 关闭selinux。

        a.vi /etc/sysconfig/selinux

        b.修改SELINUX=enforcing为disabled

   4.2 打开路由转发。

        a.vi /etc/sysctl.conf

        b.输入net.ipv4.ip_forward=1

二.squid安装配置:

1. 安装 yum install squid,需要按2个y.

2. cd /etc/squid

3. cp squid.conf squidbackup.conf

4. vi  squid.conf

5.删除cache_dir前面的#号,acl根据自己的需求定义,在根据自己的需求注释掉deny的阻止语句。

6. http_port  3128 后面加个单词  transparent 

7.保存退出,squid -k parse 检查配置文件,squid -zX 初始化。

8.systemctl enable squid.service 开机启动

三.iptables配置安装:

1.systemctl stop firewall.service

2. systemctl disable firewalld.service
3.yum install iptables-services

4.cd /etc/sysconfig/

5.vi iptables注释*filter中2条带REJECT的规则。

6.iptables-restore iptables

7.cp iptables iptablesbackup

8.rm iptables

9.iptables -t nat -F
10.iptables -t nat -A PREROUTING  -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
11.iptables -t nat -A POSTROUTING  -j SNAT --to 网卡ip

12.rm iptables

13.service iptables  save

14.客户机配置网关,测试。

四.准备启用firewall-cmd,关闭iptables

1.待续····················



备注:

1.实际上透明代理的iptables只需要nat链表的存在,并且加入iptables -t nat -A PREROUTING  -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128就可以了,

但是这里必须iptables -t nat -A POSTROUTING  -j SNAT --to 网卡ip,不是因为透明代理这个是必须的,而是因为我的出口设备进行了类似于ip认证的策略,如果没有这句,防火墙将进行阻断。





### 在 CentOS 7配置 Squid 反向代理的详细步骤和配置文件示例 在 CentOS 7配置 Squid 作为反向代理需要进行以下操作,包括安装、配置以及测试。以下是完整的指南: #### 1. 安装 Squid 首先,确保系统已更新并安装 Squid 软件包: ```bash sudo yum update -y sudo yum install squid -y ``` #### 2. 配置 Squid 反向代理 编辑 Squid 的主配置文件 `/etc/squid/squid.conf`。以下是配置文件的一个示例,假设目标服务器为 `http://example.com`,监听端口为 `3128`。 ```bash # 清空原有配置或备份原有配置 sudo mv /etc/squid/squid.conf /etc/squid/squid.conf.bak sudo touch /etc/squid/squid.conf sudo chmod 644 /etc/squid/squid.conf ``` 将以下内容写入 `/etc/squid/squid.conf` 文件中: ```conf # 定义 ACL 规则 acl localnet src 0.0.0.0/8 # RFC 1122 "this" network (LAN) acl localnet src 10.0.0.0/8 # RFC 1918 local private network (LAN) acl localnet src 100.64.0.0/10 # RFC 6598 shared address space (CGN) acl localnet src 169.254.0.0/16 # RFC 3927 link-local (directly plugged) machines acl localnet src 172.16.0.0/12 # RFC 1918 local private network (LAN) acl localnet src 192.168.0.0/16 # RFC 1918 local private network (LAN) acl localnet src fc00::/7 # RFC 4193 local private network range acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines # HTTP 监听端口 http_port 3128 # 反向代理设置 cache deny all http_access allow localnet http_access deny all # 定义目标服务器 accelerated_domains .example.com http_port 80 accel defaultsite=example.com vhost cache_peer example.com parent 80 0 no-query originserver name=myAccel always_direct allow myAccel # 日志文件路径 access_log /var/log/squid/access.log squid ``` 上述配置中: - `http_port 3128` 表示 Squid 监听的端口为 3128[^1]。 - `http_port 80 accel defaultsite=example.com vhost` 表示启用反向代理功能,并指定默认站点为 `example.com`[^2]。 - `cache_peer example.com parent 80 0 no-query originserver name=myAccel` 定义了目标服务器地址和端口[^3]。 #### 3. 启动和启用 Squid 服务 保存配置文件后,启动并启用 Squid 服务: ```bash sudo systemctl start squid sudo systemctl enable squid ``` 检查 Squid 服务状态: ```bash sudo systemctl status squid ``` #### 4. 测试反向代理 通过浏览器或 `curl` 命令测试反向代理是否正常工作。例如: ```bash curl -I http://localhost/ ``` 如果一切正常,应该可以看到目标服务器(如 `example.com`)返回的响应头信息。 #### 5. 防火墙设置 确保防火墙允许 HTTP 和 HTTPS 流量: ```bash sudo firewall-cmd --permanent --add-port=80/tcp sudo firewall-cmd --permanent --add-port=443/tcp sudo firewall-cmd --reload ``` --- ### 注意事项 - 确保目标服务器(如 `example.com`)可以正常访问。 - 如果需要支持 HTTPS,请使用 SSL Bump 功能,但这需要额外的证书配置[^4]。 - 日志文件位于 `/var/log/squid/access.log`,可以查看请求日志以排查问题。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值