запустил tor демон на lo:9050 (протокол socks5) и он работает, скачивает все сайты.
curl -vL --socks5 127.0.0.1:9050 bbc.com # успешно скачивает запрещенный BBC Портов, кроме 443, открытых из интернета, на этом сервере не имею из-за настроек сети. 443 нужен для https.
Настроил мультиплексирование протоколов через sslh - он слушает 443 и если ему попадается обращение клиента socks5, перенаправляет его на lo:9050
на сервере tor это работает, например
curl -vL --socks5 %tor-server-ip%:443 bbc.com # успешно скачивает запрещенный bbc через SSLH и TOR
Теперь с моего домашнего компа:
curl -vL --socks5 %tor-server-ip%:443 ya.ru # успешно скачивает страницы яндекса по https.
однако, bbc.com и прочую запрещенку не качает, останавливается на SSL рукопожатии и висит:
# curl -vL --socks5 %tor-server-ip%:443 https://bbc.com/
* Trying %tor-server-ip%:443...
* Connected to %tor-server-ip% (%tor-server-ip%) port 443
* SOCKS5 connect to 151.101.192.81:443 (locally resolved)
* SOCKS5 request granted.
* Connected %tor-server-ip% (%tor-server-ip%) port 443
* ALPN: curl offers h2,http/1.1
* TLSv1.3 (OUT), TLS handshake, Client hello (1):
* CAfile: /etc/ssl/certs/ca-certificates.crt
* CApath: /etc/ssl/certs
использование ALL_PROXY='socks5h://%tor-server-ip%:443' для того чтобы curl ресолвил сайты через socks5 не помогает, с ресолвингом всё в порядке.
Каким образом SSLH может ломаться на запрещенных сайтах на этапе https?