از ایران، سرور مجازی آلمان نزدیکترین لوکیشن هتزنر است: در اندازهگیری شامگاه ۷ مهر ۱۴۰۵ از یک سرور در دیتاسنتر ایران، میانگین پینگ فالکنشتاین و نورنبرگ ۷۷ تا ۸۲ میلیثانیه بود، هلسینکی فنلاند حدود ۱۰۲، اشبرن در شرق آمریکا ۱۶۷ تا ۱۷۴، و هیلزبوروی اورگن و سنگاپور هر دو حدود ۲۶۰ میلیثانیه. این مقاله جدول کامل را با افت بسته، نوسان و زمان اولین بایت میآورد، با traceroute نشان میدهد چرا سنگاپور از ایران بهاندازهی غرب آمریکا دور است، معنی عملی هر عدد را برای سایت، SSH و API میگوید و دستورهای تکرار همین تست را از اینترنت خودتان در اختیارتان میگذارد.
پینگ سرور آلمان، فنلاند، آمریکا و سنگاپور از ایران چقدر است؟
پینگ سرور مجازی خارج از ایران، بیش از هر چیز به لوکیشن دیتاسنتر و مسیری که بستهها از گذرگاه بینالملل ایران تا آن طی میکنند بستگی دارد. برای هر شش لوکیشن هتزنر — همانهایی که در فرم سفارش سرور خارج مهران هاست هم هستند — در دو نوبت (ساعت ۲۱:۳۹ و ۲۱:۵۲ به وقت تهران) صد بستهی ping فرستادیم و ده بار اتصال TCP و درخواست HTTP گرفتیم. هر خانهی جدول بازهی همان دو نوبت است:
| لوکیشن | کشور | میانگین پینگ (ms) | کمترین (ms) | نوسان mdev (ms) | افت بسته | اولین بایت HTTP (ثانیه) |
|---|---|---|---|---|---|---|
| فالکنشتاین (fsn1) | آلمان | ۷۷ تا ۸۰ | ۷۲ | ۴ تا ۵ | ۲ تا ۳٪ | ۰٫۱۷ تا ۰٫۱۹ |
| نورنبرگ (nbg1) | آلمان | ۸۰ تا ۸۲ | ۷۷ | ۴ | ۰ تا ۲٪ | ۰٫۱۵ تا ۰٫۱۷ |
| هلسینکی (hel1) | فنلاند | ۱۰۱ تا ۱۰۲ | ۹۹ | ۲ تا ۳ | ۰ تا ۲٪ | ۰٫۲۰ |
| اشبرن، ویرجینیا (ash) | آمریکا، ساحل شرقی | ۱۶۷ تا ۱۷۴ | ۱۶۵ | ۲ تا ۹ | ۰ تا ۱٪ | ۰٫۳۵ |
| هیلزبورو، اورگن (hil) | آمریکا، ساحل غربی | ۲۵۹ تا ۲۶۲ | ۲۵۵ | ۴ تا ۵ | ۰ تا ۲٪ | ۰٫۵۰ |
| سنگاپور (sin) | سنگاپور | ۲۵۶ تا ۲۶۳ | ۲۵۴ | ۳ تا ۱۱ | ۱ تا ۷٪ | ۰٫۵۱ |
چهار نتیجه از همین جدول بیرون میآید. اول، دو لوکیشن آلمان عملاً همارزند؛ اختلاف چندمیلیثانیهای آنها در دو نوبت جابهجا شد و در حد نوسان است، پس بین فالکنشتاین و نورنبرگ بر اساس موجودی پلن تصمیم بگیرید، نه پینگ. دوم، هلسینکی حدود ۲۲ میلیثانیه دورتر است — دلیلش را در بخش مسیر میبینید. سوم، اشبرن تقریباً دو برابر آلمان و اورگن و سنگاپور بیش از سه برابر آن فاصله دارند. چهارم، در نوبت دوم هر شش مقصد همزمان دستکم ۱ تا ۲ درصد افت بسته داشتند؛ افتی که همهی مقصدها را با هم میگیرد از مسیر مشترکِ سمت ایران است، نه از دیتاسنتر مقصد. سنگاپور اما با ۷ درصد افت و نوسان ۱۱ میلیثانیهای در همان نوبت، ناپایدارترین مسیر بود.
ستون آخر زمان رسیدن اولین بایت پاسخ یک درخواست HTTP ساده روی اتصال تازه است — یعنی یک رفتوبرگشت برای دستدادن TCP و یکی برای خود درخواست. برای همین تقریباً دو برابر پینگ است و در بخش «در عمل چه فرقی میکند» به آن برمیگردیم.
این اعداد را از کجا و با چه روشی اندازه گرفتیم؟
مبدأ آزمایش یکی از سرورهای شبکهی مهران هاست در دیتاسنتر ایران بود، روز سهشنبه ۷ مهر ۱۴۰۵ بین ساعت ۲۱:۳۸ و ۲۱:۵۵ به وقت تهران. مقصدها میزبانهای رسمی تست سرعت هتزنرند که هر کدام داخل دیتاسنتر همان لوکیشن نشستهاند و نامشان الگوی ثابتی دارد: fsn1-speed.hetzner.com، nbg1-speed.hetzner.com، hel1-speed.hetzner.com، ash-speed.hetzner.com، hil-speed.hetzner.com و sin-speed.hetzner.com. هر نوبت برای هر مقصد این بود:
# 100 ICMP echo, one every 0.2 s
ping -c 100 -i 0.2 -q fsn1-speed.hetzner.com
# TCP handshake and first byte, by IP (so DNS lookup time is excluded)
curl -s -o /dev/null -w '%{time_connect} %{time_starttransfer}\n' \
-H 'Host: fsn1-speed.hetzner.com' http://78.46.170.2/
# the path, one probe per hop
traceroute -n -q 1 -w 2 78.46.170.2
چون بعضی روترها به ping اولویت پایین میدهند، زمان دستدادن TCP را هم جداگانه گرفتیم؛ در هر شش لوکیشن با اختلاف چند میلیثانیه همان عدد پینگ درآمد، پس عدد ICMP اینجا گمراهکننده نیست. دو محدودیت را هم صادقانه بگوییم: این دید یک دیتاسنتر است، نه اینترنت خانگی یا موبایل — روی خط خودتان تأخیر «آخرین مایل» و مسیر اپراتورتان هم اضافه میشود. و اعداد ساعت اوج شباند؛ مسیرهای بینالملل در ساعتهای مختلف و بین اپراتورها جابهجا میشوند. پس جدول را نقطهی شروع بدانید و با دستورهای بخش آخر روی خط خودتان تکرارش کنید.
چرا سنگاپور از ایران بهاندازهی غرب آمریکا دور است؟ مسیر واقعی بستهها
سنگاپور در خط مستقیم حدود ۶٬۶۰۰ کیلومتر با تهران فاصله دارد و هیلزبوروی اورگن حدود ۱۱ هزار کیلومتر؛ اما پینگ هر دو حدود ۲۶۰ میلیثانیه است. traceroute علتش را نشان میدهد: بستهی مقصد سنگاپور اول به غرب میرود.
- مسیر اروپا (آلمان و فنلاند): بعد از چند هاپ داخلی، اولین روتر خارجی در حدود ۶۸ میلیثانیه پورت هتزنر روی نقطهی تبادل ترافیک NL-IX در دیتاسنتر Interxion فرانکفورت است (نام معکوس آن hetzner.interxionfra11.nl-ix.net). یعنی ترافیک از ایران مستقیم در فرانکفورت وارد شبکهی خود هتزنر میشود؛ فالکنشتاین و نورنبرگ چند میلیثانیه بعد از آناند و هلسینکی حدود ۲۲ میلیثانیه دورتر، روی ستون فقرات خود هتزنر تا فنلاند.
- مسیر آمریکا و سنگاپور: بستهها در حدود ۸۸ میلیثانیه از نقطهی تبادل ترافیک باکو (AZ-IX، شبکهی Delta Telecom آذربایجان) سر در میآورند، به شبکهی Orange OpenTransit و سپس به روتر شرکت ژاپنی NTT در فرانکفورت میرسند و از آنجا روی ستون فقرات NTT به اشبرن یا سنگاپور میروند. آخرین هاپ پیش از سنگاپور نام معکوس ae-0.hetzner.sngpsi07.sg.bb.gin.ntt.net دارد: تحویل NTT به هتزنر، داخل سنگاپور.
پس مسیر واقعی تهران تا سنگاپور از باکو و فرانکفورت میگذرد و حدود ۱۴ هزار کیلومتر، یعنی بیش از دو برابر فاصلهی مستقیم، طول دارد؛ نور در فیبر نوری تقریباً ۲۰۰ کیلومتر در هر میلیثانیه میرود و این رفتوبرگشت طولانی را هیچ سختافزاری جبران نمیکند. دو نکته را هم در نظر داشته باشید: این مسیرِ همان شب و همان مبدأ است و اپراتورها مسیرها را عوض میکنند؛ و مسیر اپراتور شما ممکن است از گذرگاه دیگری — مثلاً ترکیه — بیرون برود. مالک هر آیپی میانی را هم میتوانید در RIPEstat ببینید.
۸۰ یا ۲۶۰ میلیثانیه در عمل چه فرقی میکند؟
پینگ یک رفتوبرگشت است، اما تقریباً هیچ کاری فقط یک رفتوبرگشت نمیخواهد. باز کردن یک اتصال HTTPS تازه با TLS 1.3 سه رفتوبرگشت طول میکشد تا اولین بایت پاسخ برسد: یکی برای دستدادن TCP، یکی برای TLS و یکی برای خود درخواست (با TLS 1.2 چهار تا). در SSH هم هر کلیدی که میزنید یک رفتوبرگشت طول میکشد تا روی صفحه بیاید. همین ضربها فاصلهی لوکیشنها را بزرگ میکند:
| لوکیشن | یک رفتوبرگشت | اولین بایت HTTPS روی اتصال تازه (۳ رفتوبرگشت) | تأخیر ظاهر شدن هر کلید در SSH |
|---|---|---|---|
| آلمان | حدود ۸۰ ms | حدود ۲۴۰ ms | تقریباً آنی |
| فنلاند | حدود ۱۰۲ ms | حدود ۳۱۰ ms | تقریباً آنی |
| شرق آمریکا | حدود ۱۷۰ ms | حدود ۵۱۰ ms | محسوس |
| غرب آمریکا و سنگاپور | حدود ۲۶۰ ms | حدود ۷۸۰ ms | آزاردهنده در تایپ طولانی |
این اعداد پیش از زمان پردازش خود سرور است. تأخیرهای تا حدود ۱۰۰ میلیثانیه برای کاربر تقریباً آنی حس میشوند؛ از آن به بالا، هر درخواست پشتسرهم — صفحهای که چند فراخوانی API زنجیرهای دارد، یک git push یا ویرایش فایل با nano در SSH — کندی را آشکار میکند.
افت بسته از پینگ بالا بدتر است. اگر بستهی شروع اتصال (SYN) گم شود، لینوکس یک ثانیه صبر میکند و دوباره میفرستد؛ در نوبت اول آزمایش ما دو اتصال از بیستتایی که به فالکنشتاین و هلسینکی گرفتیم دقیقاً همینطور ۱٫۱ ثانیه طول کشیدند، در حالی که بقیه زیر ۰٫۱۳ ثانیه بودند. برای همین سرویسی که از ایران صدا زده میشود باید اتصالها را باز نگه دارد (keep-alive) و برای SSH، تنظیم ServerAliveInterval و کار داخل tmux که در راهنمای اتصال SSH آمده، قطعیهای کوتاه را قابلتحمل میکند.
یک استثنای مهم: برای ربات، کرونجاب یا سرویسی که خودش با یک API خارجی حرف میزند، فاصلهی سرور تا آن API تعیینکننده است، نه فاصلهی شما تا سرور. برای نمونه، API رباتهای تلگرام از سرور ما در فالکنشتاین حدود ۱۵ میلیثانیه فاصله داشت؛ رباتی که آنجا اجرا میشود سریع جواب میدهد و پینگ شما تا آلمان فقط وقتی مهم است که به خود سرور SSH میزنید.
کدام لوکیشن برای چه کاری؟ جدول انتخاب
قاعدهی کلی همان است که در راهنمای خرید سرور مجازی خارج از ایران گفتیم: سرور را نزدیک کسی بگذارید که بیشترین رفتوبرگشت را با آن دارد. با اعداد بالا، انتخاب برای کاربردهای رایج این میشود:
| کاربرد | لوکیشن پیشنهادی | دلیل |
|---|---|---|
| سرور کاری که از ایران مدیریت میکنید، ربات، API و ابزار توسعه که به دسترسی مستقیم به اینترنت بینالملل نیاز دارد | آلمان: فالکنشتاین یا نورنبرگ | کمترین پینگ از ایران، ارزانترین پلنها و ترافیک ماهانهی حدود ۲۰ ترابایتی |
| سایت یا سرویس با کاربران اروپایی | آلمان یا فنلاند | هر دو در قلب شبکهی اروپا؛ هلسینکی فقط برای کاربر ایرانی ۲۲ میلیثانیه دورتر است |
| نسخهی دوم یا پشتیبان یک سرویس اروپایی | هلسینکی کنار یکی از لوکیشنهای آلمان | دو دیتاسنتر در دو کشور، بدون پرداخت هزینهی ترافیک گران آمریکا و آسیا |
| کاربران آمریکای شمالی | اشبرن برای شرق، هیلزبورو برای غرب | پینگ از ایران بالاست، اما برای کاربر آمریکایی کوتاهترین مسیر است |
| کاربران شرق و جنوب شرق آسیا | سنگاپور | فقط وقتی مخاطب واقعاً در آسیاست؛ از ایران ناپایدارترین مسیر آزمایش ما بود |
| سایت، فروشگاه یا سرویسی که کاربرانش در ایراناند | سرور ایران | هیچ لوکیشن خارجی به تأخیر چندمیلیثانیهای مسیر داخلی نمیرسد؛ بخش بعدی را ببینید |
| ربات معاملهگر و متاتریدر | نزدیکترین لوکیشن به سرور بروکر | ملاک فاصله تا سرور معاملاتی است؛ جزئیات در راهنمای سرور مجازی ترید |
ترافیک و قیمت: چرا سرور مجازی آلمان و فنلاند بهصرفهتر از آمریکا و سنگاپور است؟
فاصله فقط پینگ را عوض نمیکند؛ تعرفهی هتزنر هم در اروپا و بیرون از آن فرق دارد. پنل مهران هاست فهرست پلنها و قیمتها را زنده از خود هتزنر میخواند و در لحظهی نگارش این مقاله تصویر این بود:
- ترافیک همراه: پلنهای آلمان و فنلاند دستکم حدود ۲۰ ترابایت ترافیک ماهانه دارند و پلنهای بزرگتر بیشتر. در آمریکا پلنهای کوچک حدود ۱ ترابایت دارند و در سنگاپور کوچکترین پلن حدود نیم ترابایت.
- ترافیک مازاد: نرخ هر ترابایت اضافه در سنگاپور حدود هفت برابر اروپا و آمریکاست.
- قیمت پایه: ارزانترین پلن قابل سفارش آمریکا بیش از سه برابر ارزانترین پلن آلمان قیمت داشت، آن هم با نصف رم.
هتزنر طبق مستندات صورتحساب خودش فقط ترافیک خروجی سرور را میشمارد و ترافیک ورودی رایگان است. در فرم سفارش سرور خارج از ایران برای هر پلن، ترافیک ماهانهی رایگان و نرخ هر گیگابایت مازاد به تومان پیش از ساخت نشان داده میشود، و همهی پلنها در همهی لوکیشنها موجود نیستند — فرم فقط موجودها را میآورد. پرداخت از همان کیف پول ریالی و ساعتی است؛ تا وقتی سرور وجود دارد — روشن یا خاموش — ساعتشمار کار میکند و فقط حذف، هزینه را قطع میکند. منطق این مدل را در مقایسهی سرور ساعتی و ماهانه باز کردهایم.
نتیجهی عملی: اگر دلیل مشخصی برای آمریکا یا آسیا ندارید، آلمان هم نزدیکتر است و هم ارزانتر. میتوانید یک سرور خارج در آلمان بسازید، چند ساعت پینگ و سرعتش را از خط خودتان بسنجید و اگر راضی نبودید حذفش کنید؛ فقط بابت همان ساعتها پرداخت میکنید.
سه نکتهی اتصال از ایران به سرور خارج که در جدول پینگ دیده نمیشود
۱. HTTPS را با نام دامنه بزنید، نه با آیپی
در همان شب آزمایش، از داخل ایران درخواست curl https://IP به سه سرور مختلف ما در آلمان و فنلاند — بدون نام دامنه — هر بار با Connection reset by peer قطع شد، در حالی که همان سرورها با نام دامنه (curl --resolve) دستدادن TLS را در ۰٫۲ تا ۰٫۳ ثانیه کامل کردند و کد ۲۰۰ دادند، و از داخل آلمان دستدادن TLS در هر دو حالت کامل شد. تفاوت دو درخواست فقط در این است که در حالت بدون نام دامنه، کلاینت هنگام دستدادن TLS فیلد SNI را نمیفرستد. مرورگرها همیشه SNI میفرستند و کاربر عادی چیزی نمیبیند، اما وبهوک، اپلیکیشن یا اسکریپتی که مستقیم به آیپی HTTPS میزند، از ایران شکست میخورد. پس برای هر سرویس روی سرور خارج یک نام دامنه با گواهی معتبر بگذارید؛ گواهی رایگان Let's Encrypt برای همین کافی است.
۲. سرویس را روی TCP نگه دارید
هندشیک QUIC، یعنی HTTP/3 روی UDP، در ترانزیت بینالملل ایران حذف میشود؛ جزئیات و خروجی آزمایشش در تست دسترسی سرور ایران به اینترنت بینالملل آمده است. مرورگرها خودشان به HTTP/2 روی TCP برمیگردند، اما سرویسی که فقط روی UDP کار کند از ایران در دسترس نیست.
۳. اگر سرور از ایران باز نشد، اول بفهمید کدام لایه بسته است
سروری که از خارج در دسترس است اما از ایران نه، لزوماً «فیلتر» نیست: ممکن است فقط یک پروتکل یا یک نام دامنه بسته باشد. همان تست را همزمان از داخل ایران و از یک نقطهی خارجی بگیرید و نتیجهها را کنار هم بگذارید. اگر آیپی سرور خارج واقعاً از ایران بسته بود، در صفحهی همان سرور در پنل میتوانید آیپی را عوض کنید.
کاربرانتان در ایراناند؟ شاید اصلاً سرور خارج لازم نباشد
بهترین عدد جدول بالا، ۷۷ میلیثانیه، برای مخاطب ایرانی هنوز حدود بیست برابر یک مسیر داخلی است: در آزمایش مسیر سرور ایران پنج هاپ داخلی زیر ۴ میلیثانیه طی شدند و جهش تأخیر درست در گذرگاه بینالملل رخ داد. سرور ایران در قطعی اینترنت بینالملل هم برای کاربر داخلی باز میماند؛ چیزی که هیچ لوکیشن خارجی نمیتواند وعده دهد.
ترکیب رایج و معقول این است: سایت و دیتابیس روی سرور ایران، و کارهایی که به دسترسی مستقیم به اینترنت بینالملل نیاز دارند — ربات تلگرام، دریافت پکیج از مخازن خارجی، ارتباط با APIهای بینالمللی — روی یک سرور کوچک در آلمان. هر دو را از یک پنل و یک کیف پول ریالی میسازید و DNS هر دو دامنه را در همان پنل نگه میدارید. معیارهای این انتخاب را در هاست ایران یا خارج و روش کمکردن تأخیر سایت را در راهنمای کاهش پینگ ببینید.
پینگ لوکیشنها را از اینترنت خودتان چطور تست کنیم؟
همان میزبانهای تست هتزنر برای هر کسی باز است. در ویندوز، Command Prompt را باز کنید:
ping -n 50 fsn1-speed.hetzner.com
ping -n 50 hel1-speed.hetzner.com
tracert -d sin-speed.hetzner.com
:: TCP handshake time in seconds (curl ships with Windows 10 and 11)
curl.exe -s -o NUL -w "%{time_connect}\n" http://nbg1-speed.hetzner.com/
در لینوکس و مک، این حلقه هر شش لوکیشن را پشتسرهم میسنجد و mtr نشان میدهد افت بسته در کدام هاپ شروع میشود:
for h in fsn1 nbg1 hel1 ash hil sin; do
printf '%-5s ' "$h"; ping -c 50 -q "$h-speed.hetzner.com" | tail -1
done
mtr -rwc 50 hel1-speed.hetzner.com
در خروجی به سه عدد نگاه کنید، نه فقط میانگین: درصد افت بسته، عدد mdev (یا stddev در مک) که نوسان را نشان میدهد، و بیشترین زمان. تست را در ساعتی بگیرید که واقعاً با سرور کار میکنید — شبها مسیرهای بینالملل شلوغترند — و روی اینترنت موبایل، از فایلهای حجیم تست سرعت همین سایتها پرهیز کنید چون حجم بستهی اینترنت شما را مصرف میکنند. اگر سرور خارجی تحویل گرفتید، همین تستها بهعلاوهی سنجش دیسک و پردازنده در راهنمای تست کیفیت سرور آمده است.
سؤالات پرتکرار
پینگ سرور آلمان از ایران چقدر است؟
در اندازهگیری ۷ مهر ۱۴۰۵ از یک سرور در دیتاسنتر ایران، میانگین پینگ دیتاسنترهای هتزنر در آلمان ۷۷ تا ۸۲ میلیثانیه بود: فالکنشتاین ۷۷ تا ۸۰ و نورنبرگ ۸۰ تا ۸۲، با کمترین مقدار ۷۲ میلیثانیه. روی اینترنت خانگی یا موبایل، تأخیر خط و مسیر اپراتور شما هم اضافه میشود، پس عدد شما کمی بالاتر خواهد بود. برای سنجش روی خط خودتان دستور ping -n 50 fsn1-speed.hetzner.com را در ویندوز اجرا کنید.
سرور مجازی آلمان بهتر است یا فنلاند؟
برای کاربر ایرانی آلمان بهتر است: پینگ هلسینکی فنلاند در آزمایش ما حدود ۱۰۲ میلیثانیه بود، یعنی حدود ۲۲ میلیثانیه بیشتر از آلمان، چون ترافیک ایران در فرانکفورت وارد شبکهی هتزنر میشود و بعد تا فنلاند میرود. ترافیک ماهانه و قیمت پلنها در این دو کشور یکسان است. فنلاند وقتی منطقی است که پلن موردنظر در آلمان موجود نباشد، یا بخواهید نسخهی دوم سرویس در کشور دیگری باشد.
چرا پینگ سنگاپور از ایران بالاست با اینکه از آمریکا نزدیکتر است؟
چون بستهها مستقیم به شرق نمیروند. در traceroute آزمایش ما، ترافیک مقصد سنگاپور از باکو به فرانکفورت رفت و از آنجا روی شبکهی NTT تا سنگاپور رسید؛ مسیری بیش از دو برابر فاصلهی مستقیم. نتیجه پینگی حدود ۲۶۰ میلیثانیه بود، هماندازهی ساحل غربی آمریکا، و با ۷ درصد افت بسته در نوبت دوم، ناپایدارترین مسیر آزمایش. سنگاپور را فقط برای مخاطب آسیایی انتخاب کنید.
برای ربات تلگرام یا API خارجی کدام لوکیشن مناسب است؟
آلمان، مگر دلیل مشخصی برای جای دیگر داشته باشید. برای ربات و سرویسهایی که با API خارجی حرف میزنند، فاصلهی سرور تا آن API مهم است، و دیتاسنترهای آلمان در قلب شبکهی اروپا هستند؛ کمترین پینگ از ایران هم مدیریت روزانه با SSH را راحت میکند. سرور داخل ایران برای ربات تلگرام مناسب نیست، چون API تلگرام از داخل ایران پاسخ نمیدهد. راهاندازی کامل در راهنمای ربات تلگرام روی سرور مجازی آمده است.
میشود سرور خارج از ایران را با پرداخت ریالی و ساعتی گرفت؟
بله. در مهران هاست سرور خارج روی زیرساخت هتزنر در همین شش لوکیشن ساخته میشود، اما سفارش و پرداخت از کیف پول ریالی پنل فارسی انجام میشود و صورتحساب ساعتی است. ترافیک رایگان هر پلن و نرخ مازاد آن به تومان پیش از ساخت در فرم سفارش نمایش داده میشود. تا وقتی سرور وجود دارد، روشن یا خاموش، هزینهی ساعتی آن کسر میشود و فقط حذف سرور هزینه را متوقف میکند.