
How to host a website anonymously
To host a website anonymously you sever every link between the site and your identity: deploy a no-KYC VPS paid in Monero (no ID, no phone, email + password only), pick a privacy-friendly jurisdiction, point a domain registered separately, then harden SSH, firewall, and fail2ban and serve nginx over TLS. On NoKycVPS a server boots in about 47 seconds with no documents requested.
"Anonymous" hosting is not one switch. It is a chain of links between your real identity and a public IP address, and your anonymity is only as strong as the weakest link. The payment trail, the registrar WHOIS, the SSH key on your daily laptop, the analytics script phoning home, a leaked origin IP behind a CDN, server logs you forgot to disable — any one of these breaks the chain. This guide walks the whole chain end to end with concrete commands.
The model here: separate identity from infrastructure from name resolution. You buy compute without identifying yourself (a no-KYC VPS paid in Monero (XMR)), you register a domain through an unlinked path (covered separately), and you operate the box so it never leaks who built it. NoKycVPS is built for exactly this: email + password is the entire credential, payment is crypto-only, and the operator acts only on a binding judicial order from a Saint Kitts and Nevis court — with customer notice first.
Define your threat model first
Before you type a command, decide who you are hiding from. "Anonymous" against a curious neighbour is trivial; anonymous against a well-resourced civil litigant or a nation-state is a different discipline. Your operational rules — which device you SSH from, whether you ever touch the box from your home IP, whether the domain and the server can be correlated — all flow from this answer.
Three identities to keep apart
- Compute identity — who paid for and controls the server. Defeated by a KYC signup or a traceable card. Solution: a no-KYC VPS paid in Monero.
- Name identity — who owns the domain. Defeated by WHOIS, registrar payment records, or DNS that resolves your real nameservers. Solution: register the domain through a separate anonymous path (see register a domain anonymously).
- Operator identity — the fingerprints you leave while running it. Defeated by reused SSH keys, logging in from home, a CMS that embeds your username, or analytics/fonts/scripts loaded from third parties.
Write down which of these matters for your project. A privacy-respecting marketing site needs the first two. A leak archive or a journalist's dropbox needs all three, plus the Tor hidden service approach below.
What anonymity is NOT
It is not a single "private mode." It is not trusting a CDN's "hide my IP" toggle while your origin still answers on its real address. And it is not legal cover for prohibited activity — NoKycVPS has one zero-tolerance line (CSAM) and acts on binding judicial orders. Anonymity here means you are not casually identifiable and the operator holds no documents that identify you, not that the laws of physics or your jurisdiction stop applying.
Pick a jurisdiction
Where the bytes live determines whose courts can compel what. NoKycVPS runs the same hardware in four regions, so you choose venue without sacrificing performance:
- Reykjavik, Iceland (REK) — the IMMI press-freedom initiative, no mandatory data-retention law, and renewable geothermal power. Strong choice for journalism and leak archives.
- Zurich, Switzerland (ZRH) — strong constitutional privacy (FADP), outside the 14-Eyes intelligence-sharing arrangement, and Art. 271 of the penal code restricts assisting foreign authorities. The conservative pick for adversarial threat models.
- Bucharest, Romania (OTP) — EU member, excellent connectivity, historically resistant to overbroad takedown pressure, lowest cost in the EU set.
- Paris, France (PAR) — EU, robust peering and infrastructure, GDPR. Cheapest region and lowest latency for most of Europe.
For the strongest separation between you and any single legal system, host in Reykjavik or Zurich and register your domain through a registrar in yet another jurisdiction. See the jurisdiction overview for the full legal-hook breakdown. Whichever region you pick, the corporate venue for any legal demand is Saint Kitts and Nevis, and the operator notifies you before acting on a properly served order.
Deploy a no-KYC VPS, paid in Monero
Create an account with a disposable email and a strong password — that is the entire signup, no verification email, no phone, no captcha. Then top up your balance with crypto. Monero (XMR) is the privacy default: it credits in about 30 seconds and leaves no public on-chain trail linking the payment to you. Bitcoin works too but settles in a few minutes and is transparent on-chain, so prefer XMR for this use case.
Top up and deploy
- Top up the balance, then deploys debit it. Bonuses scale with size: +30% at $100, +70% at $1000 (linear between).
- Pick a plan. The S1 (2 vCPU / 4 GB DDR5 / 80 GB NVMe, from $5/mo) is plenty for a static or small dynamic site. Step up to S2 Pro (4 vCPU / 16 GB / 320 GB, from $15/mo) for a CMS, database, and headroom.
- Choose an OS image — Debian 13 is the lean default used in the commands below. Ubuntu 24.04, Rocky 9, Alma 9, Alpine, Arch, and FreeBSD 14 are also available.
- Pick a billing cycle. Cycle discounts are steep and one-shot (no auto-renew): 3-month 25%, 6-month 35%, 12-month 50%.
Deploy. Median boot is about 47 seconds; you'll get the IPv4 address, a /64 IPv6 block, and initial root credentials in the panel. Add your SSH public key during ordering if the option is offered, or paste it on first login as shown next. Ready to go? Order a VPS.
# From the order panel you receive an IPv4 like 203.0.113.10
# First login (replace with your address):
ssh [email protected]Harden the server: SSH keys, firewall, fail2ban
A box exposed on the public internet is scanned within minutes. Lock it down before you serve a single byte. Do all of this in your first session.
1. Key-only SSH, no root password login
Generate a key on your local machine if you don't have one (use a dedicated key for this project — do not reuse your work key):
# Local machine
ssh-keygen -t ed25519 -f ~/.ssh/anon_site -C ""
ssh-copy-id -i ~/.ssh/anon_site.pub [email protected]Then on the server, disable password and root-password logins:
# /etc/ssh/sshd_config.d/hardening.conf
PasswordAuthentication no
PermitRootLogin prohibit-password
KbdInteractiveAuthentication no
AuthenticationMethods publickey
systemctl restart sshThe -C "" strips the user@hostname comment so your key file doesn't embed your laptop's hostname or username — a small but real operator-identity leak.
2. A default-deny firewall
apt update && apt install -y nftables
# Allow SSH, HTTP, HTTPS only; drop the rest inbound.
cat > /etc/nftables.conf <<'EOF'
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iif lo accept
tcp dport { 22, 80, 443 } accept
ip protocol icmp accept
ip6 nexthdr icmpv6 accept
}
}
EOF
systemctl enable --now nftables3. fail2ban for brute-force noise
apt install -y fail2ban
cat > /etc/fail2ban/jail.local <<'EOF'
[sshd]
enabled = true
maxretry = 3
bantime = 1h
findtime = 10m
EOF
systemctl enable --now fail2banAlso run unattended security updates (apt install unattended-upgrades) and create a non-root sudo user for day-to-day work. The VPS hardening guide goes deeper on auditd, kernel sysctl, and log minimisation.
Serve a clean-IP site: nginx + TLS
For a normal public website you serve on the server's real IP over HTTPS. The anonymity comes from the fact that the IP and domain trace back to nobody, not from hiding the IP. (If you also want a CDN in front, that is fine — but never leave the origin answering your real domain on a guessable address; lock the origin to the CDN's IP ranges in nftables, or you've leaked your origin.)
Install and get a certificate
apt install -y nginx certbot python3-certbot-nginx
# Point your domain's A/AAAA records at the VPS IPs first, then:
certbot --nginx -d example.org -d www.example.org \
--agree-tos --no-eff-email -m [email protected]Use a domain-scoped address such as [email protected] for the ACME contact — never a personal mailbox. Certbot installs a renewal timer automatically.
A minimal, log-light nginx site
# /etc/nginx/sites-available/example.org
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name example.org www.example.org;
root /var/www/example.org;
ssl_certificate /etc/letsencrypt/live/example.org/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.org/privkey.pem;
ssl_protocols TLSv1.2 TLSv1.3;
# Privacy: don't store visitor IPs in access logs.
access_log off;
server_tokens off;
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
}
server {
listen 80; listen [::]:80;
server_name example.org www.example.org;
return 301 https://$host$request_uri;
}access_log off means you never accumulate a database of visitor IPs that could be subpoenaed — you can't hand over what you don't keep. Set server_tokens off so the version banner doesn't fingerprint your stack. And do not embed third-party analytics, fonts, or scripts: every external request from a visitor's browser is a correlation handle. Self-host everything. Reload with nginx -t && systemctl reload nginx.
Optional: a Tor hidden service (.onion) backend
For the strongest cut between the site and any IP address, expose it as a Tor onion service. There is no public IP for an adversary to seize, geolocate, or correlate — the address is derived from a keypair and reachable only over Tor. You can run an onion service alongside the clean-IP site or instead of it.
apt install -y tor
# /etc/tor/torrc
HiddenServiceDir /var/lib/tor/site/
HiddenServicePort 80 127.0.0.1:8080
systemctl restart tor
cat /var/lib/tor/site/hostname # your xxxxxxxx.onion addressPoint nginx at 127.0.0.1:8080 for the onion vhost and bind it to localhost only — Tor handles all external reachability, so the firewall above (which drops everything except 22/80/443) keeps the onion backend invisible to the clean internet. NoKycVPS explicitly permits Tor relays, exits, and hidden services. For a public site that also wants .onion discoverability, advertise it with an Onion-Location header from your clearnet vhost so Tor Browser offers the upgrade automatically.
This is the right architecture for leak archives, journalist dropboxes, and anything where even a seized server should reveal nothing about its operator or its visitors. Pair it with full-disk-encryption awareness: root passwords are already AES-256 encrypted at rest under an operator-held key.
Separate identity from DNS and the domain
You have done the hard part — a no-KYC, crypto-paid, hardened, log-light server. Now don't undo it at the name layer. The domain is the most common place anonymity quietly leaks.
- WHOIS — register through a path that doesn't put your name in the public record. NoKycVPS sells domain names across 26 TLDs on the same no-KYC, crypto-paid account, so the domain and the server share zero personal data. The full method is in register a domain anonymously.
- DNS history — if a domain ever pointed at your home IP or a previously-identified server, passive-DNS databases remember. Use a fresh domain, or audit its history before reuse.
- Payment correlation — pay for the domain from the same crypto balance or a different one, but never with a card or a payment rail tied to your name.
- Registrar nameservers — keep DNS at the registrar or on the same anonymous infrastructure; don't route it through a personal account at a third party.
When the domain, the DNS, the server, and the payment all trace back to nobody, you have actually hosted a website anonymously — not just felt like it. For deeper venue selection, read offshore hosting, and to harden the box further see harden a VPS.
- Define your threat model
Decide who you are hiding from and which of the three identities — compute, name, operator — must stay separate. A marketing site needs the first two; a leak archive needs all three plus Tor. This choice drives every command below.
- Pick a jurisdiction
Choose the legal venue: Reykjavik or Zurich for the strongest privacy posture (outside 14-Eyes, no data-retention mandate), Bucharest or Paris for low-cost EU. Same hardware in every region, so you choose venue without losing performance.
- Deploy a no-KYC VPS paid in Monero
Sign up with a disposable email and password — no ID, phone, or verification. Top up the balance in Monero (XMR) (credits in ~30s), pick an S1 or S2 plan and Debian 13, and deploy. Median boot is about 47 seconds. Order a VPS.
- Lock down SSH
Use a dedicated ed25519 key with
-C ""so it carries no hostname. Copy it to the box, then setPasswordAuthentication noandPermitRootLogin prohibit-passwordand restart sshd. - Firewall and fail2ban
Install nftables with a default-deny input policy allowing only 22/80/443, enable unattended-upgrades, and install fail2ban with a 3-retry / 1-hour ban sshd jail to absorb brute-force noise.
- Serve nginx over TLS
Point your domain's A/AAAA records at the VPS, run
certbot --nginxwith a domain-scoped ACME email, and deploy a vhost withaccess_log offandserver_tokens off. Self-host all fonts, scripts, and analytics — no third-party requests. - Optional: add a Tor hidden service
Install Tor, add a HiddenServiceDir/HiddenServicePort pointing at a localhost-bound nginx vhost, restart, and read the
.onionhostname. No public IP to seize or correlate; pair with anOnion-Locationheader on the clearnet site. - Separate the domain from your identity
Register the domain on the same no-KYC, crypto-paid account so WHOIS and payment hold no personal data, audit the domain's passive-DNS history, and keep nameservers off any personal account. Full method in register a domain anonymously.
أسئلة تستحق الإجابة
Is anonymous web hosting legal?
Yes. Buying compute without identifying yourself and paying in crypto is legal, and NoKycVPS permits a wide range of legitimate uses — Tor relays, journalism, leak archives, adult content for consenting adults, and controversial-but-legal-somewhere speech. The one zero-tolerance line is CSAM, and the operator acts on binding judicial orders from a court with jurisdiction over the Saint Kitts and Nevis entity. Anonymity is about not being casually identifiable, not about evading the law.
Why pay in Monero instead of Bitcoin?
Bitcoin is transparent on-chain, so a payment can in principle be traced back to an exchange that holds your identity. Monero (XMR) hides sender, receiver, and amount by design, leaving no public link between the payment and you. On NoKycVPS, XMR also credits your balance in about 30 seconds versus a few minutes for BTC. Both are accepted among 10 supported coins; XMR is the privacy default.
What does "no-KYC" actually mean here?
Email plus password is the entire credential. There is no identity check, no phone number, no document upload, no email verification, and no captcha. A disposable email address is welcome. The operator never collects documents that could identify you, so there is nothing identifying to hand over.
Do I need a Tor hidden service, or is a normal HTTPS site enough?
For most privacy-respecting sites a clean-IP nginx + TLS site on a no-KYC VPS is enough — the IP and domain simply trace back to nobody. Add a Tor onion service when you need to remove the public IP entirely, such as a leak archive or a journalist dropbox where even a seized server should reveal nothing. You can run both at once.
How do I keep the domain from de-anonymising the server?
Register the domain through a path with no personal data in WHOIS or payment — NoKycVPS offers domains across 26 TLDs on the same crypto-paid account. Use a fresh domain so passive-DNS history doesn't link it to a past IP, and keep nameservers off any personal third-party account. See the dedicated guide on registering a domain anonymously.
Deploy your offshore server.
اختر منطقة. اختر خطة. الصق مفتاحاً. ادفع. الـ 47 ثانية القادمة على حسابنا.