#server #pipe #reverse-proxy #protocols #behind #pluggable-transport

sosistab3-obfsws

Websocket Pipe (pluggable-transport) support for sosistab3

1 unstable release

new 0.4.0 Jan 24, 2025

#293 in WebSocket

Download history 96/week @ 2025-01-21

96 downloads per month

MPL-2.0 license

61KB
1.5K SLoC

Websocket (with or without TLS) pluggable-transport implementation for sosistab2.

TODO

  • Try to solve "flow cut-offs" in BUG.txt
  • Try to solve the TCP-over-TCP problem in sosostab2. should be to add a trait type called "Reliable Pipe" to tell sosistab2 to turn off retransmission and reordering.

Background

Most CDNs, "serverless", or web app hosting platforms does not allow "unknown traffic" to pass through their load balancing facilities, and worse, their server network environments are basically firewalled or behind a Symmetric NAT, so users can't simply set up a service that can be accessed from the public internet (unless through these "reverse-proxy" set up by hosting providers).

  1. For example, if you have a web server listening http://0.0.0.0:8080/ on the machine provided by your hosting platform, then you can use https://your-app-name.hosting-platform.com/ to access your Web service, but not any other method. (even P2P applications such as IPFS, which use UDP and STUN, are unable to implement NAT Traversal in this network environment).

For example, back in the day, when heroku.com still offered free plans: there were many people from mainland China using v2ray ws+tls servers on their platforms to bypass GFW internet censorship, which is actually a proxy protocol delivered over websockets (after all, any unknown traffic like shadowsocks can't pass through their web reverse proxy).

Dependencies

~29–65MB
~1M SLoC