Squid代理服务器 模拟内网客户机IP192.168.1.10 代理服务器内网口IP192.168.1.254 代理服务器外网口IP202.0.0.252 外网服务器IP202.0.0.10 一 安装及运行控制squid 1 编译安装Squid tar –zxf squid-* -C /usr/src cd /usr/src/squid-* ./configure --prefix=/usr/local/squid --sysconfdir=/etc --enable-linux-netfilter --enable-async-io=240 --enable-default-err-language=Simplify_Chinese --disable-poll --enable-epoll --enable-gnuregex && make && make install ln -s /usr/local/squid/sbin/* /usr/local/sbin/ useradd -M -s /sbin/nologin squid chown -R squid:squid /usr/local/squid/var/ 2 修改配置文件 vim /etc/squid.conf http_port 3128 添加
cache_effective_user squid //指定squid的程序用户,用来设置初始化的账户 cache_effective_group squid 去除62行“#”号 3 squid运行控制 squid -z //初始化缓存目录 squid // 启动squid服务 拓展:添加脚本,使用chkconfig和systemctl工具进行管理 vim /etc/init.d/squid #!/bin/bash #chkconfig: 2345 90 25 #config: /etc/squid.conf #pidfile: /usr/local/squid/var/run/squid.pid #Description: Squid-Internet Object Cache PID="/usr/local/squid/var/run/squid.pid" CONF="/etc/squid.conf" CMD="/usr/local/squid/sbin/squid" case "$1" in start) netstat -anpt | grep squid &> /dev/null if [ $? -eg 0 ] then echo "squid id runing" 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 -anpt | grep squid else echo "Squid is not runing." 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 | restart | reload | check | status}" ;; esac chmod +x /etc/init.d/squid chkconfig --add squid //tianjiaxitongfuw systemctl restart squid 二 构建代理服务器 1 传统代理 在浏览器中手动添加代理 IP为代理服务器192.168.1.254 端口为3128 2 透明代理 (1)配置squid支持透明代理 vim /etc/squid.conf 添加 http_port 192.168.1.254:3128 transparent systemctl restart squid vim /etc/sysctl.conf 添加 net.ipv4.ip_forward = 1 sysctl -p (2)设置firewalld的重新定向策略 systemctl start firewalld firewall-cmd --zone=external --add-interface=ens33 //内网接口 firewall-cmd --zone=internal --add-interface=ens37 //外网接口 firewall-cmd --zone=external --add-service=http firewall-cmd --zone=external --add-service=https firewall-cmd --zone=external --add-port=3128/tcp firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens33 -p tcp --dport 80 -j REDIRECT --to-ports 3128 firewall-cmd --direct --add-rule ipv4 nat PREROUTING 0 -i ens33 -p tcp --dport 443 -j REDIRECT --to-ports 3128 firewall-cmd --runtime-to-permanent 验证时客户机的网关为代理服务器的内网ip,同时关闭手动代理