首页 > 解决方案 > C++ socket.io 客户端通过 Tor 服务

问题描述

我正在尝试将 C++ 中的套接字请求发送到我使用 tor 服务和 node.js 托管的洋葱链接。我的 node.js 服务器托管在 port 上8080。当我尝试向 发送套接字请求时localhost:8080,它工作得非常好。

但是,当我尝试将它们发送到我的洋葱链接时,它不起作用。

我用来处理套接字的库是https://github.com/socketio/socket.io-client-cpp

C++ 代码:

sio::client h;
connection_listener l(h);

h.set_open_listener(std::bind(&connection_listener::on_connected, &l));
h.set_close_listener(std::bind(&connection_listener::on_close, &l,std::placeholders::_1));
h.set_fail_listener(std::bind(&connection_listener::on_fail, &l));
h.connect("http://myonionlink.onion:8080/"); 
// it fails to connect to the onion link, but works perfectly fine with http://localhost:8080/

为什么这不适用于洋葱链接?在这种情况下,洋葱链接的工作方式是否不同?

有什么方法可以用来实现这一目标吗?

标签: c++node.js

解决方案


我认为来自https://en.wikipedia.org/wiki/.onion的“.onion TLD 不在 Internet DNS 根目录中”的问题,在幕后库执行尝试在原始 IP 地址中解析您的 URL 并失败这是因为 DNS 表中没有适当的记录。


推荐阅读