Neexistuje něco podobného, ale jako SOCKS5 proxy? Tj. na jedné straně by byl klient, který by fungoval jako SOCKS5 proxy, odsud by se provoz skrze HTTPS (ať už jako HTTP/2 rámce nebo jako WebSocket) protunelovalo na nějaký HTTPS server, ze kterého by ta komunikace šla dál do světa? Něco jako ssh -D, akorát by to jako tunel využívalo HTTPS a ne SSH.
střílím naslepo a vybral jsem s poznámek, co by asi mohlo odpovídat.
shoes je podle mě přesně co chceš, umožňuje ti to libovolně postavit klientskou a serverovou část, routovat v nich i mezi nimi a různě provoz maskovat, https://github.com/cfal/shoes/blob/master/examples/tls_sni_vmess_and_snell.yaml. Je na tobě, kterou část spustíš na klientovi a kterou na serveru.
Pak bych asi vyzdvihnul go-gost, poměrně snadno můžeš nastavit klientskou a servovou část, spustit jednotlivé strany a oni se ti spojí. Gost má i schopnost zkoušet postupně více strategií podle toho, která projde sítí. Takhle by vypadal příklad s socks5 na klientovi s tunelování přes http2
server:
gost -L=http2://john:doe@:443
client:
gost -L socks5://:8080 -F=http2://john:doe@server:443
curl --socks5 localhost:8080 ip-echo.ripe.net
14. 3. 2024, 17:16 editováno autorem komentáře
Dá se něco z toho provozovat na existujícím web serveru? Tj příklad - otevřu https://foo.bar mám svoje stránky, pošlu traffic na https://foo.bar/tunel, a chodí přes to vpnka? Vzpomínám si matně, že kdysi byl nějaký "splitter", který uměl na stejném portu posílat jak https tak ssh, ale to už je mnoho let zpět...
wstunnel, gost, shoes to umí. Wstunnel umí být schovaný pod nějakou url za nginxem (Petr ti odkazoval článek). Gost umí poslouchat na tcp a pokud tam příjde http požadavek, tak začne fungovat jako reverzní proxy. Shoes umi obě varianty, jak být v popředí a routovat nevpn komunikaci na nějaký backend, tak i být za nějakou reverzní proxy za nějakou url.