有没有一种方法来设置节点js https请求的源端口?

有没有一种方法来设置节点js https请求的源端口? 我不是在询问目的地,而是询问源,即用于发送请求的端口。

上下文是我试图从特定端口发送https请求,而不是随机端口,从而允许lockingiptables。 节点没有以root身份运行,因此端口不是443。

更新:看起来有一个节点中的错误。 localAddress和localPort选项不起作用,至less使用TLS套接字。

更新:去年发现了一个类似的问题。 答案是“不要这样做”,这似乎愚蠢的节点假设是一个通用的工具。 Nodejs TCP连接客户端端口分配

该function似乎没有logging,但您可以通过在localAddress为options参数设置localAddresslocalPort参数来实现此目的。

有关更多信息,请参阅此处的代码: https : //github.com/nodejs/node/blob/b85a50b6da5bbd7e9c8902a13dfbe1a142fd786a/lib/net.js#L916

一个基本的例子如下:

 var https = require('https'); var options = { hostname: 'example.com', port: 8443, localAddress : '192.168.0.1', localPort: 8444 }; var req = https.request(options, function(res) { console.log(res); }); req.end(); 

不幸的是,它看起来像Node不支持绑定客户端端口。 显然这不是一个function太多,但它是可能的。 这个链接很好地解释了端口绑定。 https://blog.cloudflare.com/cloudflare-now-supports-websockets/不知道如何让nodejs的人考虑这个改变。