Open phantomcraft opened 2 years ago
The full SOCKS5 protocol support (namely BIND and UDP ASSOC) is planned, but I cannot find a client software using those, in most cases they're only using CONNECT method. It would helpful if you can provide some use cases on this.
GET/POST in HTTP port is also planned, and will be implemented someday, well, I hope, but also PRs are welcomed.
UDP transparent proxy has already landed in #201, you may try this with v0.8.0 release.
Hope this will help. thanks.
For BIND I could find: https://github.com/b23r0/rsocx
For UDP ASSOCIATE: https://github.com/WANG-lp/socks5-rs
For GET/POST I could find these: https://github.com/EstebanBorai/http-server -- https://github.com/omjadas/hudsucker -- https://github.com/EstebanBorai/http-server
Well actually I means CLIENT for these protocols, for HTTP GET/POST I can simply use curl to test if the implementation works , but for SOCKS5 BIND / UDP, I don't really find anything using them.
@bearice
Well, UDP ASSOCIATE is used in Shadowsocks, here I use UDP over SOCKS5 everyday. For BIND I don't know, but it would be good to implemente because there is always someone using this feature in some way, if you find this method is irrelevant and may ignore it, but always think on potential uses.
v2ray is using BIND lately: https://github.com/v2ray/v2ray-core/issues/2
v2ray is used to circumvent censorship.
===============================
I found more implementations of BIND and UDP ASSOCIATE:
In the project I posted above, UDP ASSOCIATE is implemented: https://github.com/WANG-lp/socks5-rs/blob/master/src/main.rs#L178
Here, BIND: https://github.com/EAimTY/socks5-server/search?q=BIND -- https://github.com/Idein/gatekeeper/search?q=bind
@bearice
Here I use a shadowsocks proxy with full UDP connectivity, I would like to use a redproxy QUIC proxy and send its UDP traffic through shadowsocks.
This is a potential usage of UDP ASSOCIATE.
Could you please implement BIND in SOCKS5 protocol to match v2ray/vmess?
First, I have to say that I don't want to press the author of this project for implementing this features, I only think that redproxy-rs would deserve a higher level.
I have been using this proxy forwarder for a long time: https://github.com/nadoo/glider
/\ I don't like Go programming but the program itself is great. But I'm seeking for a alternative solution, that could work with LD_PRELOAD trick more precisely (as many Go programs are not linked agains libc6).
The features that can make redproxy-rs a fully functional proxy forwarder are (not counting the features already present).
1 - Support for BIND in SOCKS5 protocol. 2 - Support for UDP ASSOCIATE in Socks5 protocol. 3 - UDP transparent proxy (TPROXY). 4 - Support HTTP GET/POST in HTTP port.
=================
1 - It would be very useful for multi-connection protocols such as FTP. ===> https://stackoverflow.com/questions/7731870/socks-4-bind-request-explanation
2 - UDP in SOCKS5 proxy would be very useful for using with Shadowsocks that supports UDP, it could allow DNS connections using pure UDP in port 53, so reducing the latency compared to TCP, and would be great for sites that use HTTP/3 (QUIC), reducing latency and bandwidth.
3 - UDP transparent proxy would allow sandboxes, containers (Docker, LXC, nedrdctl) and even Virtual Machices to access UDP services through SOCKS5 proxy (mainly Shadowsocks), useful for gaming, VOIP and maybe torrenting.
4 - It would make redproxy-rs a fully funcional HTTP proxy. ===> https://www.w3schools.com/tags/ref_httpmethods.asp
================
Thanks.