node.js - TCP套接字客户端通过nodejs上的代理

标签 node.js network-programming

我需要建立到 smtp 服务器的 tcp 套接字连接。是否可以通过nodejs上的代理服务器进行连接?是否有可用的 npm 模块?我根本找不到。

var net = require('net');

var HOST = '127.0.0.1';
var PORT = 6969;

var client = new net.Socket();
client.connect(PORT, HOST, function() {
    console.log('CONNECTED TO: ' + HOST + ':' + PORT);
    client.write('I am here!');
});

// Add a 'data' event handler for the client socket
// data is what the server sent to this socket
client.on('data', function(data) {

    console.log('DATA: ' + data);

});

// Add a 'close' event handler for the client socket
client.on('close', function() {
    console.log('Connection closed');
});

最佳答案

net.sockettls.connectdgram 不支持代理。

将它与代理一起使用的最简单方法是用 proxychains 或类似的东西替换一些 libc 函数。

var client = require('tls')
.connect(443, 'www.facebook.com', function() {
  console.log('connected');
  client.write('hello');
})
.on('data', function(data) {
  console.log('received', data.toString());
})
.on('close', function() {
  console.log('closed');
});

proxychains node fit.js

connected
received HTTP/1.1 400 Bad Request
...
closed

关于node.js - TCP套接字客户端通过nodejs上的代理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33710542/

相关文章:

c++ - ICMP 校验和错误

unix - 使用 unix 域套接字传递描述符

java - 在 Windows 和 Linux 平台上用 Java 获取网络信息

.net - 对于两个不同的Silverlight应用程序,我真的需要两个策略服务器吗?

javascript - Node js 扩展继承对象(作为枚举)

java - Web 套接字 : Browser won't receive the message, 提示它不是以 0x00(字节)开头

mysql - sequelize 是否具有相当于 mysqls 的替换功能?

node.js - 在 vue/nuxt 中获取和渲染大型数据集时性能缓慢

javascript - 从双重嵌套函数返回值

node.js - 在 github 页面上托管我的 MEAN 堆栈 Web 应用程序