美文网首页
Transfer HTTP Proxy to Socks Pro

Transfer HTTP Proxy to Socks Pro

作者: HackerZGZ | 来源:发表于2018-06-24 23:08 被阅读0次

    Intro

    想必编程的小伙伴经常都会因为一个问题而烦恼,那就是如何将一些不支持 Socks 协议的工具搭上梯子呢?比如我最近就因为 Docker for Mac 只有 HTTP Proxy 而烦恼,于是经过一番研究,终于成功让 HTTP Proxy 也能享受到 Socks Proxy 了,下面就来说说具体步骤。

    Prerequisites

    本教程有两个先决条件:

    • 一个可用的 Socks Proxy ,看标题就知道了,这个是最基本要求。
    • polipo ,一个轻量级的跨平台 Proxy ,安装方法很多,不多说了。

    Action

    • 启动本机的 socks proxy ,并配置好对应的端口,如 1080
    • 获取本机网卡的的 IP 地址,如 192.168.0.100
      • 可以通过 ifconfig 查看
    • 使用 polipo 将 HTTP Proxy 映射到 Socks Proxy 上
      • polipo socksParentProxy=127.0.0.1:1080 proxyAddress="192.168.0.100"
    • 打开浏览器,访问 192.168.0.100:1080 ,如果出现 polipo 的初始页,即代表成功。

    Scripts

    为了方便,我编写了一个简单脚本,如果有需要的同学可以拿去自行改造。

    #!/bin/bash
    
    echo "http proxy start"
    
    OUTPUT_FILE="./http_proxy.out"
    POLI_CONF_SOCKET="127.0.0.1:1086"
    POLI_CONF_PROXY="$(ipconfig getifaddr en0)" # only on OSX
    
    if [ -z $POLI_CONF_SOCKET -o -z $POLI_CONF_PROXY ]; then
        echo "[ERROR] cannot find local proxy address."
        exit -1
    fi
    
    
    echo 'polipo start: {"socket":"' $POLI_CONF_SOCKET '", "proxy_address":"' $POLI_CONF_PROXY '"}'
    
    
    # use polipo proxy transfer socks5 protocol to http[s] protocol
    nohup polipo socksParentProxy=$POLI_CONF_SOCKET proxyAddress=$POLI_CONF_PROXY >> $OUTPUT_FILE 2>&1 &
    
    sleep 1
    
    PID=$(ps -e | grep $! | grep -v 'grep' | awk '{ print $1 }')
    
    if echo $PID | egrep -e '^[0-9]+$'; then
        echo "export proxy to terminal start"
        LOCAL_PROXY=$POLI_CONF_SOCKET":8123"
        export http_proxy=$LOCAL_PROXY
        echo "create sock5 to http proxy under "$LOCAL_PROXY" success!"
    else
        echo "[ERROR] start proxy failed, checkout your network please"
        echo "tracing your error logs:"
        cat $OUTPUT_FILE
    fi
    

    相关文章

      网友评论

          本文标题:Transfer HTTP Proxy to Socks Pro

          本文链接:https://www.haomeiwen.com/subject/nsxeyftx.html