Add SOCKS5 forward proxy support(Redoed)
This change adds SOCKS5 forward proxy support to the snowflake.
If TOR_PT_PROXY
is set, and the value corresponds to a SOCKS5 proxy, the snowflake will use this proxy for communication with broker and proxy.
This is a merge request with a redo based rebase of !64 (closed) . I am happy this time no fork is necessary to get everything working, maybe the wait is worth it after all.
Things to look at:
- in order to avoid more arguments, 1.1.1.1 was set as default socks5 dns resolver. we could add a setting to override this.
- only SOCKS5 proxy are supported. HTTP proxy is not supported.
How to test if it is working:
The Socks5 proxy support is tested to work with v2ray v5.8.0's socks socks inbound with correct setting.
To run a working local socks5 proxy, run ./v2ray run -format jsonv5 -c socks2freedom.json
,
with the following content as v2ray configuration file saved as a file named socks2freedom.json
.
{
"log": {
"error": {
"level": "Debug",
"type": "Console"
},
"access": {
"type": "None"
}
},
"outbounds": [
{
"protocol": "freedom"
}
],
"inbounds": [
{
"protocol": "socks",
"settings": {
"udpEnabled": true,
"address": "127.0.0.1",
"packetEncoding":"Packet"
},
"port": 10808
}
]
}
Add line Socks5Proxy 127.0.0.1:10808
to the torrc
file to enable it.
(Subtask of #40069 (closed))
(Note to self: remember to rebase before merge)