Snowflake proxy

Discuss

tl;rd: I’m part of the team developing snowflake at Tor and I wonder if will make sense to package the snowflake proxy in yunohost

Tor is known as a privacy software, but many people also use it as a way to access content censored in their country or network. Because of it some networks try to block Tor. snowflake is one of the main tools used to connect to bypass this block and connect to the Tor network. Tens of thousand of users rely on snowflake to browse the internet in the most censored networks like Iran, Russia or China.

snowflake make the user traffic look like a video conference using WebRTC to send their traffic over a proxy that forwards it to the Tor network. Those snowflake proxies are run by volunteers that share a bit of their internet traffic with censored users. The snowflake proxies can only be used to reach the Tor network, running one doesn’t expose the proxy IP address.

Most proxies are browser extensions, which are very useful. But there is usually a lack of standalone proxies, which are more helpful to users in networks with restricted NAT. I think it will be very useful if yunohost users can easily install standalone snowflake proxies and help others. Does it make sense to package it for yunohost?

I know there is a wishlist website, but as I’m a new user I can’t create a request there and I want to check with the comunity if this makes sense and to offer my self to help if someone steps to package it.

3 Likes

Tor relay is packaged, so I think what you describe (an alternative entry point into Tor network) fits the catalog just right.

Can you share the deployment docs?

This is the documentation we have:
community.torproject. org/relay/setup/snowflake/standalone/
(I can’t put links been a new user, sorry for the extra space)

I’m not sure how the internals of yunohost works, there are docker images that we keep up to date, the debian packages work but are a bit outdated currently and there is the option of building from source is just a single binary, no config files, that builds statically (is written in go).

1 Like

Would building the latest release tag be an option? Ideally, would the project be able to ship standalone binaries for amd64 and aarch64?

Yes, building the latest tag release is a good option.

I’m checking with the rest of the team.

I’m not sure I understand what “the project” here means. Are you asking if snowflake can provide those binaries? or if yunohost compiled binaries will be statically linked?

We are not providing precompiled binaries, but we can do it.

The proxy binary is written in go, which compiles statically by default, it doesn’t depend on any external libraries.

Yes, ideally we want to download prebuilt binary (compatible with Debian 12) and just run it to avoid the complexity of setting up build deps. So by project I mean Snowflake, and by tagging - tagging releases ~ around the docker image (unless the last release was early 2025).

Would that be possible?

The last release is from march: gitlab.torproject org/tpo/anti-censorship/pluggable-transports/snowflake/-/releases

Same than the latest tag in docker hub (see that there are also nightly builds in dockerhub, but are not recommended for production).

We can provide binaries that will work in any version of Debian, so next release will come with them.

2 Likes

@meskio ‘s teammate here! Does your automation system supports download from a release like this one: “echo -n “aHR0cHM6Ly9naXRsYWIudG9ycHJvamVjdC5vcmcvc2hlbGlraG9vL3Rlc3RpbmdfcnoyNXd1ZnVoNGV2bzd1bzFrN3RzNnF5NjU3eTRoZ3pvOHVoLy0vcmVsZWFzZXMvdjAuMC44Cg==” | base64 -d“ ← (I am unable to post a link here, please unbase64 this to see the content)

(The actual file client_linux_amd64 attached here has no purpose, it is just a placeholder)

This looks workable, ynh is able to use raw assets as installation source :ok_hand:

1 Like

I will gladly run this if it packaged for ynh

1 Like
4 Likes

I have installed it … but I don’t understand how I can test it if it is running properly. Is there any possibily to access a status view / dashboard or similar? Thank you!

3 Likes

WebAdmin->Tools->Services->Snowflake, there should be a log there with hourly traffic summaries

2 Likes

Great, thanks a lot, I found it and there are quite a lot of connections per hour … so it seems to be of use for others!? :slight_smile:

1 Like