Squid搭建代理ip服务器并使用python requests库进行连接测试

作者这里由于爬虫业务需要,所以向云立方购买了几台adsl拨号代理搭建自己的代理服气器,云立方地址:

https://www.yunlifang.cn/

具体搭建步骤如下:

环境准备:

购买 adsl 拨号服务器:centos7.x版本以上 如下图所示:

 

步骤1:安装squid

yum install -y openssl squid

步骤2:配置 squid 用户名密码验证(由于云立方要求必须要做用户认证才能正常使用,所以这里需要生成密码和用户进行配置)

yum install httpd

然后执行如下命令进行生成 用户名和密码,这里的示例为生成一个账号:taimei

htpasswd -c /etc/squid/passwd taimei

执行命令后将会出现如下图所示,直接输入两次密码即可,建议密码英文加数字组合:

步骤3:修改配置文件,squid 的配置文件默认在 /etc/squid 下,作者这里关于 squid.conf 的配置如下,可直接复制覆盖掉你的配置文件:


acl localnet src 0.0.0.0/0    # all network
acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
acl localnet src 172.16.0.0/12    # RFC1918 possible internal network
acl localnet src 192.168.0.0/16    # RFC1918 possible internal network
acl localnet src fc00::/7       # RFC 4193 local private network range
acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines

acl SSL_ports port 443
acl Safe_ports port 80        # http
acl Safe_ports port 21        # ftp
acl Safe_ports port 443        # https
acl Safe_ports port 70        # gopher
acl Safe_ports port 210        # wais
acl Safe_ports port 1025-65535    # unregistered ports
acl Safe_ports port 280        # http-mgmt
acl Safe_ports port 488        # gss-http
acl Safe_ports port 591        # filemaker
acl Safe_ports port 777        # multiling http
acl CONNECT method CONNECT


http_access deny !Safe_ports

http_access deny CONNECT !SSL_ports

http_access allow localhost manager
http_access deny manager

http_port 65000

coredump_dir /var/spool/squid

refresh_pattern ^ftp:        1440    20%    10080
refresh_pattern ^gopher:    1440    0%    1440
refresh_pattern -i (/cgi-bin/|\?) 0    0%    0
refresh_pattern .        0    20%    4320

via off
forwarded_for delete
forwarded_for off
request_header_access From deny all
request_header_access Server deny all
request_header_access WWW-Authenticate deny all
request_header_access Link deny all
request_header_access Cache-Control deny all
request_header_access Proxy-Connection deny all
request_header_access X-Cache deny all
request_header_access X-Cache-Lookup deny all
request_header_access Via deny all
request_header_access X-Forwarded-For deny all
request_header_access Pragma deny all
request_header_access Keep-Alive deny all
# 关闭squid的缓存功能
acl NCACHE method GET
no_cache deny NCACHE

#-----------------------用户认证--------------------
auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
acl taimei proxy_auth REQUIRED
http_access allow taimei

这里需要注意一点的是:云立方开放给 squid 外部可用的端口是65000和65001,所以我这里将 http_port 参数设置成了 65000 

步骤4:修改完配置文件之后保存,然后输入以下命令进行初始化 squid

squid -z

如果出现类似下图中的任务则代表初始化成功:

步骤5:启动squid 输入以下命令:

squid 或者service squid restart 重启

查看是否启动成功:

netstat -ntap | grep squid

如果启动成功,会出现如下图所示内容,表示正在监听 65000 端口(如果未出现,则表示没启动成功,这里建议可以将服务器重启,执行 reboot 重启完成之后再重新拨号和启动squid试试):

步骤 6:查看拨号后的代理ip,执行如下命令:

ifconfig 

可以看到这里我拨号得到的 ip是:125.78.218.126 如果这里是显示的是127开始表示未拨号,需要先执行 adsl-start命令:

步骤7:编写python代码进行测试,我这里写了一段代码可以直接拷贝过去用:

import time
import requests
import random
import re

'''从百度获取代理ip信息'''
def get_ip_info(proxie_ip:str) -> dict:
    try:
        start = time.clock()
        proxies={'http':proxie_ip}
        url="http://www.baidu.com/s?ie=utf-87&wd=ip"
        res=requests.get(url,proxies=proxies,timeout=15)
        p='<td>\s+<span\sclass="c-gap-right">本机IP:&nbsp;([\s\S+]*?)</span>([\s\S+]*?)\s+</td>'
        ip_info=re.findall(p,res.text)
        end = time.clock()
        return {"ip":proxie_ip,"address":ip_info[0][1],"res_time":str(round(end-start,2))+"秒"} if ip_info else None
    except Exception as ex:
        print("-----Error in obtaining proxy IP information from Baidu--------")
        print(ex)
        pass
print((get_ip_info("http://taimei:taimei_0603@125.78.218.126:65000")))

执行将会返回代理ip的地址等信息:

这里需要注意的是,在使用代代理ip的时候,需要在前面加上用户名和密码和@符号,例如这里的 taimei:taimei_0603@

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

刘延林

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值