All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
Tor exit-friendly VPS (1c2g5g, 2 IPs) outside of common exit locations
I'm looking for a VPS from a provider that allows Tor exit relays. For those who don't know, Tor exit relays are legal to operate in most countries, but they do result in the IP being put on blacklists. I am happy to block ports that are frequently abused (22, 25, 465, etc) but ports 80 and 443 must be permitted.
Minimum requirements:
- 1 vCPU with AES-NI
- 2 GB RAM
- 5 GB storage (any type)
- Unmetered @ 100 Mbps or equivalent
- Dual stack with 2 IPv4 (ideally from different subnets)
- Installation via custom ISO supported
- $70/y when paid annually or triennially (negotiable, but no more than $100/y)
The provider must accept cryptocurrency payments, must not be a reseller of a major provider (even if the ASN is different), and must not be located in DE, NL, SI, RO, MD, FI, CH, BG, SE, FR, UK, or US. I'm aware of 4vps.
I can pay extra if the IPv6 can be a routed /48.
I intend to install the following software: Tor, snowflake proxy (a type of Tor bridge), Unbound, Syncthing relay, Globalping probe, Beszel agent.


Comments
This price should be quite high, so there should be plenty of options available.
You'd think, but $70/year is not even $6/month. 100 Mbps unmetered is up to 33 TB/month (or 66 in+out). And with the second IPv4 and the fact that it'll dirty one of the IPs and add to the administrative burden of handling abuse reports (even if all it takes is a reply with a "this is a Tor exit node, not a zombie" template), it's a stretch for that price.
I think it's reasonable that I'll find at least a few options, but there aren't many hosts that are both cheap and allow exits.
yup, that is the struggle with hosting exits. That is why the big tor exit operators use their own ASN and IP and colo their own servers.
And the smaller providers who do allow it usually only do it because they believe in free speech as a value. There are a number of those here who do allow exits in this price range, but they're all in the list of countries that I'd like to avoid simply because Tor already has many exits in those regions (the network doesn't need yet another NL relay).
Trying to run a relay outside of those countries is even harder.. There is only so much you can do. Even if there is a lot in EU/US already, it still better to run one in those countries than to not run at all.
For reference, the exits I currently have are in:
I also run non-exits on hosts that allow exits, and I may switch them over to exits eventually (after triple checking that exits are fully allowed). These are:
So that's 7 exits and a potential additional 8 exits out of the 42 relays I have as of writing this.
4vps has by far some of the most diverse locations where exits are permitted, but their AS is "GLOBAL CONNECTIVITY SOLUTIONS LLC", which already makes up a fairly significant portion of Tor exit capacity.
The reason I want a routed /48 is so that I can have (at least) two /64 blocks, one of which will be assigned to the Tor exit (which will damage the /64 reputation enough that some nameservers will block it, same reason I need two IPv4 addresses), the other of which will be used as a routed subnet so that Unbound, a local recursive DNS resolver, can use random source addresses to improve protection against DNS poisoning attacks. So far, only my Advin Servers system has routed IPv6 set up that way.
Indeed, but since I'm on a budget, it's often better to run a number of non-exits in obscure locations than to add yet another exit to the Netherlands or Germany.
@forest check out exservers for locations. I'm not sure if they allow exit nodes.
If you can find it, I think Netcup’s old VPS nano $1.68/m well be a good choice.
They're quite pricey, but they've got some very interesting locations! Venezuela, Lebanon, Iran, Columbia, Mexico... I doubt they'll allow exits, but if they do, I might have to suck it up and pay that $300/yr.
I think Netcup already hosts a large number of relays. What country is their old nano in?
I previously had a VPS nano in Nuremberg, Germany.
Most exits are already in DE and NL, which is why I'm avoiding them. I want to improve Tor's geographical diversity.
Would you like to share how you install tor nodes? Some kind of manual or a script would be very helpful.
Ask them if they allow exit nodes and also ask them about a sponsorship for some locations. They offer Iran as location but I'm sure it's not really located in iran
Assuming Debian, it's as simple as installing the
torpackage and then putting the following in/etc/tor/torrc:If you have a monthly bandwidth cap (in this example, 5 TB/month), additionally add:
If you have a firewall, make sure to open up TCP/9001 and make sure you have at least 1 GB RAM. Now restart the service and you're good to go! It can take a few weeks for the traffic to ramp up, but that's normal.
It's usually recommended to use Tor Project's more up-to-date repo, and they explain how to add that repo in https://support.torproject.org/little-t-tor/getting-started/installing/. Or just run as non-root:
Or, if you're an Ansible fan and want to automate deployment of a large number of relays, check out https://github.com/nusenu/ansible-relayor (but that's more complex and unnecessary if you just want to run one or two on idlers).
Thanks. Pretty simple. I kinda have a similar set up. Is it worth running snowflake?
If you have an extra IP which is not being used for any Tor relays, yeah. But Snowflake is a type of bridge, so the IP has to stay secret (or at least, don't publish anywhere that it could be easily added to some blacklist. I only run it if I'm either not running a Tor relay at all, or if I have two IPv4 addresses assigned, only one of which is published as a Tor IP.
@oloke made this post earlier: https://lowendtalk.com/discussion/214994/webtunnel-and-snowflake-tor-bridge-setup-ansible-playbooks-inside#p1
Yes yes thanks, I have seen it but I do not like Ansible
Gotcha. I usually only have one IPv4 and a subnet of IPv6. Cool, thanks again.
If you'd like, I can write you a quick script for Debian that you can run which will automatically install and configure Snowflake. On Debian, the stable (trixie) version is quite outdated, but the testing version is much more up-to-date. Since it's written in pure Go, there are really no dependencies that would have to be pulled in, so there's no risk of dependency hell that would normally be an issue when mixing stable and testing repos.
As long as you aren't running a public Tor node on that same IPv4 and IPv6 subnet, it's totally appropriate to run Snowflake.
Would be nice, if you have time, thanks. I am just curious how it works. Since it has to stay secret, I have got nobody to send it to but good for experimental/educational purpose.
Looks like 4vps has moved to Datapacket/CDN77 for some of it's locations. Hope that means better CPU performance and network performance which would be good for Tor.
It will automatically add itself to the network so people can use it. The only reason to keep it secret is so that it can't be trivially added to some ISP filter in Iran, which would prevent people there from using it otherwise.
This should work (not tested but it's pretty trivial, just writing a few files):
Thanks. No need for ExecStart= here?
The
systemctl editcommand doesn't create a new service file, it just adds an override file. The original unit file isn't replaced. The package installs/usr/lib/systemd/system/snowflake-proxy.servicewhich contains:But you don't have to create that file yourself, and the
systemctl edit --stdin snowflake-proxy.servicecommand just reads from stdin and writes to/etc/systemd/system/snowflake-proxy.service.d/override.confand then does an implicit daemon-reload. Systemd will read from both files (the original service file and the override) when starting a service.See how it has
DynamicUser=yes? I prefer static users, which is why I haveUser=snowflake-proxyin the override file. I find that easier to manage. I think I added that initially to make SNAT easier, so I could add to/etc/nftables.conf:I do that on systems that have two IPv4 addresses to force Snowflake to only use the secondary one (since the primary one is being used for a Tor relay's ORPort), since it doesn't seem to have any options to exclusively bind to a chosen IP.
The other additions to the override file are just miscellaneous hardening features.
Come to think about it, I should probably add
After=network-online.target nftables.serviceto my own overrides...Ah yes, missed that. Gotcha, thanks again. Will experiment.
This budget is peanuts for Asia/Africa for the bandwidth alone. You want an extra IPv4. And this is for a tor relay. Good luck with that.
It doesn't have to be an APAC country. An uncommon EU country would be fine as well. Yes, it is a bit of a stretch, but that's why I'm flexible on budget. Usually the only providers who are willing to deal with this on their own subnets are those who personally support privacy. I believe @MAXKO_Hosting is planning to open up a location in Serbia soon which will allow Tor exits, for example. He is a big supporter of the Tor network and even gives a discount to people who buy VPSes for the purpose of running a Tor relay!
I could get HK, SG, UAE, and a number of others for this budget with 4vps, so hosts that permit exits for such a price do exist, but they already host quite a number of Tor exits and I am prioritizing network diversity.
Increasing my budget to $120/year.
Thanks for your participation against censorship. Are you also running I2P relays?