Does an Iran VPS have international internet access? Yes — over TCP, on normal days — and by the end of this article you’ll be able to measure it on your own server in five minutes and know what works before you buy. The curl, traceroute-to-8.8.8.8 and dig output below is real and dated, captured on a machine in an Iranian datacenter. Alongside it are three things sales pages don’t tell you: the QUIC handshake is dropped on the international path, the Telegram API doesn’t answer from an Iran server, and in a nationwide shutdown every server inside the country loses its foreign routes — while the domestic routes stay up.
What is an Iran VPS with international internet access?
An Iran VPS with international internet access is a virtual machine in a datacenter inside Iran with two network paths: a domestic path toward users in Iran, and an international path that crosses the country’s border gateways. On normal days the second path is open over TCP, so HTTPS, SSH, git, apt and composer all work against foreign destinations. What doesn’t work is the QUIC handshake, plus a few specific destinations such as the Telegram API.
Numbers instead of promises: on September 16, 2026 (25 Shahrivar 1405 in the Iranian calendar), from a Linux machine in an Iranian datacenter — on the cloud-server network, not a customer’s server — HTTPS to www.google.com returned HTTP 200 over HTTP/2 in 0.44 seconds, and in the same moment timed out with --http3-only: TCP open, QUIC closed.
Last checked: September 16, 2026. International access is not a constant; we re-measure after every nationwide disruption and update this date.
How is Iran VPS traffic billed, and is upload really free?
How is traffic on an Iran VPS calculated? At Mehran Host, only download traffic is currently billed, and upload is free. “Download” means packets coming into the server: apt updates, a git clone, a backup you pull in from elsewhere. “Upload” means everything the server sends out — pages, downloadable files, API responses — and it costs nothing.
The billing basis is a setting, not a permanent promise: when you create a server it is shown as “Upload is free — only download traffic is billed”, and on each server’s page under “Traffic billing basis”. Whatever those say is what applies.
How the charge is taken: a scheduled job reads each server’s cumulative traffic counter from the hypervisor every minute, multiplies the difference from the previous reading by the per-GB rate, and deducts it from your wallet, which is kept in Toman (Iran’s everyday currency unit; 1 Toman = 10 rials). Each deduction appears under “Transactions” and on the server’s daily chart. When the balance reaches zero, the server’s network is suspended with the reason “wallet balance ran out”, and it comes back when you top up. Suspension is not free parking: under clause 6 of the terms of service, a suspended service is deleted with all its data once the stated grace period ends, and making a backup before then is up to you. We break down traffic economics and vnstat in the VPS bandwidth and traffic guide.
Two more cost points: a powered-off server still reserves its resources and IP address and is billed at 50% of the hourly rate; only deleting it stops the charges. An additional IPv4 address is billed by the hour and can’t be removed during the first two weeks after purchase. The reasoning behind the hourly model is in the hourly cloud server guide, and the server price calculator shows the cost of any configuration you like, without signing up.
Does an Iran server have international internet access? A real test with curl, traceroute and dig
Yes, on normal days it has access over TCP, and the best proof is to run these same commands on your own server. The tools, on Ubuntu 22.04 and Debian (curl is already installed):
apt update && apt install -y traceroute bind9-dnsutils
First, a developer’s everyday destinations, tested on September 16, 2026 from that same machine:
for u in https://www.google.com/ https://github.com/ https://repo.packagist.org/packages.json \
https://pypi.org/simple/ https://registry.npmjs.org/ https://archive.ubuntu.com/ubuntu/ \
https://deb.debian.org/debian/ https://hub.docker.com/ https://registry-1.docker.io/v2/ \
https://letsencrypt.org/; do
printf '%-44s ' "$u"
curl -sS -o /dev/null -m 12 -w 'HTTP %{http_code} %{http_version} %{time_total}s\n' "$u"
done
https://www.google.com/ HTTP 200 2 0.436s
https://github.com/ HTTP 200 2 0.906s
https://repo.packagist.org/packages.json HTTP 200 2 0.833s
https://pypi.org/simple/ HTTP 200 2 5.619s
https://registry.npmjs.org/ HTTP 200 2 0.486s
https://archive.ubuntu.com/ubuntu/ HTTP 200 1.1 0.361s
https://deb.debian.org/debian/ HTTP 200 2 0.299s
https://hub.docker.com/ HTTP 200 2 0.642s
https://registry-1.docker.io/v2/ HTTP 401 2 0.577s
https://letsencrypt.org/ HTTP 200 2 1.207s
Nine destinations returned 200; PyPI was slow (5.6 seconds) but got there. registry-1.docker.io/v2/ returned 401, which means the path is open and the registry wants a token — Docker Hub’s behavior is covered in the guide to Docker on a cloud VPS. Now the Telegram API:
curl -s -m 12 -o /dev/null -w '%{http_code}\n' https://api.telegram.org/
000
A code of 000 means no response came back at all, while every other destination was reachable in the same minute. Where the packets die — in transit inside Iran or on Telegram’s side — can’t be told from a timeout, and we make no claim either way. Next, the route and the latency:
traceroute -n -m 16 -q 1 -w 2 8.8.8.8
1 91.199.19.1 3.953 ms
2 172.23.196.1 3.802 ms
3 10.10.53.69 3.481 ms
4 10.202.4.81 3.202 ms
5 10.21.21.11 2.963 ms
6 193.251.150.199 80.965 ms
7 72.14.214.52 78.703 ms
8 *
9 8.8.8.8 82.363 ms
ping -c 4 -q 8.8.8.8 # rtt min/avg/max = 81.9 / 82.0 / 82.0 ms
ping -c 4 -q github.com # rtt min/avg/max = 85.3 / 85.5 / 85.6 ms
ping -c 4 -q www.digikala.com # rtt min/avg/max = 1.45 / 1.48 / 1.50 ms
The first five hops are all under 4 ms — it’s the latency that tells you we’re still inside the country, not the addresses: after the first hop they are private (RFC 1918) ranges that give nothing away. The sixth hop, 193.251.150.199 on Orange’s OpenTransit backbone, is the first router outside Iran, and latency jumps in a single step to about 80 ms — that is the “international gateway” — while a ping to Digikala, Iran’s largest online store, takes 1.5 ms. The last test is DNS over UDP:
dig +short @8.8.8.8 github.com A
140.82.121.4
dig +short @8.8.8.8 o-o.myaddr.l.google.com TXT
"edns0-client-subnet 91.199.19.0/24"
"172.217.34.18"
dig +short @8.8.8.8 google.com A
216.239.38.120
github.com got a normal answer, and the o-o.myaddr query shows that the responder really is Google’s resolver, so UDP/53 is not blocked. But 216.239.38.120 is not an ordinary google.com address; it is Google’s forced-SafeSearch address. DNS answers for some names are rewritten in transit, whichever resolver you ask — and that is why google.com resolves to an unexpected IP on an Iran server.
A reminder: the test machine sits on the same AS as the cloud servers, but it is not a customer machine, and customer IP ranges don’t all go through the same upstream operator. Measure on your own server to get the numbers that apply to you.
Why do QUIC and HTTP/3 fail from an Iran server while TCP works? Is UDP blocked?
QUIC and HTTP/3 don’t work from an Iran server because the QUIC version 1 handshake is silently dropped on the international path. Under RFC 9000 and RFC 9114, HTTP/3 runs on QUIC and QUIC runs on UDP; if the handshake never gets through, HTTP/3 is never established. The September 16, 2026 measurement, three destinations within one minute:
curl -sS -o /dev/null -m 10 --http3-only -w 'HTTP %{http_code} %{http_version} %{time_total}s\n' https://www.google.com/
HTTP 000 0 9.999s
curl -sS -o /dev/null -m 10 --http2 -w 'HTTP %{http_code} %{http_version} %{time_total}s\n' https://www.google.com/
HTTP 200 2 0.493s
www.cloudflare.com http3-only: HTTP 000 (9.999s) | http2: HTTP 200 (0.882s)
www.mehranhost.cloud http3-only: HTTP 000 (9.999s) | http2: HTTP 200 (0.593s)
The result was the same on September 3, 2026, while a control server in Helsinki reached the same destination over HTTP/3 in 0.09 seconds that day — the problem is the path, not the destination. A subtler detail: in our measurement, a QUIC packet carrying an unknown version number did get a Version Negotiation reply. So UDP port 443 is not closed; only the version 1 handshake is dropped in transit.
curl -V | grep -o HTTP3. The curl shipped with Ubuntu 22.04 (7.81), Debian 12 (7.88), AlmaLinux 8 and Rocky 8 (7.61) and Rocky 9 (7.76) is built without HTTP/3 and answers --http3 with the installed libcurl version doesn't support this; versions before 7.88 don’t recognize --http3-only at all. The measurement above was taken with curl 8.14 on Debian 13, which has HTTP/3. Anywhere else, use the static-curl binary (the curl-linux-x86_64-glibc-… file on its Releases page) and run it as ./curl.What this means in practice: build your services on TCP — HTTP/1.1 and HTTP/2 — and treat HTTP/3 as optional. What this failure costs a browser, and how long the Alt-Svc header keeps it trying, are covered in the guide to reducing server ping; our own site ran into exactly this on August 28, 2026.
Which foreign services don’t work from an Iranian IP, and what can you do?
Services that don’t open from an Iranian IP fall into two groups, and the remedy differs for each. The first group is destinations that simply don’t answer an Iran server; the most prominent is the Telegram API, which returned 000 in the test above. The right approach is to run the bot on a server outside Iran, which you create from the same panel and pay for in Toman — the step-by-step is in setting up a Telegram bot on a VPS.
The second group is services that don’t support Iran because of sanctions; here the path is open and the service’s own policy decides. api.openai.com answered over TCP in 0.4 seconds with a 401, but OpenAI’s list of supported countries doesn’t include Iran, and the same page says access from outside that list can get an account blocked; Anthropic’s supported countries page doesn’t include Iran either. We don’t offer a workaround for these services, and we don’t recommend routing their traffic through a server abroad either.
By contrast, Packagist, npm and the Ubuntu and Debian repositories returned 200, so composer, npm and apt work from an Iran server on normal days. Be careful with pip and with SSL certificate issuance: we measured pypi.org/simple/ and letsencrypt.org, not files.pythonhosted.org, which serves the actual packages, nor acme-v02.api.letsencrypt.org, which issues the certificates. Test those two on your own server.
Why don’t Codal and TSETMC load from a VPS?
Codal and TSETMC don’t load from a VPS because a request from a datacenter IP goes unanswered before it ever reaches their web servers. Codal (codal.ir) is the Iranian stock market’s official disclosure system, and TSETMC is the Tehran Stock Exchange’s market-data site. The mechanism hasn’t been announced and we won’t guess at it, but the pattern is measurable: in the September 16, 2026 test, HTTPS to www.codal.ir and www.tsetmc.com timed out while google.com and Digikala returned 200 in the same minute. The decisive detail: on September 17, the same two destinations also timed out from one of our servers in Finland. So the blocker is neither the international path nor the country of the IP, but the fact that it is a datacenter IP.
We also know this from a real ticket: in late summer 2026 a customer reported the same pattern with search.codal.ir and www.tsetmc.com from a freshly created server. If your application reads stock-market or Codal data and can’t reach it, open a ticket with the server’s IP and the exact destination name; we don’t promise an IP change for this.
What happens to an Iran server when the international internet is cut off?
When the international internet is cut off, an Iran server stays up and reachable from inside the country, because the domestic path doesn’t depend on the international one. That’s simply how the network is built: an Iranian visitor never reaches the sixth hop of the traceroute above. Two nationwide shutdowns were recorded in the past year: one starting January 8, 2026, and one starting February 28, 2026, for which France 24 reported a partial restoration on its 88th day, May 26, 2026. A report by Zoomit (an Iranian tech news site, in Persian) puts the total at 116 days: 48 days in the Iranian year 1404, which ended on March 20, 2026, and 68 days in the spring of 1405.
What doesn’t depend on the international path: Iranian visitors, callbacks from Iranian payment gateways (the Shaparak card network), domestic SMS services, and your own SSH sessions from inside Iran — a structural argument, not an availability guarantee. Mehran Host’s free DNS has one nameserver in Iran and one in Europe, but ns2 pulls the zones from ns1 over the international path, and we don’t promise the two will always be in sync. After adding a domain, both serials should match; if ns2 answers REFUSED, open a ticket:
dig +short @ns1.mehranhost.cloud example.ir SOA
dig +short @ns2.mehranhost.cloud example.ir SOA
What goes down: composer, apt and pip from foreign repositories, international APIs, visitors from abroad, and your own access to your server abroad — even over SSH.
Clause 10 of the terms of service treats disruption that “results from a decision by regulatory authorities or from filtering” (Iran’s state internet censorship) as outside the provider’s control, and we make no claims about the state of our own service on those days. Practical advice: keep work that depends on foreign services on a server outside Iran — but know that on a shutdown day you can’t move files between the two servers either, so keep vendor and your Docker images on the Iran server ahead of time. How your site behaves on the National Information Network (NIN), Iran’s domestic network, is the subject of site speed on the National Information Network.
Iran VPS port speed: how many Mbps is the port?
An Iran VPS port at Mehran Host has no artificial cap: the machine’s network card is created without a speed limit, and we don’t advertise a fixed figure either. Real throughput depends on the node’s load at that moment, the capacity of the international gateway at that hour and the speed of the other end — and the domestic and international legs are two separate bottlenecks that have to be measured separately.
Why a single download is misleading: TCP grows its send window as acknowledgments come back, and on an 80 ms path each round trip takes more than fifty times as long as on the domestic path, so a single stream won’t fill the link. Measure with iperf3 against a machine you control — an hourly server abroad, for example — using several parallel streams for at least 30 seconds, and open port 5201/TCP on that machine; otherwise you’ll get Connection refused, which has nothing to do with the path:
apt install -y iperf3
iperf3 -c 203.0.113.10 -t 30 -P 4
The full method, and how to read the [SUM] line, are in test six of the Iran server quality test.
Iran server IP lost international access? The filtering watchdog and IP replacement
If an Iran server’s IP loses its international access, Mehran Host’s “filtering watchdog” detects it from outside the country, adds it to the blocked list and alerts the technical team. How it works: every half hour, a batch of the primary IPs of active, powered-on servers — rotating until the whole fleet is covered — is tested from an agent outside Iran with an ICMP ping and a TCP connection to port 443. A “connection refused” counts as reachable; only a timeout on every signal is recorded as “no access”. An IP is listed only after several consecutive checks, and while it is on the list it isn’t assigned to any new customer.
Two limitations. Detection happens from outside, so if your server’s firewall silently DROPs every packet, the watchdog can’t tell blocking apart from your firewall — leave at least ICMP open. And replacement is deliberately not automatic: the IP is on your live machine, and changing it breaks DNS and certificates. So first rule out your own firewall and ISP — with check-host.net from several countries — then open a ticket naming the IP and the destination. Under clause 10 of the terms of service, an IP replacement is made available after review.
We walk through the diagnosis step by step — whether the IP itself is blocked, the domain name is filtered, or just one protocol — with simultaneous tests from inside and outside Iran in the guide to checking whether a server IP is blocked in Iran.
Which datacenter are Iran servers in, and what are they good for?
Mehran Host’s Iran servers are built in the “Sirvan” datacenter — the name you see under location when you create a server — on KVM with NVMe disks, root access and a browser-based console. The builder accepts up to 10 GB of RAM, 8 cores and 100 GB of disk, and the images include Ubuntu 22.04, Debian 12 and 13, AlmaLinux 8, Rocky and Fedora; you’ll see the current list when you create a server. The details are on our Linux VPS in Iran for developers page.
What it’s right for is clear from that same traceroute: anything whose audience or counterparties are inside Iran — Iranian websites and online stores, Iranian payment gateways, SMS services, and the database behind a domestic app. For a site with an audience both in Iran and abroad, keep the origin here and serve foreign visitors through the Iran CDN with edge nodes in Iran and Europe, which you turn on with a switch next to the A record.
When should you choose an Iran server, and when a server outside Iran?
Choose an Iran server for an audience inside Iran, and a server outside Iran for anything that depends on foreign destinations; the audience and SEO side of that decision is covered in Iran vs foreign hosting compared. Servers outside Iran are built on Hetzner Cloud in Falkenstein, Nuremberg, Helsinki, Ashburn, Hillsboro and Singapore, billed by the hour and paid in Toman.
| Criterion | Iran server (Sirvan) | Server outside Iran (Hetzner) |
|---|---|---|
| UDP and QUIC to foreign destinations | DNS over UDP works; the QUIC handshake is dropped on the international path | QUIC and HTTP/3 work normally |
| Telegram API | No response in the September 16, 2026 test (000) | Not subject to Iran’s path restrictions; the recommended home for a bot |
| Sanctioned services (OpenAI, Anthropic) | The TCP path is open; the service doesn’t support Iran | The service doesn’t support Iran; routing that traffic through a server abroad is not recommended |
| During a nationwide international shutdown | Reachable from inside Iran; foreign destinations cut off | Not reachable from inside Iran; normal from abroad |
| Cost while powered off | 50% of the hourly rate until deleted | 100% of the hourly rate until deleted |
| Payment | In Toman, hourly, from the wallet | In Toman, hourly, from the same wallet |
If both columns fit you, don’t pick one: create one of each in the same panel. A server outside Iran is paid from the same Toman wallet, and if you don’t need it after a night of testing, delete it; the cost is just those hours.
Frequently asked questions
Do Iran servers have access to the international internet?
Yes, on normal days a Mehran Host Iran VPS reaches destinations outside Iran over TCP. In our September 16, 2026 test from a machine in an Iranian datacenter, HTTPS requests to google.com, GitHub, Packagist, npm and the Ubuntu repositories all returned 200. What doesn’t work is the QUIC/HTTP/3 handshake, along with destinations such as the Telegram API that can’t be reached from an Iran server; use a server outside Iran for those. In a nationwide shutdown, every server inside Iran loses its foreign routes.
Is UDP blocked on an Iran server? Why doesn’t QUIC work?
No, UDP is not blocked in general: DNS over UDP gets answers from an Iran server, and in our measurement even a QUIC Version Negotiation reply came back on port 443. What Iran’s international transit silently drops is the QUIC version 1 handshake, while the same destination answers over TCP in a fraction of a second. This is a limitation of the path, not of Mehran Host’s firewall. The right approach is to run your services over TCP, meaning HTTP/1.1 and HTTP/2.
Is upload traffic free on an Iran VPS?
Yes, for now: Mehran Host deducts only download traffic, the packets coming into the server, per gigabyte from your wallet, and what the server sends out to visitors is free. The current basis is always shown when you create a server and on each server’s page under “Traffic billing basis”. Usage is read and charged every minute; when the balance hits zero, the server’s network is suspended, and a suspended service is deleted after the grace period set in the terms.
What happens to an Iran server when the international internet is cut off?
The server stays on and reachable from inside Iran, because the domestic path doesn’t depend on international connectivity; Iranian visitors and callbacks from Iranian payment gateways use that domestic path. Anything with a foreign destination stops working: composer and apt from foreign repositories, international APIs and visitors from abroad. Under clause 10 of Mehran Host’s terms, disruption caused by decisions of regulatory authorities is outside the provider’s control. For work that depends on foreign services, keep a server outside Iran alongside your Iran server.
What happens if my Iran server’s IP loses international access?
Mehran Host’s “filtering watchdog” tests the IPs of active, powered-on servers every half hour from abroad, with ping and a TCP connection to port 443. If an IP gives no response across several consecutive checks, it is added to the blocked-IP list, the technical team is alerted, and it isn’t given to any new customer while listed. Your server isn’t changed automatically: under clause 10 of the terms, an IP replacement is made available after review, so open a ticket naming the IP and the destination that won’t open.