Snowflake proxies properties

Hi,

Can someone give me a run down or link to docs that answers;

What are the hardware specs advised for a single proxy?
Can you run multiple proxies on one IP?
Can you run a single high bandwidth snowflake on multiple IP’s?
Any specific good to knows for snowflakes in comparison to regular exit/guard relays?
I assume you should never host a snowflake on a known relay IP (defeats the purpose right?)?
What are the bandwidth requirements? If I buy 1gbit link, will it even be used?

I saw the need for more snowflakes, so I’m exploring viable and scalable options - hence this post. Thus far I only manage “regular” relays.

2 Likes

I have information only from my experience, so it may be inaccurate.

My proxy uses 3-5% of 4-core CPU.
It is harder to measure RAM because proxy still have memory leaks, but approximately it uses ~200MB + 100MB increase every day.

Yes.

Don’t know, but looks like it have not much sense.
Single proxy do not saturate available resources.

I case if someone fix all memory leaks, snowflake will use less RAM.
Probably there will be less IP bans from random services on the Internet.
Also snowflake uses more ports (can be configured, but I did not tested) and more protocols (+UDP).

I use it that way, no problems with amount of clients (censors are slow maybe?).

Right now my proxy uses approximately 1 megabyte / sec.
Example stats from proxy logs:
2023/06/16 15:17:59 In the last 1h0m0s, there were 242 connections. Traffic Relayed ↓ 3384034 KB, ↑ 451313 KB.

You are correct. Defeats the purpose, yes.

If your NAT is unrestricted, use the -ephemeral-ports-range xxxxx:xxxxxx flag (ephemeral udp ports - either the whole range or pick a range of 10,000). If it’s not you can run your machine in a DMZ and do likewise. I’ll assume that your not doing this on your daily driver unless your using a VM or the like.

Yes, but FYI see

On multiple machines or the same machine with several IPs? The former is not possible with the current state of Snowflake codebase, the latter is possible (a proxy with default settings is gonna do it automatically actually, thanks to WebRTC).

Well, yes, but I actually haven’t seen a thorough explanation as to why. Also see Obfs4 or snowflake bridge or both.

If you have an unrestricted NAT, your proxy will use more bandwidth, because they’re more in-demand. But anyways, it’s unlikely, given that you host only one proxy instance and it has default client polling period (see Is running the extension on more than one browser at the same time redundant/pointless/harmful? (#75) · Issues · The Tor Project / Anti-censorship / Pluggable Transports / Snowflake WebExtension · GitLab on how polling works).

See

2 Likes

My most popular snowflake proxy is consuming ~7 TiB per month.

2 Likes

Thanks all for the input. I’ll see what I can do. 7TiB is peanuts compared to what relays will do, so that makes my life a lot easier. Primary cost will just be the (IPv4) IP’s themselves.

If your library has a different method for updating events, you’ll want to use that instead. Be sure to check the documentation for the specific library you’re using to find the appropriate method for updating events dynamically. I also advise you to buy proxies and try to log in from different locations. If you’re still facing issues, please provide more details about the library you’re using and any specific code snippets related to the problem.