有没有办法为节点js-https请求设置源端口
Is there a way to set the source port for a node js https request?
有没有办法为node-js-https请求设置源端口?我问的不是目的地,而是来源(用于发送请求的端口)。
上下文是我试图从特定端口而不是随机端口发送https请求,从而允许锁定iptables。节点没有以root身份运行,因此端口不是443。
更新:节点中似乎有一个错误。选项localAddress和localPort不起作用,至少对于TLS套接字是这样。
更新:去年发现了一个类似的问题。答案是"不要那样做",考虑到节点被认为是一个通用工具,这似乎很愚蠢。Nodejs TCP连接客户端端口分配
该功能似乎没有文档,但您可以通过为https.request.中的选项参数同时设置localAddress
和localPort
参数来实现这一点
有关更多信息,请参阅此处的代码: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似乎不支持绑定客户端端口。显然,这不是一个经常使用的功能,但这是可能的。这个链接很好地解释了端口绑定。https://blog.cloudflare.com/cloudflare-now-supports-websockets/不知道如何让nodejs人员考虑这个更改。
您可以在http中使用localPort
选项。请求配置源端口的选项。它似乎从v14.x LTS开始就可用了。我用Node v18.12.0进行了测试,它很有效。:)
https://nodejs.org/docs/latest-v14.x/api/http.html#http_http_request_url_options_callback
options.localPort <number> Local port to connect from.
- 哪个 JavaScript 库在请求对象上设置 _parsedUrl 属性
- 如何设置$.ajax请求的超时,并在超时时间过长时进行重做
- 在不发出请求的情况下设置img src
- 导轨 4.宝石will_paginate.更改在 ajax 请求上设置的分页链接
- 在express.js中为每个请求设置全局res.local变量
- Ajax请求返回模块设置数据
- AJAX 请求没有在我的 React 组件中设置 this.state.data
- 使用Javascript重定向并设置请求属性
- easyUI是否支持设置请求头
- 通过javascript编程设置请求[quot;__EVENTTARGET"]
- 如何在firefox-sdk中设置请求超时设置
- 尝试设置请求指针锁()时似乎有问题
- 在 DOM 元素发起的请求上设置请求标头
- 页面重定向并设置请求自定义请求标头
- 如何使用javascript刷新页面并设置请求头
- 如何为浏览器GET设置请求头
- 在ajax中设置请求头
- 我如何设置请求?会话
- 在Meteor.js应用中设置请求限制
- 设置请求头jQuery Ajax