Got은 HTTP와 HTTPS 키로 SOCKS 에이전트를 선택한다
SocksProxyAgent를 Got의 대상 프로토콜별 에이전트 항목에 할당하고 HTTP/2 경로는 따로 유지하세요.
Got의 agent 객체는 대상 프로토콜을 키로 씁니다. 따라서 HTTPS URL용 SOCKS 연결은 socks라는 새 키가 아니라 https 아래에 들어갑니다.
HTTP/1 경로에서 Got과 socks-proxy-agent를 쓰는 기존 ESM 애플리케이션이라면:
import got from 'got';
import {SocksProxyAgent} from 'socks-proxy-agent';
const agent = new SocksProxyAgent('socks5h://proxy.example:1080');
const body = await got('https://www.example.org/', {
http2: false,
agent: {
http: agent,
https: agent,
},
timeout: {request: 20000},
}).text();
SOCKS5 프록시 목록에서 예제의 계정 없는 프록시 URL 후보를 얻을 수 있습니다. 같은 에이전트로 표시된 HTTP와 HTTPS 항목을 모두 처리할 수 있습니다. SOCKS 연결을 맺은 뒤 HTTPS 경로가 대상과 TLS 핸드셰이크를 수행합니다.
이 에이전트에서 socks5h은 대상 호스트 이름 확인을 SOCKS 프록시에 맡깁니다. socks5은 대신 로컬 확인을 선택합니다. 프록시 자체의 호스트 이름은 여전히 Node 프로세스에서 접근할 수 있어야 합니다.
Got의 HTTP/2 에이전트 슬롯은 다른 인터페이스를 기대합니다. 이 에이전트를 agent.http2에 복사하고 HTTP/2 프록시 지원을 제공한다고 가정하지 마세요.
구성한 에이전트를 워크로드에 재사용하고 소유자가 종료될 때 파기하세요. 패키지 버전은 애플리케이션의 Node 런타임에 맞추세요. 이 예제는 이름이 지정된 SocksProxyAgent 내보내기를 사용합니다.