centos7下搭建高匿HTTP代理

时间:2024-03-05 16:13:35

一、一般适用情况
1、两台都有外网IP,一台服务器请求资源通过另外一个服务器,本文重点讲第一种。
2、两台服务器,其中一台服务器只有内网IP,另外一台服务器有公网和内网IP。

二、前提

# 确认服务器端ip_forward转发开启
echo 1 > /proc/sys/net/ipv4/ip_forward
ip_forward需要设定为1
sysctl -a |grep -w ip_forward
net.ipv4.ip_forward = 1

客户端配置

export https_proxy=http://服务端内网ip:3128

三、下载

centos
yum install squid

ubuntu
sudo apt-get install squid3  

修改配置文件

vim /etc/squid/squid.conf  #修改配置文件

#允许的客户端ip
acl allcomputers src 0.0.0.0/0.0.0.0
#配置用户名密码,后面会生成passwords文件
auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid3/passwords
auth_param basic realm proxy
acl authenticated proxy_auth REQUIRED
http_access allow authenticated allcomputer

找到http_access deny all并注释掉

#http_access deny all

最好修改一下默认的3128端口,因为这个端口是默认的,很容易被网络上的代理爬虫探测到。

http_port 8828

用户名密码认证(如果没有htpasswd命令需要下载)

网络上有很多专门爬免认证的代理的爬虫,如果我们自己搭建的代理服务器不加认证的话,会被这些爬虫探测到然后沦为了免费代理。
使用htpasswd来创建passwords文件,htpasswd命令在软件包apache2-utils中

sudo htpasswd -c -d /etc/squid3/passwords 自定义用户名
sudo chmod o+r /etc/squid3/passwords

#centos7
systemctl restart squid.service

#centos6
sudo service squid3 start
或者
etc/init.d/squid start

加入全局环境变量 将我们的代理配置上:
vim  /etc/profile  #(注意备份)
#export http_proxy="http://用户名:密码@代理IP:代理端口"
export http_proxy="http://xxxx:xxxxxxxx@172.21.0.14:8888"

#在客户端验证
curl -l "http://www.baidu.com"
#在服务端查看日志
squid3的访问日志文件在/var/log/squid3/access.log

tail -f /var/log/squid3/access.log

[root@VM_0_14_centos ~]# tailf /var/log/squid/access.log 
1546068808.417    174 172.21.0.10 TCP_MISS/502 4163 GET http://www.abc.com/ - HIER_DIRECT/199.181.132.250 text/html
1546068810.082     11 172.21.0.10 TCP_MISS/502 4163 GET http://www.abc.com/ - HIER_DIRECT/199.181.132.250 text/html