socks5协议且携带用户名密码作为代理访问固定网站
背景:我没办法改变socks5的协议,也没办法让他不需要账户密码,项目环境是puppeteer+chromium,chromiun不支持socks5协议
用Node的proxy-chain转发socks5(亲测可用)
核心思想:
你在本地(或服务器上)起一个 HTTP 代理网关,
它内部把 Chromium 发来的 HTTP 请求转发到 SOCKS5(带认证)。
这样 Puppeteer 就能“间接”用 SOCKS5 认证代理。
- 安装proxy-chain
npm install proxy-chain
- 创建代理转发服务
// proxy-server.ts
import { ProxyChain } from 'proxy-chain';
export async function createProxyServer() {
const server = new ProxyChain.Server({
port: 3128, // 本地 HTTP 代理端口
prepareRequestFunction: ({ request }) => {
return {
upstreamProxyUrl: 'socks5://username:password@甲方给的代理IP:端口',
};
},
});
await server.listen();
return server;
}
- 使用
const proxyServer = await createProxyServer();
const browser = await puppeteer.launch({
headless: true,
args: [
'--no-sandbox',
'--disable-setuid-sandbox',
'--proxy-server=http://127.0.0.1:3128',
],
});

被折叠的 条评论
为什么被折叠?



