Назад | Перейти на главную страницу

Как использовать докер-контейнер в качестве прокси?

У меня есть следующий docker-compose:

version: '3'
services:
  mitmproxy:
    image: johnmccabe/mitmweb
    container_name: mitmproxy
    command: --cadir /ca --wiface 0.0.0.0 
    restart: always
    ports:
        #- "8080:8080"
        - "8081:8081"

  python:
    image: python
    build: ./python-socks-example
    command: python3 /home/project/socks-example.py
    volumes:
      - ./python-socks-example:/home/project/
    depends_on:
       - mitmproxy
    container_name: python
    restart: always

Я хочу, чтобы мои HTTP-запросы python проходили через mitmproxy в другом контейнере. Вот код на Python:

import requests
import time

while(True):
    time.sleep(5)
    print("gonna connect")
    resp = requests.get('http://google.com', 
                    proxies=dict(http='socks5://user:pass@server.com:8080',
                                 https='socks5://user:pass@server.com:8080'))
    print(resp)
    print("done")
    time.sleep(2)

Как я могу подключить сеть python пройти через mitmproxy контейнер?

В вашем коде Python вам нужно будет сослаться на другую службу.

URL-адрес прокси-сервера должен быть обновлен, чтобы иметь правильное имя хоста. То есть замена server.com с именем служба предлагая все, к чему вы пытаетесь подключиться.

В этом случае вы замените server.com с участием mitmproxy.

Это означает, что ваш код на Python будет выглядеть так:

import requests
import time

while(True):
    time.sleep(5)
    print("gonna connect")
    resp = requests.get('http://google.com', 
                    proxies=dict(http='socks5://user:pass@mitmproxy:8080',
                                 https='socks5://user:pass@mitmproxy:8080'))
    print(resp)
    print("done")
    time.sleep(2)