Quick Answer: Oracle Cloud gives you 4 ARM CPU cores + 24 GB RAM free forever — the best free VPS. Google Cloud gives $300 credit for 90 days. AWS gives 12 months of a small instance. All require a credit card for verification but won't charge you on the free tier.
Just want a cheap VPS instead? Vultr (free credit), DigitalOcean ($200 free credit), or RackNerd (cheap annual deals) — starting at $3/month.
Comparison: Every Free VPS Option
| Provider | What You Get Free | Duration | Card Required | Best For |
|---|---|---|---|---|
| Oracle Cloud | 4 ARM cores, 24 GB RAM, 200 GB disk | Forever | Yes | Best free option — run anything |
| Google Cloud | $300 credit, e2-micro always free | 90 days credit + always free tier | Yes | Testing, small projects |
| AWS | t2.micro or t3.micro (1 vCPU, 1 GB RAM) | 12 months | Yes | Learning AWS |
| Azure | $200 credit (30 days), B1S free 12 months | 30 days credit + always free | Yes | Learning Azure |
| Oracle Cloud x86 | 1 core, 1 GB RAM, 50 GB disk | Forever | Yes | Light tasks |
| IBM Cloud | Limited (many services deprecated) | Forever | No | Very limited |
| Fly.io | $5/month free compute credit | Forever | Yes | Tiny apps, containers |
| Railway | $5 trial credit | Trial | Yes | Small web apps |
The winner: Oracle Cloud. 4 ARM cores with 24 GB RAM for free forever is unmatched. Nothing else comes close for a free server you can run proxies, VPNs, and services on.
Option 1: Oracle Cloud (Best — Free Forever)
Oracle Cloud's "Always Free" tier is the most generous in the industry:
What You Get Free Forever
| Resource | Amount |
|---|---|
| ARM (Ampere A1) | Up to 4 cores, 24 GB RAM total |
| x86 (AMD) | 1 core, 1 GB RAM |
| Boot volume | 200 GB total |
| Bandwidth | 10 TB/month outbound |
| Public IPs | 2 reserved |
| Load balancer | 1 flexible LB |
| Object storage | 20 GB |
You can split the ARM resources however you want — one big VM (4 cores, 24 GB) or multiple smaller ones.
Sign Up
- Go to cloud.oracle.com
- Click "Start for free"
- Enter your email, name, country
- Home Region — choose carefully, this cannot be changed later. Pick the closest to your users:
- US users: Phoenix or Ashburn
- Europe: Frankfurt or Amsterdam
- Asia: Tokyo, Seoul, Mumbai
- Middle East: Jeddah (closest to Iran without being IN Iran)
- Enter credit card (for verification — Oracle charges $1 and refunds it)
- Verify email
- Wait for account approval (usually instant, sometimes 24 hours)
Create an ARM Instance (4 cores, 24 GB)
- Go to Compute → Instances → Create Instance
- Image: Ubuntu 22.04 (or 24.04) — select "Canonical Ubuntu"
- Shape: Click "Change Shape" → Ampere → select VM.Standard.A1.Flex
- Set: 4 OCPUs, 24 GB memory
- Networking: Accept defaults (creates a VCN with public subnet)
- SSH keys: Upload your public key or let Oracle generate one (download the private key!)
- Click Create
Common issue: "Out of capacity" error. Oracle's free ARM instances are extremely popular. If you get this error:
- Try at off-peak hours (early morning US time)
- Try a different availability domain (AD)
- Try reducing to 2 cores, 12 GB first
- Keep retrying — capacity opens up periodically
- Some people automate retries with a script
Connect
# Default user for Ubuntu on Oracle
ssh ubuntu@YOUR_PUBLIC_IP -i your-private-key
# First things first
sudo apt update && sudo apt upgrade -y
Open Firewall (Oracle-Specific!)
Oracle Cloud has TWO firewalls — the OS firewall (iptables) and the cloud security list. You need to open both:
1. Cloud Security List (Oracle Console):
- Go to Networking → Virtual Cloud Networks → your VCN → Security Lists → Default Security List
- Click Add Ingress Rules
- Add rules for your ports:
| Source CIDR | Port | Protocol | Description |
|---|---|---|---|
| 0.0.0.0/0 | 22 | TCP | SSH |
| 0.0.0.0/0 | 80 | TCP | HTTP |
| 0.0.0.0/0 | 443 | TCP | HTTPS |
| 0.0.0.0/0 | 51820 | UDP | WireGuard |
| 0.0.0.0/0 | All | All | (or open all for simplicity) |
2. OS Firewall (iptables):
Oracle's Ubuntu images have restrictive iptables rules by default:
# WARNING: This removes ALL firewall rules. Use the UFW method below instead
# for a safer approach. Only use this if UFW doesn't work.
sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
# Save (so it persists after reboot)
sudo apt install iptables-persistent -y
sudo netfilter-persistent save
Or use UFW instead:
sudo iptables -F
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
This is the #1 reason things don't work on Oracle Cloud — people forget about the double firewall.
What to Run on It
4 ARM cores + 24 GB RAM can run a LOT:
- WireGuard VPN — with SamNet-WG
- 3X-UI Panel — VLESS+Reality proxy
- Marzban Panel — modern proxy panel
- Hysteria2 — fastest proxy
- MTProto Proxy — Telegram proxy
- Docker — run multiple services
- Pi-hole — DNS ad blocking
- Nextcloud — cloud storage
- Basically anything from the Complete Self-Hosting Guide
ARM + Docker Note
Most Docker images support ARM64 (Nginx, Node.js, Python, PostgreSQL). Some older images do not. Check before pulling:
docker manifest inspect IMAGE_NAME | grep arm64
If no arm64 support, look for community ARM builds or build from source.
Limitations
- ARM architecture — most software works (Docker, Nginx, Node.js, Python) but some x86-only binaries won't run
- "Out of capacity" makes getting the instance hard initially
- Oracle can terminate free tier instances after being "idle" (no compute activity for 7 days). Keep a lightweight cron job running to prevent this:
# Prevent Oracle from reclaiming idle instances
(crontab -l 2>/dev/null; echo "*/10 * * * * dd if=/dev/urandom bs=1k count=1 2>/dev/null | md5sum > /dev/null 2>&1") | crontab -
Option 2: Google Cloud ($300 Credit + Always Free)
What You Get
$300 credit for 90 days — use any VM size, any region. After 90 days:
Always Free tier:
| Resource | Amount |
|---|---|
| e2-micro VM | 1 shared vCPU, 1 GB RAM |
| Boot disk | 30 GB standard |
| Bandwidth | 1 GB/month to most regions |
| Region | Oregon, Iowa, or South Carolina only |
Sign Up
- Go to cloud.google.com/free
- Sign in with Google account
- Enter credit card (won't charge after free trial unless you manually upgrade)
- Get $300 credit
Create a VM
Console → Compute Engine → VM Instances → Create Instance
Name: my-server
Region: us-west1 (Oregon) — cheapest, and always-free eligible
Machine type: e2-micro (for always free) or anything during $300 credit
Boot disk: Ubuntu 22.04, 30 GB
Firewall: Allow HTTP + HTTPS
Limitations
- e2-micro is very small (1 shared vCPU, 1 GB RAM) — fine for a light proxy or Pi-hole, not for heavy Docker services
- Always-free is limited to 3 US regions
- 1 GB/month egress is very low — you'll exceed this quickly with a proxy
- After $300 credit, you must explicitly upgrade to avoid shutdown
Best Use
Use the $300 credit to test setups for 90 days. Then either pay for what you use or switch to Oracle Cloud free tier for long-term.
Option 3: AWS Free Tier (12 Months)
What You Get
12 months free:
| Resource | Amount |
|---|---|
| t2.micro | 1 vCPU, 1 GB RAM |
| Storage | 30 GB EBS |
| Bandwidth | 15 GB/month outbound |
| Elastic IP | 1 (free while attached to running instance) |
Sign Up
- Go to aws.amazon.com/free
- Create AWS account
- Enter credit card
- Verify phone number
- Choose "Basic Support" (free)
Create an Instance
Console → EC2 → Launch Instance
Name: my-server
AMI: Ubuntu Server 24.04 LTS
Instance type: t2.micro (or t3.micro if available)
Key pair: Create new (download the .pem file!)
Network: Allow SSH, HTTP, HTTPS
Storage: 30 GB gp2
Connect
chmod 400 your-key.pem
ssh -i your-key.pem ubuntu@YOUR_EC2_IP
Limitations
- t2.micro has "CPU credits" — if you use sustained CPU, it gets throttled
- After 12 months, it starts charging! Set a billing alarm
- 15 GB/month egress is low for a proxy server
- Some regions cost more even on free tier
Best Use
Learning AWS. For a free proxy server, Oracle Cloud is much better.
Option 4: Azure Free Tier ($200 Credit)
What You Get
$200 credit for 30 days + always free:
| Resource | Amount |
|---|---|
| B1S VM | 1 vCPU, 1 GB RAM (750 hours/month for 12 months) |
| Storage | 64 GB SSD (for 12 months) |
| Bandwidth | 15 GB/month outbound |
Sign Up
- Go to azure.microsoft.com/free
- Sign in with Microsoft account
- Enter credit card
- Get $200 credit
Limitations
- $200 credit expires in 30 days (shortest of all providers)
- B1S always-free is only for 12 months
- Less generous than Oracle or AWS
Option 5: Budget VPS ($3-5/month)
If free tiers are too restrictive (capacity issues, bandwidth limits, ARM compatibility), a $3-5/month VPS gives you a reliable server with no surprises:
| Provider | Price | Specs | Why Choose |
|---|---|---|---|
| Vultr | $3.50/month | 1 vCPU, 512 MB RAM, 10 GB | Free credit on signup |
| DigitalOcean | $4/month | 1 vCPU, 512 MB RAM, 10 GB | $200 free credit |
| RackNerd | $3/month | 1 vCPU, 768 MB RAM, 15 GB | Cheapest annual deals |
| Hetzner | $3.29/month | 1 vCPU, 2 GB RAM, 20 GB | Best value in Europe |
For $3-5/month you get:
- Dedicated x86 CPU (no ARM compatibility issues)
- Guaranteed resources (no "out of capacity")
- Unlimited bandwidth (or very generous limits)
- Reliable uptime
- No risk of free tier termination
If you can afford $3/month, a paid VPS is simpler and more reliable than fighting Oracle's free tier capacity.
Important: Payment and Sanctions
If you're in Iran, Syria, or other sanctioned countries:
- Credit cards from these countries don't work on any cloud provider
- You need a card from another country (Turkey, UAE, etc.) or a virtual card service -- ask in Iranian tech Telegram groups for current working methods (Turkish bank accounts, UAE neobanks like Liv or Mashreq Neo are common options)
- Use a VPN during signup -- some providers block signups from sanctioned IPs
- Oracle Cloud is the most strict about identity verification; Google Cloud and AWS are slightly easier
If you're in China:
- Most international cards work
- Aliyun (Alibaba Cloud) is a domestic alternative with free tiers
- Use a VPN during signup for non-Chinese providers
Which Free Tier Should You Use?
Need a long-term free server?
→ Oracle Cloud ARM (4 cores, 24 GB, forever)
Just want to test/learn for 90 days?
→ Google Cloud ($300 credit)
Learning AWS specifically?
→ AWS Free Tier (12 months)
Can't get Oracle ARM (out of capacity)?
→ Oracle x86 (1 core, 1 GB, forever)
→ Or just pay $3/month for Vultr/RackNerd
Need guaranteed reliability?
→ Pay $3-5/month (Vultr, DO, RackNerd, Hetzner)
What to Do After Getting Your VPS
- Set up SSH keys — secure your login
- Harden your server — firewall, fail2ban, updates
- Install Docker — for running services
- Choose what to run:
- VPN: WireGuard
- Proxy: 3X-UI or Marzban
- Fastest proxy: Hysteria2
- Telegram proxy: MTProxyMax
- Self-host everything: Complete Self-Hosting Guide
- Home server: Home Server Guide
Troubleshooting
| Problem | Fix |
|---|---|
| Oracle "Out of capacity" | Try off-peak hours. Try different AD. Reduce to 2 cores. Keep retrying |
| Oracle instance reclaimed | It was idle >7 days. Add a cron job to prevent idle detection |
| Oracle firewall blocks traffic | Open BOTH cloud security list AND OS iptables/UFW |
| AWS charges after 12 months | Set billing alarm. Terminate instance before free tier expires |
| Google charges after $300 | Account auto-suspends (no charges) unless you manually upgrade |
| Can't SSH to instance | Wrong key, wrong username (ubuntu for Ubuntu, opc for Oracle Linux), wrong security group |
| ARM binary won't run | That binary is x86-only. Look for ARM64/aarch64 version or build from source |
Related Guides
- VPS Setup from Scratch — first server setup
- Complete Self-Hosting Guide — deploy services
- Home Server Guide — host from home instead
- Docker Cheat Sheet — containerize everything
- How to Install Docker — Docker installation
- SSH Keys Setup — secure login
- Server Hardening — security basics
- 3X-UI Panel Setup — proxy server
- Marzban Panel Setup — modern proxy panel
- Hysteria2 Setup — fastest proxy
- WireGuard Setup — VPN
- Fortify Server Hardening — automated hardening