Stack Exchange
Как отправить запрос axios через socks5 прокси?
Я пытаюсь отправить http запрос через axios и прокси socks5.
Я не могу понять что-то не так с моим прокси или с кодом.
import axios from 'axios';
import { SocksProxyAgent } from 'socks-proxy-agent';
const proxyHost = '1.1.1.1';
const proxyPort = 11111;
const proxyUsername = 'username';
const proxyPassword = 'password';

...

async foo(){
 const proxyOptions = {
            host: proxyHost,
            port: proxyPort,
            auth: `${proxyUsername}:${proxyPassword}`,
        };
        const httpsAgent = new SocksProxyAgent(`socks5://${proxyOptions.host}:${proxyOptions.port}`, proxyOptions);

        const response = await axios({
            httpsAgent,
            method:'GET',
            url:'https://jsonip.com/',
        })
        console.log(response);
        return response;
}



При попытке отправить запрос на такой эндпоинт я получаю ошибку
[Nest] 66976  - 12/05/2023, 9:25:00 PM   ERROR [RpcExceptionsHandler] Socket closed
Error: Socket closed


Я тестировал свой прокси через curl
curl -x socks5://username:pass@1.1.1.1:11111 https://jsonip.com/
{"ip":"139.171.88.216","geo-ip":"Unlimited IP geolocation https://getjsonip.com/#plus","API Help":"https://getjsonip.com/#docs"}


Также у меня есть еще один прокси, пробовал с ним, но код выдает такую ошибку(в прокси точно нет whitelist):
Socks5 proxy rejected connection - NotAllowed


Проблема была в чьем-то ответе в github issues)
new SocksProxyAgent(`socks5://${proxyOptions.host}:${proxyOptions.port}`, proxyOptions); // такой формат не принимается 

new SocksProxyAgent(`socks5://username:password@host:ip); // с таким форматом все заработало. 

