@EVOSandru6

Как правильно прописать proxy-server для puppeteer с ссылкой на docker контейнер с tor-proxy?

Добрый день,

Сделал сбоку для скраппера с помощью 2-контейнеров -
node (для puppeteer) и tor-socks-proxy
(Сборку пытался произвести с networks и без, результат один):

version: '3.7'
services:
  node:
      container_name: app_node
      build: ./docker/containers/node
      volumes:
          - ./app:/var/www
          - ./volumes/node/nginx/:/var/log/nginx/
      ports:
        - 3002:3000
      working_dir: /var/www
      restart: always
      tty: true
      networks:
        - myapp
  tor:
    container_name: app_tor
    image: peterdavehello/tor-socks-proxy:latest
    ports:
      - 9150:9150
    restart: always
    networks:
      - myapp

networks:
    myapp:
        driver: bridge


Проблема с использованием тора прокси для puppeteer в контейнере node:

Когда я использовал локальный тор прокси, я указывал адрес:

'--proxy-server=socks5://127.0.0.1:9050'

Изменил на:

'--proxy-server=socks5://tor:9050'

export const LAUNCH_PUPPETEER_OPTS = {
    args: [
        .. 
         '--proxy-server=socks5://tor:9050'
    ]
};


При запуске puppeteer:

Error: net::ERR_PROXY_CONNECTION_FAILED at https://sitename.ru
at navigate (/var/www/node_modules/puppeteer/lib/FrameManager.js:120:37)
at processTicksAndRejections (internal/process/task_queues.js:86:5)
-- ASYNC --
at Frame. (/var/www/node_modules/puppeteer/lib/helper.js:111:15)
at Page.goto (/var/www/node_modules/puppeteer/lib/Page.js:672:49)
at Page. (/var/www/node_modules/puppeteer/lib/helper.js:112:23)
at PuppeteerHandler._callee2$ (/var/www/helpers/puppeteer.js:69:19)
at tryCatch (/var/www/node_modules/regenerator-runtime/runtime.js:45:40)
at Generator.invoke [as _invoke] (/var/www/node_modules/regenerator-runtime/runtime.js:271:22)
at Generator.prototype.(anonymous function) [as next] (/var/www/node_modules/regenerator-runtime/runtime.js:97:21)
at asyncGeneratorStep (/var/www/helpers/puppeteer.js:12:103)
at _next (/var/www/helpers/puppeteer.js:14:194)
at processTicksAndRejections (internal/process/task_queues.js:86:5)

Локально отрабатывает следующая комманда:

curl --socks5-hostname 127.0.0.1:9150 https://ipinfo.tw/ip


62.102.148.68

Из под контейнера tor тоже:

docker exec -i -t 5bdddac72709 curl --socks5-hostname 127.0.0.1:9150 https://ipinfo.tw/ip

89.144.12.17
Из под контейнера node аналогично:
docker exec -it 03c2c7be89f8 curl --socks5-hostname tor:9150 https://ipinfo.tw/ip

166.70.207.2

Подскажите пожалуйста, в чем тут косяк - в порте или в хосте?

Пробовал также установить tor в контейнер node и сконфигурировать следующим образом:

'--proxy-server=socks5://127.0.0.1:9050'

Результат не поменялся.

Может помимо curl нужно дополнительные утилиты заинсталлить в контейнер с node?
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
@q2digger
сисадмин
у вас везде разные порты. где то 9050 , где то 9150.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы