-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SOCKS5 not supported #8562
Comments
We only support Socks4a actually. We can add Socks5, but nym should consider adding Socks4a instead if they intend to add a hidden service capability in the future. Only Socks4a has hostname support. Tor/I2P knows how to do a hostname lookup for |
I should add - one of the I2P developers tried to get me to implement a custom protocol for hidden services. But one of the more senior developers on the project noted that Socks4a already worked as expected when a |
I'm not sure NYM would add hidden service/i2p support, since it's a replacement for those and it would be an overkill. NYM is only an example I faced myself, but SOCKS5 is a pretty standard protocol when it comes to proxy support, so I think it would be desirable to add it to Monero eventually, even if it's without auth support. |
Yes, if it is designed to replace Tor/I2P, is it adding an equivalent functionality to the network? If so, Socks4a will be more useful than Socks5 because otherwise outside processes will be forced to implement a custom protocol to make connections to the equivalent of hidden services.
Socks5 isn't really standard, because it lacks hostname support. It forces downstream projects to implement DNS lookups over Socks5 - which isn't possible in Tor hidden services (and the I2P/Nym equivalent). |
As I understand it, NYM is not trying to mimic the hidden service/i2p address functionality the same way, but rather as an "exit node" to clearnet DNS addresses, which are whitelisted. So for example, this would be the flow: monero wallet -> nym-client-socks5 -> network-requester -> nym-client --- (mixnet) ---> mainnet.xmr.sh (clearnet) The wallet would simply use So not sure if falling back to socks4a would actually solve anything from their side. |
Yes, I understand their situation exactly. I am trying to point out that Socks5 lacks features that are useful, and perhaps Nym should implement Socks4a instead. In your example, connecting to And on top of everything else, if Nym implements something comparable to Tor hidden services, Socks5 is completely useless. Nym has to either implement Socks4a so we can do a hostname request ( So I'm pushing back because there is a decent chance we implement Socks5 for nothing if Nym chooses the first option (implements a hidden-service like feature and Socks4a to proxy requests to those services). |
Regardless of NYM's roadmap about internal/hidden services, the initial intent of the issue was not only to ask for support the current cc/ @jstuczyn |
Someone pointed out that I was wrong about my recollection of Socks5 - it supports hostnames. A quick search of Nym code suggests they support the hostname mode too. Giant egg on face. I will add support for this (as the original author of Socks4), unless someone else wants to jump in. I'm not sure what to do with the authentication modes yet. |
Also note - this cannot (without more complex changes) be used in "mixed mode" ( This isn't a hard requirement, but there isn't a way to specify that |
Also, I'm not sure if |
Agree, I think it should be a more general approach, rather then naming it with a specific suffix for NYM. It could be used for "standard" SOCKS5 proxies. Maybe something like |
The proxy system used by Tor and I2P is "standard" Socks4. The These network suffixes always get routed to the corresponding The shortened version is, Socks5 (unless other changes are made) will provide Nym access with |
I was setting up a connection to a monero node through the NYM mixnet, using their socks5 client as described here, but I got an error because only socks4 is supported.
This issue is inherited in the GUI wallet, so the parameter/option enabling it is misleading:

The text was updated successfully, but these errors were encountered: