EnvsConfig

使用Squid搭建高匿代理

微信扫一扫,分享到朋友圈

使用Squid搭建高匿代理
0

写爬虫的时候经常出现ip被K的情况。

在网上找到的代理基本上不能用,收费的还特别的贵。

今天我们自己来使用Squid来搭建高匿代理,实现爬虫防屏蔽。

这里我使用的centos 6.9作为演示,其他的类似。

一、安装Squid

执行命令安装Squid

yum update 
yum install squid

安装完成后编辑squid的配置文件

vim /etc/squid/squid.conf

修改文件及添加文件(可以放到最后面,后面的配置会覆盖之前的配置,也可以修改之前的配置)

修改前要注释掉http_access deny all

dns_nameservers 1.1.1.1
http_port 23333 #端口信息,这个最好修改,避免默认端口被扫
http_access allow all
cache_mem 60 MB

这里我们可以看下squid的帮助文档

./squid -k start 
Usage: squid [-cdhvzCFNRVYX] [-n name] [-s | -l facility] [-f config-file] [-[au] port] [-k signal]
       -a port   Specify HTTP port number (default: 3128).
       -d level  Write debugging to stderr also.
       -f file   Use given config-file instead of
                 /etc/squid/squid.conf
       -h        Print help message.
       -k reconfigure|rotate|shutdown|restart|interrupt|kill|debug|check|parse
                 Parse configuration file, then send signal to 
                 running copy (except -k parse) and exit.
       -n name   Specify service name to use for service operations
                 default is: squid.
       -s | -l facility
                 Enable logging to syslog.
       -u port   Specify ICP port number (default: 3130), disable with 0.
       -v        Print version.
       -z        Create missing swap directories and then exit.
       -C        Do not catch fatal signals.
       -D        OBSOLETE. Scheduled for removal.
       -F        Don't serve any requests until store is rebuilt.
       -N        No daemon mode.
       -R        Do not set REUSEADDR on port.
       -S        Double-check swap during rebuild.
       -X        Force full debugging.
       -Y        Only return UDP_HIT or UDP_MISS_NOFETCH during fast reload.

然后我们生成Swap

cd /usr/sbin/
./squid -z  # Create missing swap directories and then exit.

重载配置,使配置生效。

# 1
/etc/init.d/squid reload #重载配置
/etc/init.d/squid start #启动
/etc/init.d/squid stop #停止
# 2 如果你找不到squid,那么可以使用
squid -f /etc/squid/squid.conf # 使用配置文件启动
squid -k reconfigure # 重新加载文件,启动的时候配置修改后
squid -k shutdown # 停止
squid -k restart # 重启 
squid -k parse # 解析,配置完成之后,可以通过这个命令查看已经已经配置完成的所有配置项

现在我们启动squid,其实代理已经可以用了。

二、测试Squid

Mac和Linux方式,设置临时代理。

export http_proxy=http://xxx.xxx.xxx.xxxx:23333;export https_proxy=http://xxx.xxx.xxx.xxxx:23333;

Windows方式,设置临时代理。

set http_proxy=http://xxx.xxx.xxx.xxxx:23333; set https_proxy=http://xxx.xxx.xxx.xxxx:23333

在服务端监控下日志

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

然后我们在终端里面执行下面命令,测试访问。

curl -l "https://www.trojansun.com"

可以看到,服务器端的日志已经有这个访问的信息了。

三、配置密码

我们这里使用最简单的密码验证ncsa_auth,因为我们需要生成一个passwd的密码文件,所以要先安装下工具。

安装生成密码工具

yum install httpd-tools #centos下执行
apt install apache2-utils #ubuntu debian下执行

使用命令生成用户名和密码

htpasswd -h # 查看帮助
htpasswd -c /etc/squid/passwd trojansun # 提示的方式创建
htpasswd -b -c /etc/squid/passwd trojansun trojansun.com # 免提示直接使用命令行中的密码创建

-c 是创建一个新的文件

/etc/squid/passwd 新文件的路径

trojansun 用户名

然后输入两次密码(第一次输入,第二次确认)

然后我们在配置文件最下方添加如下内容

auth_param basic program /usr/lib64/squid/ncsa_auth /etc/squid/passwd
acl auth_user proxy_auth REQUIRED
http_access allow auth_user

/usr/lib64/squid/ncsa_auth、/etc/squid/passwd替换你本地实际的路径

这里需要注意,如果你想只允许auth_user有效,那么就要把之前配置的http_access allow all注释掉,否则不使用用户名和密码也可以使用。

四、高匿代理配置

高匿代理的配置,我们只需要在配置文件的最下方添加如下内容即可

request_header_access Via deny all
request_header_access X-Forwarded-For deny all
request_header_access From deny all

更详细配置可参考:http://wiki.ubuntu.org.cn/Squid

一个后端程序员,却非要干点前端的事。攻城已有十年,暂未留下任何印记。

更换帝国CMS生成拼音方法

上一篇

Python连接Oracle数据库

下一篇

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片
使用Squid搭建高匿代理

长按储存图像,分享给朋友