Подтвердить что ты не робот

Node.js настройка глобального прокси

Я работал в сети посещений за прокси-сервером. В моем коде я могу установить прокси-сервер, используя подход, упомянутый в этом потоке (Как использовать прокси-сервер http с node.js http.Client?).

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

Я знаю, что у NPM есть глобальная настройка прокси-сервера, которая

npm config set proxy http://proxy.company.com:8080
npm config set https-proxy http://proxy.company.com:8080

Но я не нашел никакой конфигурации, подобной в node.js.

Поддерживает ли node.js глобальную настройку прокси-сервера, поэтому мне не нужно менять все коды и легко включать и выключать.

4b9b3361

Ответ 1

К сожалению, похоже, что информация прокси должна быть установлена при каждом вызове http.request. Узел не включает механизм глобальных настроек прокси.

Модуль global-tunnel-ng в NPM, похоже, справляется с этим:

var globalTunnel = require('global-tunnel-ng');

globalTunnel.initialize({
  host: '10.0.0.10',
  port: 8080,
  proxyAuth: 'userId:password', // optional authentication
  sockets: 50 // optional pool size for each http and https
});

После того как глобальные настройки установлены с вызовом для initialize, и http.request и библиотека request будут использовать информацию прокси.

Модуль также может использовать http_proxy среды http_proxy:

process.env.http_proxy = 'http://proxy.example.com:3129';
globalTunnel.initialize();

Ответ 3

Пока вы не устанавливаете параметр Nodejs, я предлагаю использовать прокси-цепи, которые я считаю довольно удобными. Вероятно, он доступен в вашем диспетчере пакетов.

После установки прокси-сервера в конфигурационном файле (/etc/proxychains.conf для меня) вы можете запустить proxychains npm start или proxychains4 npm start (т.е. proxychains [command_to_proxy_transparently]), и все ваши запросы будут проксированы автоматически.

Настройки конфигурации для меня:

Это минимальные настройки, которые вы должны добавить

## Exclude all localhost connections (dbs and stuff)
localnet 0.0.0.0/0.0.0.0
## Set the proxy type, ip and port here
http    10.4.20.103 8080

(Вы можете получить ip прокси с помощью nslookup [proxyurl])

Ответ 4

замените {userid} и {пароль} своим идентификатором и паролем в своей организации или войдите в систему на своем компьютере.

npm config set proxy http://{userid}:{password}@proxyip:8080/
npm config set https-proxy http://{userid}:{password}@proxyip:8080/
npm config set http-proxy http://{userid}:{password}@proxyip:8080/
strict-ssl=false