
راهنمای کامل راهاندازی سرور نقشه و مسیریابی آفلاین (OSRM) در ایران: خداحافظی با وابستگی به APIهای خارجی
در سالهای اخیر، وابستگی به APIهای نقشههای خارجی (مانند Google Maps و Mapbox) برای کسبوکارهای ایرانی با چالشهای بزرگی روبرو شده است: تحریمها، فیلترینگ، هزینههای ارزی، و مهمتر از همه، قطعی یا کندی اینترنت در زمانهایی که شبکه ملی اطلاعات فعال میشود. اگر اپلیکیشن یا وبسایت شما برای ارائه خدمات (مانند لجستیک، تاکسی آنلاین، ردیابی ناوگان یا حتی نمایش ساده نقشه) به سرویسهای خارجی وابسته است، خطر قطعی سرویس شما را تهدید میکند.
راهحل نهایی برای پایداری و استقلال کامل، راهاندازی یک سرور نقشه و مسیریابی اختصاصی و آفلاین روی زیرساخت خودتان در داخل ایران است. در این مقاله تخصصی از وبلاگ نگارنوین، ما از Open Source Routing Machine (OSRM) استفاده میکنیم تا یک سرویس مسیریابی فوقسریع و بومی را روی سرورهای ایران خودمان کانفیگ کنیم، به طوری که حتی بدون اینترنت آزاد هم بدون مشکل کار کند.
کلمات کلیدی: راهاندازی OSRM آفلاین ایران (OSRM Offline Iran Setup)، سرور نقشه ایران (Iran Map Server)، مسیریابی آفلاین (Offline Routing)، OpenStreetMap ایران (OpenStreetMap Iran)، محدودیت ترافیکی مسیریابی (Routing Traffic Restrictions)، نگارنوین (Negarnovin).

