美文网首页
docker构建tor代理并转成http代理

docker构建tor代理并转成http代理

作者: niyiwei | 来源:发表于2020-05-03 00:18 被阅读0次

    tor是一个专用于匿名网络的代理,内部会随机使用ip进行访问,这样可以大大的提高隐私性,并且tor代理也能实现翻墙,只不过有很多网站都限制tor流量,如果做爬虫的话,经常被封ip的情况可以使用tor,随机ip很爽,,但是转发了三个地址的时候,就会变的很慢,,

    在访问 onion 结尾的暗网地址,需要使用tor 提供的代理,才能访问,一般来说tor 提供的是socket5的代理,浏览器不能直接使用socket5,需要使用 privoxy,将socket5 转http访问

    如果在代理服务器经常换的情况下,还需要给每一个代理服务器配置tor 代理,就不是很爽了

    现在我们直接使用docker构建tor 以及privoxy的镜像,实现开箱即用,

    构建基础镜像

    我们需要准备一些文件,来定义 privoxy 的代理模式

    config:

    forward-socks5t / 127.0.0.1:9050 .
    listen-address  0.0.0.0:1080
    
    confdir /etc/privoxy
    
    logdir /var/log/privoxy
    
    actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
    actionsfile default.action   # Main actions file
    actionsfile user.action      # User customizations
    
    filterfile default.filter
    filterfile user.filter      # User customizations
    
    logfile logfile
    
    toggle  1
    
    enable-remote-toggle  0
    
    enable-remote-http-toggle  0
    
    enable-edit-actions 0
    
    enforce-blocks 0
    
    buffer-limit 4096
    enable-proxy-authentication-forwarding 0
    
    forwarded-connect-retries  0
    
    accept-intercepted-requests 0
    
    allow-cgi-request-crunching 0
    
    split-large-forms 0
    
    keep-alive-timeout 5
    
    socket-timeout 300
    

    entrypoint.sh:

    #! /bin/bash
    privoxy /etc/privoxy/config && tor
    
    FROM alpine:latest
    
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    
    ADD ./config /etc/privoxy/config
    ADD ./entrypoint.sh /
    
    RUN apk update \
     && apk upgrade \
     && apk add tor privoxy\
     && rm /var/cache/apk/*
    
    CMD ["sh", "/entrypoint.sh"]
    

    后面:

    docker build . -t demo_tor && docker run -d -p 1080:1080 demo_tor
    

    访问 telnet 127.0.0.1 1080 即可,映射到物理机的ip可以更改,

    使用nginx 负载均衡

    使用自定义的配置文件,

    nginx.conf:

    worker_processes  1;
    events {
        worker_connections  1024;
    }
    
    
    stream {
        upstream local-proxy  {
            ${NG_SOCK_PROXY}
            
        }
        server {
            listen 8080;
            proxy_pass local-proxy;
        }
    }
    

    entrypoint.sh:

    #! /bin/bash
    # 将环境变量转到配置文件中
    envsubst < /nginx.conf > /etc/nginx/nginx.conf && exec nginx -g 'daemon off;'
    

    Dockerfile:

    FROM nginx
    
    ENV TZ=Asia/Shanghai
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    
    # 默认的配置,后续修改,即可,,
    ENV NG_SOCK_PROXY="server 127.0.0.1:8888;"
    
    ADD ./entrypoint.sh /
    ADD ./nginx.conf /
    
    CMD ["sh", "/entrypoint.sh"]
    
    docker build . -t  loop
    

    编写docker-compose.yml,这样子是为了更好的启动,,,

    如果有多个可以添加NG_SOCK_PROXY 环境变量的记录,

    当然也可以直接扩展proxy的应用,不需要编写那么多的规则,

    version: '3'
    services:
      #  轮训下面的代理程序,并且将sockt转http
      loop:
        image:  yylany/tor_loop:latest
        ports:
          - "58118:8080"
        environment:
          - "NG_SOCK_PROXY=server proxy1:1080;
                           server proxy2:1080;
                           "
      # 以下是代理程序
      proxy1:
        image: demo_tor
      proxy2:
        image: demo_tor
    

    相关文章

      网友评论

          本文标题:docker构建tor代理并转成http代理

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