- The default Ollama port is 11434، يُقدَّم عبر HTTP عادي ومربوط على
127.0.0.1(localhost فقط). - غيّره باستخدام متغير البيئة
OLLAMA_HOSTمتغير البيئة — على سبيل المثالOLLAMA_HOST=127.0.0.1:11435. لا يوجد متغيرOLLAMA_PORT. - للوصول إلى Ollama من جهاز آخر، اربطه على
0.0.0.0:11434وافتح جدار الحماية — لكن الواجهة البرمجية لا تملك مصادقة، لذا قيّدها على شبكة موثوقة أو ضع خادم وكيل عكسي أمامها. - تحقق باستخدام
curl http://127.0.0.1:11434، الذي يعيدOllama is running.
يستمع Ollama على المنفذ 11434 بشكل افتراضي، عبر HTTP، مربوط على عنوان loopback 127.0.0.1. لذا عنوان URL الأساسي للواجهة البرمجية على الجهاز نفسه هو http://127.0.0.1:11434. لأنه يرتبط على loopback وليس على جميع الواجهات، لا يمكن لأي شيء خارج هذا الجهاز الوصول إليه حتى تغيّر عنوان الربط بشكل متعمد.
ما الذي يعمل فعلاً على المنفذ 11434
المنفذ 11434 هو خادم Ollama HTTP — نفس العملية التي ollama serve تبدأ، ونفس العملية التي تبدأها تطبيق سطح المكتب في الخلفية. كل جزء من Ollama يتحدث معها: سطر الأوامر Ollama CLI، نافذة الدردشة على سطح المكتب، وأي عميل تابع لجهة خارجية تشير إليه.
| نقطة النهاية | الغرض |
|---|---|
GET / |
فحص الصحة — يعيد النص العادي Ollama is running |
GET /api/tags |
يسرد نماذج مثبتة محلياً كـ JSON |
POST /api/generate, POST /api/chat |
نقاط نهاية استدلال Ollama الأصلية |
POST /api/pull, DELETE /api/delete |
إدارة النموذج — تحميل وإزالة النماذج |
/v1/chat/completions |
طبقة متوافقة مع OpenAI، للمكتبات التي تتوقع عنوان URL أساسي من OpenAI |
لاحظ الصف الخاص بـ /api/pull و /api/delete. أي شخص يمكنه الوصول إلى المنفذ يمكنه تحميل نماذج بحجم عدة جيجابايت على قرصك أو حذف النماذج التي لديك. هذه هي قصة الأمان في سطر واحد، وهذا هو السبب في أن الربط الافتراضي هو loopback. إذا كنت لا تزال تقرر ما تثبته محلياً، فإن قائمة نماذج Ollama يغطي ما هو متاح وحجم كل واحد.
OLLAMA_HOST: المتغير الوحيد الذي يتحكم في المنفذ
عنوان الربط والمنفذ كلاهما يأتي من متغير بيئة واحد، OLLAMA_HOST. لا توجد إعدادات منفذ منفصلة ولا ملف إعدادات يتجاوزها.
| القيمة | النتيجة |
|---|---|
| غير معيّن | يستمع على 127.0.0.1:11434 |
127.0.0.1:11435 |
نفس سلوك loopback فقط، منفذ مختلف |
0.0.0.0:11434 |
يستمع على كل واجهة IPv4 — قابل للوصول من الشبكة المحلية |
192.168.1.50:11434 |
يستمع على واجهة محددة واحدة فقط |
اكتبها دائماً كـ host:port. أشكال أقصر مقبولة في بعض الإصدارات، لكن الزوج الصريح يتصرف بشكل متسق عبر جميعها.
هناك مشكلة واحدة تفاجئ تقريباً الجميع: OLLAMA_HOST يتم قراءته من قبل العميل وكذلك الخادم. إذا نقلت الخادم إلى المنفذ 11435 لكن طرفيتك لا تزال تحتفظ بالقيمة الافتراضية، ollama list سيفشل برسالة خطأ في الاتصال بينما الخادم في حالة صحية تماماً. عيّن المتغير في كلا المكانين، أو قم بتشغيل CLI كـ OLLAMA_HOST=127.0.0.1:11435 ollama list.
تغيير منفذ Ollama على Linux
سكريبت التثبيت على Linux يسجل خدمة systemd، لذا فإن متغيرات البيئة في شعارك غير ذات صلة — عليك وضعها في الوحدة. استخدم تجاوز drop-in بدلاً من تحرير ملف الوحدة المرسل، الذي ستستبدله تحديثات الحزم:
sudo systemctl edit ollama.service
أضف هذه الكتلة (على systemd الأحدث، ضعها بين ### أي شيء بين هنا... تعليقات العلامة):
[Service]
Environment="OLLAMA_HOST=0.0.0.0:11434"
هذا يكتب /etc/systemd/system/ollama.service.d/override.conf. طبّقه:
sudo systemctl daemon-reload
sudo systemctl restart ollama
sudo systemctl status ollama
أضف واحد Environment= سطر لكل متغير — السطر الثاني لا يستبدل الأول. إذا كنت أيضاً تنقل تخزين النماذج، Environment="OLLAMA_MODELS=/mnt/models" يذهب في نفس الكتلة.
إذا قمت بتشغيل ollama serve يدويّاً
لا يوجد systemd متورط، فقط قم بـ export: OLLAMA_HOST=0.0.0.0:11434 ollama serve. تأكد من إيقاف خدمة systemd أولاً ("sudo systemctl stop ollama") أو ستتنافس الاثنتان على المنفذ.
تغيير منفذ Ollama على macOS
تطبيق macOS يتم إطلاقه بواسطة جلسة GUI، التي لا ترث ملف الملف الشخصي للشعار. تصدير OLLAMA_HOST في .zshrc يغير CLI لكن ليس الخادم الخلفي. استخدم launchctl بدلاً من ذلك:
launchctl setenv OLLAMA_HOST "0.0.0.0:11434"
ثم أغلق Ollama من أيقونة شريط القوائم وأعد تشغيله. القيمة الجديدة تنطبق فقط على العمليات التي تبدأ بعد ذلك.
launchctl setenv يفعل ليس البقاء بعد إعادة التشغيل. لإجراء تغيير دائم، عليك تشغيله مرة أخرى عند تسجيل الدخول — ملف plist LaunchAgent، أو عنصر تسجيل دخول يقوم بتشغيل الأمر. الإصدارات الأخيرة من تطبيق macOS تعرض أيضاً مفتاح وصول الشبكة في الإعدادات؛ إذا كان إصدارك يحتويه، فضّل ذلك، لأنه يستمر بشكل صحيح. تحقق من جزء الإعدادات الخاص بالتطبيق قبل بناء LaunchAgent، وانظر دليل Ollama الكامل لما هو آخر موجود هناك.
تغيير منفذ Ollama على Windows
Ollama على Windows يعمل كعملية مستخدم عادية مع أيقونة درج النظام، لذا فإن متغير البيئة على مستوى المستخدم كافٍ.
- اضغط على Win، ثم اكتب متغيرات البيئة، وافتح تحرير متغيرات البيئة للنظام → متغيرات البيئة…
- تحت متغيرات المستخدم، انقر على جديد.
- الاسم:
OLLAMA_HOST". القيمة:0.0.0.0:11434(أو المنفذ الذي اخترته). - انقر فوق موافق على كلا المربعات الحوارية.
- انقر بالزر الأيمن على أيقونة درج Ollama واختر إغلاق، ثم ابدأ Ollama مرة أخرى من قائمة ابدأ.
الخطوة 5 هي التي يتخطاها الناس. إغلاق النافذة لا يوقف الخادم؛ يبقى يعمل بالقيمة القديمة. بالتساوي من طرفية: setx OLLAMA_HOST "0.0.0.0:11434" — لكن setx يؤثر فقط على العمليات التي تم إطلاقها بعد يعمل، لذا فإن الإغلاق وإعادة التشغيل لا تزال مطلوبة. إذا كنت تقوم بإعداد هذا من الصفر، فـ دليل تثبيت Ollama يرشدك عبر مثبت Windows من البداية إلى النهاية.
التحقق من أن الخادم يستمع
فحصان، بهذا الترتيب: هل هناك شيء مرتبط بالمنفذ، وهل هذا الشيء هو Ollama؟
| المنصة | الأمر |
|---|---|
| أي | curl http://127.0.0.1:11434 → Ollama is running |
| أي | curl http://127.0.0.1:11434/api/tags → قائمة JSON من النماذج |
| Linux | sudo ss -tlnp | grep 11434 |
| macOS | lsof -nP -iTCP:11434 -sTCP:LISTEN |
| ويندوز | netstat -ano | findstr :11434 |
| Windows (PowerShell) | Get-NetTCPConnection -LocalPort 11434 |
اقرأ عمود العنوان المحلي بعناية. 127.0.0.1:11434 يعني loopback فقط — لن تتمكن آلة بعيدة من الاتصال، مهما كانت قواعد جدار الحماية. 0.0.0.0:11434 أو *:11434 يعني جميع الواجهات.
جعل Ollama قابلاً للوصول من أجهزة أخرى
الربط بـ 0.0.0.0 ضروري لكنه عادة ما يكون غير كافٍ. يجب أن تكون ثلاثة أشياء صحيحة جميعها: أن يكون الخادم مرتبطاً بعنوان غير loopback، وأن يسمح جدار حماية المضيف بـ TCP الوارد على المنفذ، وأن يستخدم العميل عنوان IP LAN للمضيف بدلاً من localhost.
قواعد جدار الحماية
| المنصة | كيفية السماح بـ TCP 11434 الوارد |
|---|---|
| ويندوز | PowerShell كمسؤول: New-NetFirewallRule -DisplayName "Ollama" -Direction Inbound -Protocol TCP -LocalPort 11434 -Action Allow |
| Linux (ufw) | sudo ufw allow from 192.168.1.0/24 to any port 11434 proto tcp |
| Linux (firewalld) | sudo firewall-cmd --permanent --add-port=11434/tcp ثم sudo firewall-cmd --reload |
| macOS | System Settings → Network → Firewall → Options، ثم السماح بالاتصالات الواردة لـ Ollama (أو الإجابة بـ Yes على المطالبة عند التشغيل الأول) |
حدّ القاعدة لشبكتك الفرعية حيث تستطيع، كما في مثال ufw، بدلاً من السماح للعالم كله.
التبعات الأمنية، بوضوح تام
Ollama API لا تحتوي على مصادقة، لا مفاتيح API، ولا TLS. الارتباط بـ 0.0.0.0 يعطي كل من يستطيع التوجيه إلى هذا العنوان التحكم الكامل: تشغيل الاستدلال، قراءة قائمة النماذج، سحب نماذج جديدة، حذف الموجودة منها. تُكتشف مثيلات Ollama المعرضة للإنترنت بسرعة بواسطة الماسحات، لأن 11434 منفذ معروف.
خيارات أكثر أماناً، تقريباً بترتيب الجهد:
- SSH tunnel — اترك الربط في loopback وأعده توجيهه:
ssh -L 11434:127.0.0.1:11434 user@server. لا شيء معروض؛ يتحدث العميل إلى localhost الخاص به. - شبكة overlay — Tailscale أو WireGuard أو ما شابه. ارتبط بـ IP واجهة overlay حتى يتمكن فقط الأجهزة على tailnet الخاص بك من الاتصال.
- reverse proxy — Caddy أو nginx أمامها، وإنهاء TLS وفرض المصادقة الأساسية أو رمز bearer token، مع بقاء Ollama نفسها على loopback.
إذا كنت تزن خادم home-lab مشترك مقابل الدفع لكل token، فإن self-hosting vs API break-even calculator يضع أرقاماً على المقايضة، و حاسبة VRAM يخبرك ما إذا كان الصندوق الذي تريد مشاركته يمكنه فعلاً الاحتفاظ بالنموذج.
تشخيص تضارب المنفذ
العرض هو فشل البدء الذي يذكر العنوان، شيء قريب من:
Error: listen tcp 127.0.0.1:11434: bind: address already in use
ابحث عن مالك المنفذ:
# Linux
sudo ss -tlnp | grep 11434
# macOS
lsof -nP -iTCP:11434 -sTCP:LISTEN
# Windows — احصل على PID، ثم اسمه
netstat -ano | findstr :11434
tasklist /FI "PID eq 12345"
عملياً المذنب هو دائماً Ollama نفسها، تعمل مرتين. الإصدارات الشائعة من ذلك:
- تطبيق سطح المكتب قيد التشغيل بالفعل في المنطقة أو شريط القوائم وكنت قد كتبت
ollama serveفي terminal. خادم التطبيق بخير — فقط استخدمه. - على Linux، خدمة systemd نشطة وأنت قمت بتشغيل
ollama serveيدوياً. أوقف أحدهما:sudo systemctl stop ollama. - حاوية Docker نشرت
-p 11434:11434وتحتفظ بمنفذ المضيف. تحقق معdocker ps.
إذا كان فعلاً تطبيق آخر، نقّل Ollama بدلاً من محاربته — اختر منفذ عالي مجاني مثل 127.0.0.1:11435 و قم بتعيين OLLAMA_HOST كما هو موضح أعلاه. تذكر تحديث عنوان URL الأساسي لكل عميل، بما في ذلك أي تكوين SDK متوافق مع OpenAI.
Docker و WSL
داخل الحاوية الرسمية يرتبط الخادم بـ 0.0.0.0:11434 بالفعل، لذا تختار فقط تعيين المضيف: docker run -d -p 127.0.0.1:11434:11434 --name ollama ollama/ollama يحتفظ به محلياً، في حين -p 11434:11434 يكشفها على جميع واجهات المضيف. لنقل المنفذ من جانب المضيف، غيّر الرقم الأيسر فقط — -p 11435:11434 — واترك المنفذ الداخلي للحاوية دون تغيير.
من WSL2 إلى Ollama يعمل على مضيف Windows، localhost لا يحل دائماً إلى المضيف. اربط Ollama من جانب Windows على 0.0.0.0:11434، واسمح بالمنفذ في Windows Defender Firewall، واتصل من WSL باستخدام عنوان IP للمضيف من /etc/resolv.conf أو عنوان mirrored-networking، حسب إعدادات WSL لديك.
الأسئلة الشائعة
هل يوجد متغير بيئة OLLAMA_PORT؟
لا. يتم تعيين كل من المنفذ وعنوان الربط من خلال OLLAMA_HOST، مكتوب كـ host:port. تعيين OLLAMA_PORT لا يؤثر — Ollama يتجاهله ويستمر في استخدام 11434، وهذا هو السبب في أن التغيير يبدو أنه فشل بصمت.
عيّنت OLLAMA_HOST على 0.0.0.0 لكن الأجهزة البعيدة لا تستطيع الاتصال. لماذا؟
تحقق من الطبقات الثلاث بالترتيب. تأكَّد أولًا من أن الخادم مربوطٌ فعليًّا بعنوان 0.0.0.0 وليس بعنوان 127.0.0.1 باستخدام ss, lsof أو netstat؛ ثم تأكَّد من أن جدار الحماية الخاص بالمضيف يسمح بالاتصالات الواردة عبر بروتوكول TCP على هذا المنفذ؛ وأخيرًا تأكَّد من أن العميل يستخدم عنوان IP المحلي (LAN IP) الخاص بالمضيف، وليس localhost. والسبب الأكثر شيوعًا لهذا الخطأ هو عدم إعادة تشغيل عملية Ollama تمامًا بعد تعيين المتغير.
هل يؤدي تغيير المنفذ إلى تعطيل أداة سطر الأوامر (CLI) الخاصة بـ Ollama؟
قد يحدث ذلك. فالأداة تقرأ نفس متغير البيئة OLLAMA_HOST لتحديد مكان الاتصال، وبالتالي إذا انتقل الخادم إلى منفذ جديد بينما لم تُحدَّث القيمة في بيئة shell الخاصة بك، فإن أوامر مثل ollama list ستفشل مع خطأ اتصال. لذا يجب تعيين المتغير في ملف تعريف shell الخاص بك أيضًا، أو يمكنك إضافته كبادئة أمام كل أمر على حدة.
هل يمكنني تشغيل مثيلين من Ollama على منفذين مختلفين؟
نعم — ابدأ كل مثيل باستخدام قيمة مختلفة لمتغير OLLAMA_HOST. وسيشارك المثيلان نفس دليل النماذج ما لم تُخصِّص لكل منهما مسارًا منفصلًا لدليل النماذج عبر متغير OLLAMA_MODELS . واحذر من أن كلا المثيلين سيحمّلان أوزان النموذج إلى نفس وحدة معالجة الرسومات (GPU)، وبالتالي فإن تشغيل نموذجين كبيرين معًا سيؤدي إلى تنافس على ذاكرة VRAM؛ ويوضح المرجع متطلبات VRAM حسب النموذج كمية المساحة المتبقية المتاحة فعليًّا.
ما هو عنوان URL الأساسي الذي تحتاجه العملاء المتوافقة مع OpenAI؟
وجِّه عنوان URL الأساسي في حزمة التطوير البرمجي (SDK) إلى http://localhost:11434/v1 (مع تعديل عنوان المضيف والمنفذ إذا قمت بتغييرهما). كما تتطلب معظم العملاء تعبئة حقل مفتاح API بقيمة غير فارغة، رغم أن Ollama تتجاهله تمامًا، لذا يمكنك تمرير أي سلسلة رمزية بديلة مثل Ollama.
هل من الآمن تعريض المنفذ 11434 للإنترنت؟
لا. فليس هناك أي آلية مدمجة للمصادقة أو التشفير، كما أن واجهة API المُعرَّضة تتضمّن عمليات سحب النماذج وحذفها. وإذا كنت بحاجة إلى الوصول عن بُعد، فاستخدم نفق SSH أو شبكة افتراضية خاصة (private overlay network)، أو ضع خلفه وكيل عكسي (reverse proxy) مُصادَق عليه ومزوَّد بتقنية TLS. وإذا كان الوصول عن بُعد هو المتطلب الرئيسي، فقارن التكلفة التشغيلية مع الاستخدام المُستضاف للاستنتاج (hosted inference) عبر منصة حاسبة تكلفة واجهة برمجة التطبيقات (API) قبل بناء البنية التحتية اللازمة.
مرجع سريع
| المهمة | الإجراء |
|---|---|
| المنفذ الافتراضي | 11434 على 127.0.0.1، بروتوكول HTTP |
| تغيير المنفذ | OLLAMA_HOST=127.0.0.1:11435 |
| التعرّض للشبكة المحلية (LAN) | OLLAMA_HOST=0.0.0.0:11434 + قاعدة في جدار الحماية |
| التثبيت على أنظمة Linux | systemctl edit ollama.service → Environment="OLLAMA_HOST=…" |
| التثبيت على أنظمة macOS | launchctl setenv OLLAMA_HOST "…"، والتي تُطبَّق مجددًا عند تسجيل الدخول |
| التثبيت على أنظمة Windows | متغير بيئة المستخدم، ثم أغلق التطبيق وأعد تشغيله من شريط المهام (tray) |
| فحص حالة التشغيل (Health check) | curl http://127.0.0.1:11434 |
وبعد حل مشكلة المنفذ، فإن السؤال التالي عادةً هو: أي نموذج ينبغي وضعه خلف هذا المنفذ؟ — ويتناول الدليل أفضل النماذج المحلية لـ Ollama الخيارات الحالية حسب فئة الأجهزة.