OSRM چیست و چرا بهترین گزینه است؟
OSRM یک موتور مسیریابی متنباز (Open Source) و بسیار قدرتمند است که بر پایه دادههای OpenStreetMap (OSM) کار میکند. این موتور به زبان C++ نوشته شده و برای سرعت فوقالعاده بالا بهینهسازی شده است (زمان پاسخدهی در حد میلیثانیه برای اکثر درخواستها). OSRM از الگوریتمهای پیشرفتهای مانند Contraction Hierarchies (CH) برای محاسبه کوتاهترین یا سریعترین مسیر استفاده میکند.
مزایای کلیدی راهاندازی OSRM روی سرور اختصاصی:
استقلال کامل از خارجیها: هیچ تحریمی نمیتواند نقشه اختصاصی شما را قطع کند.
سازگاری با شبکه ملی اطلاعات: سرویس شما در زمان قطعی اینترنت بینالملل (Intranet Mode) به کار خود ادامه میدهد.
پنهانسازی هزینهها: شما فقط هزینه سرور و پهنای باند را میپردازید، نه هزینه به ازای هر درخواست API.
حریم خصوصی و امنیت: دادههای مسیریابی شما و کاربرانتان در داخل کشور باقی میماند.
سفارشیسازی کامل: میتوانید پروفایلهای مسیریابی اختصاصی (ماشین، دوچرخه، پیاده) یا محدودیتهای ترافیکی خاص خود را اعمال کنید.
پیشنیازهای سختافزاری و نرمافزاری
از آنجا که دادههای نقشه کل ایران (و یا کل جهان) باید در رم سرور لود شوند، OSRM به رم بالایی نیاز دارد. ما توصیه میکنیم برای این کار از سرورهای اختصاصی یا سرورهای مجازی با منابع اختصاصی نگارنوین استفاده کنید.
حداقل منابع پیشنهادی برای نقشه کل ایران:
سیستمعامل: لینوکس (مانند Ubuntu 22.04 LTS یا Debian 12)
پردازنده (CPU): حداقل ۴ هسته قوی (فرکانس بالا).
رم (RAM): حداقل ۱۶ گیگابایت (توصیه شده: ۳۲ گیگابایت برای عملکرد روان و پردازش سریع دادهها).
فضای ذخیرهسازی (Disk): حداقل ۱۰۰ گیگابایت SSD/NVMe (دادههای پردازش شده OSRM حجم بالایی دارند).
ملزومات نرمافزاری:
Docker (توصیه شدهترین روش برای نصب آسان و سریع)
گامهای عملی راهاندازی سرور OSRM در ایران
گام اول: دریافت دادههای نقشه ایران (OSM)
از آنجا که میخواهیم سرور را به صورت آفلاین راهاندازی کنیم، ابتدا باید فایل نقشه ایران را دانلود کنیم. این فایل با فرمت .osm.pbf است. بهترین منبع برای دریافت نقشههای کشوری، وبسایت Geofabrik است.
نکته: اگر میخواهید سرور در ایران باشد، فایل را ابتدا روی یک سرور خارج از ایران دانلود کنید و سپس با استفاده از scp یا rsync به سرور ایران خود منتقل کنید (این کار وابستگی به اینترنت آزاد را در زمان نصب هم کم میکند).
# دریافت فایل نقشه ایران (بهتر است این کار را از قبل انجام دهید)
wget http://download.geofabrik.de/asia/iran-latest.osm.pbf
# انتقال فایل به سرور ایران
scp iran-latest.osm.pbf root@your_iran_server_ip:/path/to/osrm-data/
گام دوم: نصب Docker روی سرور ایران
استفاده از Docker برای OSRM بهترین راه حل است زیرا تمام وابستگیها را مدیریت میکند.
# به روزرسانی و نصب داکر
sudo apt update
sudo apt install docker.io -y
sudo systemctl start docker
sudo systemctl enable docker
گام سوم: پردازش دادههای نقشه
این گام حیاتیترین بخش است. دادههای OSM به تنهایی قابل استفاده توسط OSRM نیستند و باید پردازش شوند تا یک گراف مسیریابی ساخته شود. این پردازش نیاز به رم و CPU بالایی دارد و زمانبر است (بسته به منابع سرور، از ۱۰ دقیقه تا ۱ ساعت).
ما فرض میکنیم دادهها را در یک دایرکتوری به نام osrm-data قرار دادهاید.
۱. استخراج دادهها (Extract):
در این مرحله، پروفایل مسیریابی (مثلاً ماشین car.lua) را انتخاب میکنیم. OSRM بر اساس این پروفایل، دادهها را استخراج میکند.
docker run -t -v "${PWD}/osrm-data:/data" osrm/osrm-backend \
osrm-extract -p /usr/local/share/osrm/profiles/car.lua /data/iran-latest.osm.pbf
۲. پارتیشنبندی (Partition):
docker run -t -v "${PWD}/osrm-data:/data" osrm/osrm-backend \
osrm-partition /data/iran-latest.osm.pbf
۳. سفارشیسازی و اعمال محدودیتها (Customize – اعمال محدودیت ترافیکی):
اینجا دقیقاً جایی است که میتوانید محدودیتهای ترافیکی اختصاصی خود را اعمال کنید. پروفایل پیشفرض (car.lua) قوانین عادی را اعمال میکند، اما شما میتوانید این فایل را در گام استخراج سفارشی کنید (در ادامه توضیح داده شده است). در این گام، ما دستور Customize را اجرا میکنیم تا دادههای پردازش شده نهایی شوند.
docker run -t -v "${PWD}/osrm-data:/data" osrm/osrm-backend \
osrm-customize /data/iran-latest.osm.pbf
گام چهارم: راهاندازی سرویس OSRM
حالا که دادهها پردازش شدهاند، میتوانیم کانتینر OSRM را به عنوان یک سرویس (بکگراند) روی پورت ۵۰۰۰ استارت کنیم.
docker run -d -t -i -p 5000:5000 -v "${PWD}/osrm-data:/data" --name osrm-iran osrm/osrm-backend \
osrm-routed --algorithm=ch /data/iran-latest.osm.pbf
تبریک! سرویس OSRM شما روی پورت ۵۰۰۰ سرور ایران بالا آمد.
اعمال محدودیتهای ترافیکی اختصاصی (Lua Profiles)
یکی از درخواستهای اصلی این مقاله، اعمال محدودیتهای ترافیکی اختصاصی بود. OSRM برای این کار از فایلهای تنظیمات نوشته شده با زبان Lua استفاده میکند. شما میتوانید فایل car.lua را در زمان پردازش استخراج (گام سوم)، به OSRM بدهید.
چگونه محدودیت اعمال کنیم؟
شما باید یک فایل custom-car.lua بسازید (میتوانید نسخه اصلی را از گیتهاب OSRM دانلود کرده و ویرایش کنید) و آن را در پوشه osrm-data قرار دهید. سپس در گام استخراج، از این فایل استفاده کنید.
نمونههای ویرایش فایل Lua:
۱. تغییر سرعت پیشفرض: میتوانید میانگین سرعت در خیابانهای اصلی یا فرعی را بر اساس الگوهای ترافیکی بومی خود تغییر دهید. ۲. مسدود کردن خیابانها: میتوانید انواع خاصی از راهها را (که مثلاً در طرح ترافیک هستند) با تغییر دادن وزن آنها به “مسدود” (خیلی بالا)، از مسیریابی حذف کنید. ۳. محدودیتهای وزنی/ارتفاعی: برای پروفایلهای کامیون، میتوانید محدودیتهایی روی maxweight یا maxheight که در دادههای OSM ثبت شدهاند، اعمال کنید.
نمونه تغییر در گام استخراج با پروفایل سفارشی:
docker run -t -v "${PWD}/osrm-data:/data" osrm/osrm-backend \
osrm-extract -p /data/custom-car.lua /data/iran-latest.osm.pbf
تست سرویس مسیریابی
سادهترین راه برای تست سرویس، استفاده از مرورگر یا ابزاری مانند curl است.
فرمت درخواست مسیریابی: http://[IP_SERVER]:5000/route/v1/driving/[LNG_START],[LAT_START];[LNG_END],[LAT_END]
مثال: مسیریابی بین میدان آزادی و میدان ونک تهران (LNG و LAT فرضی است):
curl "http://[YOUR_IRAN_SERVER_IP]:5000/route/v1/driving/51.3411,35.6997;51.4116,35.7592?overview=false&alternatives=true"
سرویس یک پاسخ JSON شامل مسیر بهینه، زمان سفر و مسافت را برمیگرداند.
نتیجهگیری: استقلال و پایداری با نگارنوین
راهاندازی سرور نقشه اختصاصی OSRM با دادههای OpenStreetMap در داخل ایران، بهترین و پایدارترین راهکار برای کسبوکارهای آنلاین است تا از تحریمها، فیلترینگ و هزینههای اضافی عبور کنند. با این کار، شما یک زیرساخت سریع، امن و کاملاً قابل سفارشیسازی دارید که حتی بدون اینترنت آزاد هم بدون مشکل کار میکند.
چرا نگارنوین برای راهاندازی OSRM ایدهآل است؟
سرورهای اختصاصی و مجازی قدرتمند در ایران: OSRM نیاز شدید به رم و CPU دارد. نگارنوین با ارائه پلنهای متنوع سرور با منابع کاملاً اختصاصی و جدیدترین سختافزارها (DDR5 RAM, NVMe)، تضمین میکند که سرور شما در پردازش و تحویل درخواستها کم نمیآورد.
شبکه پایدار و سریع داخلی: شبکه ملی اطلاعات نگارنوین پایداری ۹۹.۹٪ را برای سرویس نقشه شما در سختترین شرایط فراهم میکند.
پشتیبانی تخصصی: تیم فنی ما دغدغههای شما را درک میکند و میتواند در انتخاب سختافزار مناسب و حتی کانفیگ اولیه OSRM به شما مشاوره دهد.
همین امروز استقلال زیرساخت خود را تضمین کنید! برای مشاوره رایگان جهت انتخاب بهترین سرور برای راهاندازی OSRM، با کارشناسان نگارنوین تماس بگیرید یا از بخش سرورهای اختصاصی سایت، پلن مناسب خود را سفارش دهید.
کلمات کلیدی مقاله: راهاندازی OSRM آفلاین ایران (OSRM Offline Iran Setup)، سرور نقشه ایران (Iran Map Server)، مسیریابی آفلاین (Offline Routing)، OpenStreetMap ایران (OpenStreetMap Iran)، محدودیت ترافیکی مسیریابی (Routing Traffic Restrictions)، نگارنوین (Negarnovin).
