• 用squid做http/https正向代理


    0、环境准备

    VM1(server):nat-192.168.12.128  bridge-192.168.124.128
    
    VM2(client):bridge-192.168.124.129
    
    在VMware WS软件中,bridge网络是无法访问公网的,也无法执行DNS查询。

    1、安装 Squid

    yum install squid -y

    2、配置 Squid

    echo "1" >/proc/sys/net/ipv4/ip_forward #打开内核转发,在CentOS7中已经打开,无需设置。
    vi /etc/squid/squid.conf

    找到下图位置,将 deny 修改为 allow:

    配置完成以后,使用requests进行测试。

    In [9]: import requests
    
    In [10]: ss = requests.session()
    
    In [11]: ss.proxies = {'http': 'http://192.168.124.128:3128', 'https':'http://192.168.124.128:3128'}
    
    In [12]: ss.get('http://www.qq.com')
    Out[12]: <Response [200]>
    
    In [13]: ss.get('https://www.github.com')
    Out[13]: <Response [200]>

    或者

    wget -e "http_proxy=http://192.168.124.128:3128" http://www.qq.com
    
    wget -e "https_proxy=http://192.168.124.128:3128" https://github.com

    3、总结

    1. 为什么不使用nginx?
    nginx不支持http/https正向代理
    
    2. squid client的DNS查询是由谁完成的?
    根据实验结果,DNS查询也是由squid server完成的,因此server需要配置DNS解析服务器;或者在squid.conf中配置dns_nameservers指定dns地址。
    
    3. squid服务的安全建议
    本例中的情况,建议squid服务器部署在防火墙后。
    
    4. 参考链接
    https://www.zybuluo.com/delight/note/2649
    http://www.squid-cache.org/Doc/config/dns_nameservers/
  • 相关阅读:
    python开发第二十六天CMDB
    python模块(requests,logging)
    python自动开发之第二十五天
    python自动开发之第二十四天(Django)
    python自动开发之第二十三天(Django)
    python自动开发之第二十二天
    python自动开发之第二十一天
    python自动开发之(ajax)第二十天
    python自动开发之(django)第十九天
    python自动开发之第十八天
  • 原文地址:https://www.cnblogs.com/echo1937/p/6728461.html
Copyright © 2020-2023  润新知