Как отправить запрос 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:[email protected]: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
Ответы (1 шт):
Автор решения: Chumachenko Mihail
→ Ссылка
Проблема была в чьем-то ответе в github issues)
new SocksProxyAgent(`socks5://${proxyOptions.host}:${proxyOptions.port}`, proxyOptions); // такой формат не принимается
new SocksProxyAgent(`socks5://username:password@host:ip); // с таким форматом все заработало.