Squid代理服务器应用(传统与透明)
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,实验原理图第一步:配置squid代理服务器#远程共享并挂载源码包[root@squid ~]# smbclient -L //192.168.142.1[root@squid ~]# mount.ci
千家信息网最后更新 2025年12月02日Squid代理服务器应用(传统与透明)
实验原理图
第一步:配置squid代理服务器
#远程共享并挂载源码包[root@squid ~]# smbclient -L //192.168.142.1[root@squid ~]# mount.cifs //192.168.142.1/squid /mnt#解压源码包[root@squid ~]# cd /mnt[root@squid mnt]# tar zxvf squid-3.4.6.tar.gz -C /opt#安装编译环境[root@squid mnt]# yum install gcc gcc-c++ make -y#切入源码包目录[root@squid mnt]# cd /opt/squid-3.4.6/#配置configure组件项[root@squid squid-3.4.6]# ./configure --prefix=/usr/local/squid \>--sysconfdir=/etc \>--enable-arp-acl \>--enable-linux-netfilter \>--enable-linux-tproxy \>--enable-async-io=100 \>--enable-err-language="Simplify_Chinese" \>--enable-underscore \>--enable-poll \>--enable-gnuregex#编译与安装[root@squid squid-3.4.6]# make && make install#建立服务命令软链接到系统中,便于管理[root@squid squid-3.4.6]# ln -s /usr/local/squid/sbin/* /usr/local/sbin#添加程序用户[root@squid squid-3.4.6]# useradd -M -s /sbin/nologin squid#修改服务目录的属主和属组[root@squid squid-3.4.6]# chown -R squid.squid /usr/local/squid/var#修改squid.conf配置文件[root@squid squid-3.4.6]# vim /etc/squid.confhttp_port 3128#在3128端口条目下追加以下条目#指定缓存功能所使用的内存空间大小,建议设为物理内存的1/4cache_mem 64 MB#允许用户下载最大文件大小reply_body_max_size 10 MB#允许保存到缓存空间的站点对象大小maximum_object_size 4096 KB#添加程序用户cache_effective_user squid#添加用户组cache_effective_group squid#检查配置文件语法[root@squid squid-3.4.6]# squid -k parse#初始化缓存目录[root@squid squid-3.4.6]# squid -z#启动服务[root@squid squid-3.4.6]# squid#查看服务端口状态[root@squid squid-3.4.6]# netstat -ntap | grep squidtcp6 0 0 :::3128 :::* LISTEN 31862/(squid-1) #切换启动进程目录[root@squid squid-3.4.6]# cd /etc/init.d#创建启动脚本[root@squid init.d]# vim squid#!/bin/bash#chkconfig: 2345 90 25PID="/usr/local/squid/var/run/squid.pid"CONF="/etc/squid.conf"CMD="/usr/local/squid/sbin/squid"case "$1" instart) netstat -ntap | grep squid &> /dev/null if [ $? -eq 0 ] then echo "squid is running" else echo "正在启动 squid...." $CMD fi ;;stop) $CMD -k kill &> /dev/null rm -rf $PID &> /dev/null ;;status) [ -f $PID ] &> /dev/null if [ $? -eq 0 ] then netstat -ntap | grep squid else echo "squid is not running" fi ;;restart) $0 stop &> /dev/null echo "正在关闭 squid..." $0 start &> /dev/null echo "正在启动 squid..." ;;reload) $CMD -k reconfigure ;;check) $CMD -k parse ;;*) echo "用法:$0{start|stop|reload|status|check|restart}" ;;esac#授予脚本执行权限[root@squid init.d]# chmod +x squid#添加脚本到service管理器[root@squid init.d]# chkconfig --add squid #添加服务开机自启动[root@squid init.d]# chkconfig --level 35 squid on#使用脚本可管理squid服务[root@squid init.d]# service squid stop[root@squid init.d]# service squid start 正在启动 squid....[root@squid init.d]# netstat -ntap | grep squidtcp6 0 0 :::3128 :::* LISTEN 48115/(squid-1) #清除防火墙所有规则[root@squid init.d]# iptables -F#关闭增强型安全功能[root@squid init.d]# setenforce 0#设着防火策略,用以放通3128端口[root@squid init.d]# iptables -I INPUT -p tcp --dport 3128 -j ACCEPT第二步:配置Web网站服务器
[root@web ~]# systemctl stop firewalld.service [root@web ~]# setenforce 0[root@web ~]# yum install httpd -y[root@web ~]# systemctl start httpd第三步:使用客户端访问网页
使用浏览访问192.168.142.139
第四步:配置客户端使用代理服务器,验证代理服务
1.打开浏览器的工菜单,选择"Internet选项"
2.选择"局域网设置",选中"为LAN使用代理服务器""并指定服务器地址和端口
3.再次访问192.168.142.139
4.回到web服务端查看服务日志,可见来访记录是代理服务器的地址
[root@web ~]# vim /etc/httpd/logs/access_log 192.168.142.131 - - [04/Dec/2019:19:04:28 +0800] "GET /noindex/css/fonts/ExtraBold/OpenSans-ExtraBold.eot? HTTP/1.1" 404 248 "http://192.168.142.139/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"由此可见传统代理是使用代理服务器的地址进行访问web服务的,适用于Internet,当需名却指定服务端!
以上是Squid传统代理服务,下面我们来配置透明代理服务
设置透明代理
第一步:配置代理服务器网卡
1.修改ens33 网卡信息
[root@squid ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #修改dhcp为staticBOOTPROTO=static#末行追加IP地址、子网掩码和网关IPADDR=192.168.100.1NETMASK=255.255.255.0[root@squid ~]# service network restart Restarting network (via systemctl): [ 确定 ]2.添加第二块网卡,并修改ens36 网卡信息
[root@squid ~]# cd /etc/sysconfig/network-scripts/[root@squid network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36[root@squid network-scripts]# vim ifcfg-ens36#将33替换成36,并删除UUID条目IPADDR=12.0.0.1NETMASK=255.255.255.0[root@squid network-scripts]# service network restart Restarting network (via systemctl): [ 确定 ]3.添加转发数据包功能,将服务器用作网关
[root@squid network-scripts]# echo "1" >/proc/sys/net/ipv4/ip_forward4.设置防火墙策略
#放通80端口,并重定向到3128代理端口[root@squid network-scripts]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 80 -j REDIRECT --to 3128##放通https的443端口,并重定向到3128代理端口[root@squid network-scripts]# iptables -t nat -I PREROUTING -i ens33 -s 192.168.100.0/24 -p tcp --dport 443 -j REDIRECT --to 31285.修改squid.conf配置文件
[root@squid ~]# vim /etc/squid.conf#将原3128端口条目替换成以下条目,用以支持透明模式http_port 192.168.100.1:3128 transparent6.重载代理服务
[root@squid network-scripts]# service squid reload第二步:Web服务器网卡信息
[root@web ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33 #修改dhcp为staticBOOTPROTO=static#末行追加IP地址、子网掩码和网关IPADDR=12.0.0.12NETMASK=255.255.255.0GATEWAY=12.0.0.1[root@web ~]# service network restartRestarting network (via systemctl): [ 确定 ]第三步:使用客户机访问
1.修改地址
2.取消之前设定的代理服务选项
3.使用浏览器访问12.0.0.12
4.回到web服务端查看服务日志,可见来访记录是外网卡的地址
12.0.0.1 - - [04/Dec/2019:22:41:39 +0800] "GET /noindex/css/fonts/ExtraBold/OpenSans-ExtraBold.eot? HTTP/1.1" 404 248 "http://12.0.0.12/" "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0)"由此可见,透明代理是使用外网卡的地址进行访问web服务的,通过媒人路由和防火墙策略将Web访问从定向给代理服务器处理!
谢谢阅读!!!
服务
代理
服务器
端口
配置
地址
网卡
代理服务
条目
文件
正在
用户
目录
脚本
防火
信息
功能
大小
客户
源码
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
上海西有网络技术有限公司
数据库去空值
qq服务器繁忙是咋回事啊
怎么配置服务器一次打开2个网页
农行软件开发天津校招笔试题
锐起5.1无法连接服务器
数据库 cpu
电子软件开发业务
传奇云服务器怎么样
a股成分指数数据库
镇江服务器机房搭建报价
江苏服务器风扇销售厂家
pb级数据库
免费云电脑服务器地址
byte 在数据库
软件开发岗位晋级表
计算机三级网络技术内容
通信网络技术产业联盟
大专计算机网络技术学什么专
湖北武汉服务器虚拟主机
樱桃vod连接服务器失败
网络安全防线演练
服务器出口ip每次都变
软件开发sa
戴尔服务器换纽扣电池
网络安全你我共筑手抄报
华大基因乳腺癌数据库
林业一张图数据库代码1631
网络技术开发与软件开发
眉山精益管理软件开发