Jos*_*abo 5 https proxy node.js
我正在使用 npm 包http-proxy,它声称可以帮助解决这个问题,但是我完全无法使其工作。到目前为止,我仅通过创建透明 HTTP 代理服务器取得了成功,但是当它创建透明 HTTPS 代理服务器时,什么也没有发生。
我正在使用一个 Android 设备,配置为使用代理以及预期配置代理的端口,但在 Nodejs 端没有触发任何内容。仅当我配置了 HTTP 代理服务器时,一切似乎才正常。
这是我的 HTTPS 代码:
var https = require('https');
var fs = require('fs');
var httpProxy = require('http-proxy');
var options = {
key: fs.readFileSync('./client-key.pem', 'utf8'),
cert: fs.readFileSync('./client-cert.pem', 'utf8')
};
var proxy = httpProxy.createProxyServer({
ssl: options
});
https.createServer(options, function (req, res) {
console.log("new", req.url);
proxy.web(req, res, {
target: req.url
});
}).listen(8000);
Run Code Online (Sandbox Code Playgroud)
如果我使用http包中的createServer,那么它适用于http调用(因为正在触发回调),但它不适用于带有这些指令的https。有人知道我做错了什么吗?
PS:我不在乎是否必须使用不同的 npm 包。
小智 0
您可以使用https://www.npmjs.com/package/transparent-proxy
它是扩展本机 net.createServer 而构建的。它的作用就像一个真正透明的http代理,例如,它允许您轻松向其他代理发送上游请求,并通过多个代理进行一些请求链接......等等......
安装
npm i transparent-proxy
Run Code Online (Sandbox Code Playgroud)
使用
const ProxyServer = require('transparent-proxy');
//init ProxyServer
const server = new ProxyServer();
//starting server on port 8080
server.listen(8080, '0.0.0.0', function () {
console.log('TCP-Proxy-Server started!', server.address());
});
Run Code Online (Sandbox Code Playgroud)
它也适用于 Termux :)
| 归档时间: |
|
| 查看次数: |
2504 次 |
| 最近记录: |