SSD Nodes Learn Hosting plans →
الأدلة Matt Connorبقلم Matt Connor · آخر تحديث في 2026-09-04

تشغيل Ollama في Podman دون root على VPS

شغّل Ollama كمستخدم عادي عبر Podman على VPS، مع Quadlet وlingering ووسوم SELinux، واجعل المنفذ 11434 مغلقًا واستخدم نفق SSH بعد إعادة التشغيل.

تشغيل Ollama في Podman دون root على VPS

لتشغيل Ollama في Podman دون root على خادم، يجب تحقق خمسة أمور قد يتجاوزها شرح مخصص لأجهزة سطح المكتب. يملك مستخدم مخصص غير متمتع بامتيازات الحاوية. ويكون lingering مفعّلاً لهذا المستخدم، لذلك تستمر الحاوية في العمل بعد تسجيل الخروج. ويتولى ملف Quadlet تسليم الحاوية إلى systemd، فتعود إلى العمل بعد إعادة التشغيل. ويحمل مجلد النماذج وسم SELinux على التوزيعات التي تفرض استخدامه. وتستمع واجهة API على loopback فقط، وتصل إليها عبر نفق SSH (secure shell).

Ollama خادم للنماذج اللغوية الكبيرة (LLM). يخزن أوزان النماذج على القرص، ويحمّلها إلى الذاكرة، ويجيب عن طلبات HTTP على المنفذ 11434. لا يحتوي على تسجيل دخول أو API key أو حسابات مستخدمين، لذلك لا تملك سوى الشبكة كوسيلة للتحكم في الوصول. يشغّل Podman الحاويات دون daemon ودون root، لذلك يبدأ أي شيء يخرج من الحاوية بامتيازات مستخدم عادي غير متمتع بامتيازات. إذا أردت مقارنة بيئة التشغيل أولاً، فاقرأ الاختلاف بين Podman وDocker على VPS. وإذا كنت تفضّل تجاوز الحاويات بالكامل، فإن تثبيت Ollama مباشرة على VPS مسار أقصر.

توفّر SSD Nodes نظام Fedora ضمن صورها، ويأتي Fedora مع Podman وSELinux (security-enhanced Linux) مفعّلين افتراضياً. تعمل كل الأوامر أدناه على أي توزيعة تتضمن Podman 5 أو إصداراً أحدث.

لماذا يحتاج إصدار الحاسوب المحمول إلى تغييرات على الخادم

نشرت Fedora Magazine في 5 August 2026 شرحاً واضحاً لهذه الحزمة بعنوان: تشغيل Ollama محلياً باستخدام Podman على Fedora Linux، بقلم Yazan Monshed. يُعد ذلك بداية جيدة لفهم الأدوات خلال الساعة الأولى. لكنه يستهدف أيضاً حاسوباً محمولاً، وتتصرف أربعة من خياراته بطريقة مختلفة على جهاز يملك عنوان IP عاماً.

  • يبدأ الحاوية باستخدام podman run -d فقط. لا تعود الحاوية التي تبدأ يدوياً للعمل بعد إعادة التشغيل، لأن أحداً لم يطلب تشغيلها عند الإقلاع.
  • يستخدم الوسم المتغير ollama/ollama. على الحاسوب المحمول، تلاحظ يوم تغيّر السلوك. أما على الخادم، فأول علامة تكون عادةً نصاً برمجياً توقف عن العمل أثناء الليل.
  • ينشر الخدمة باستخدام -p 11434:11434، الذي يربطها بكل الواجهات. تكون الخدمة غير قابلة للوصول من الإنترنت خلف موجّه منزلي. أما على VPS، فتصبح API عامة للاستدلال بلا كلمة مرور.
  • يشغّلها باستخدام حساب تسجيل الدخول الخاص بك. على الخادم، يجب أن يملك الحساب المسؤول عن الحاوية لا شيء آخر، حتى يؤدي أي خروج من الحاوية إلى دليل منزل فارغ.

لا يعني أي من ذلك أن الخيارات خاطئة بالنسبة إلى الجهاز الذي كُتب الشرح له. كل عنصر منها هو ببساطة قرار تعيد مراجعته عندما يكون الجهاز قابلاً للوصول من كل مكان ولا يوجد أحد أمامه.

أنشئ المستخدم غير ذي الامتيازات، وتحقق من subuid

يُسند Rootless Podman معرّفات المستخدمين (UID) الداخلية للحاوية إلى كتلة من المعرّفات غير المستخدمة على المضيف. تُحدَّد هذه الكتلة في /etc/subuid و/etc/subgid. من دونها، لا يمكن للحاويات التي تعمل دون rootless امتيازات أن تبدأ إطلاقاً.

sudo dnf install -y podman        # or: sudo apt install -y podman
sudo useradd --create-home --shell /bin/bash --comment "Ollama container owner" ollama
sudo passwd --lock ollama
grep ollama /etc/subuid /etc/subgid

يجب أن يطبع grep سطرين، سطراً من كل ملف، ويذكر كل سطر نطاقاً يضم 65536 معرّفاً:

/etc/subuid:ollama:100000:65536
/etc/subgid:ollama:100000:65536

سيختلف رقم البداية لديك، وهذا طبيعي. إذا لم يطبع grep أي شيء، فهذا يعني أن useradd لم يخصّص نطاقاً، ويفشل أول أمر podman عند تنفيذه باعتباره ذلك المستخدم، كما يلي:

Error: cannot find UID/GID for user ollama: no subuid ranges found for user "ollama" in /etc/subuid

خصّص نطاقاً لا يملكه أي مستخدم آخر، ثم أخبر Podman بأن التعيين القديم أصبح قديماً:

sudo usermod --add-subuids 100000-165535 --add-subgids 100000-165535 ollama
sudo -iu ollama podman system migrate

يعني قفل كلمة المرور أن لا أحد يسجّل الدخول مباشرةً بصفته ollama. تصل إلى الحساب من مستخدم الإدارة لديك باستخدام sudo -iu ollama.

فعِّل ميزة البقاء لتستمر الخدمة بعد تسجيل الخروج

تبدأ نسخة systemd الخاصة بالمستخدم عادةً عند تسجيل الدخول وتتوقف عند تسجيل الخروج، ويُحذف /run/user/<uid> معها. تتوقف كل حاوية rootless يملكها ذلك المستخدم في اللحظة نفسها. تحافظ ميزة البقاء على تشغيل نسخة المستخدم من دون جلسة مرتبطة بها.

sudo loginctl enable-linger ollama
loginctl show-user ollama --property=Linger

يجب أن يطبع ذلك Linger=yes. فعِّلها قبل إنشاء الوحدة، لأن الدليل الذي تحتاج إليه الوحدة، /run/user/<uid>، لا يوجد إلا بعد تفعيل ميزة البقاء.

هناك خطوة إضافية لا يتوقعها أحد. يمنحك sudo -iu ollama shell، لكنه لا ينشئ session bus، لذلك يفشل systemctl --user فوراً:

Failed to connect to bus: $DBUS_SESSION_BUS_ADDRESS and $XDG_RUNTIME_DIR not defined

يبحث systemd عن user bus في $XDG_RUNTIME_DIR/bus، ولا يضبط sudo -i هذا المتغير. اضبطه يدوياً في كل admin shell تدير منه هذه الخدمة:

sudo -iu ollama
export XDG_RUNTIME_DIR=/run/user/$(id -u)
systemctl --user status

مكان تخزين ملفات النماذج الثنائية، والمساحة التي يجب التخطيط لها

يكتب Ollama الأوزان داخل /root/.ollama/models في الحاوية. اربط دليلاً من مجلد المستخدم الرئيسي بهذا المسار، وستُخزَّن الملفات في مكان يمكنك قياسه: /home/ollama/ollama-data/models. تُخزَّن الملفات الثنائية في models/blobs كملفات معتمدة على المحتوى، ويحتوي models/manifests على الفهرس الصغير الذي يعرّفها. إذا استخدمت وحدة تخزين مُسمّاة بدلاً من ذلك، كما في مقال Fedora Magazine، فستوجد البنية نفسها ضمن /home/ollama/.local/share/containers/storage/volumes/<volume>/_data. في كلتا الحالتين، يكتب ollama pull وollama run الأوزان في البنية نفسها، وما يفصل بين الأمرين هو فقط ما إذا كانت جلسة محادثة ستُفتح بعد اكتمال التنزيل.

حدّد مساحة القرص قبل تنزيل أي شيء. تعطي أحجام التنزيل المنشورة الحد الأدنى المطلوب.

ChartPublished download size per Ollama model tag, ollama.com/library, checked 13 August 2026
The data behind this chart
[
  {
    "label": "gemma3:4b",
    "download_gb": 3.3
  },
  {
    "label": "mistral:7b",
    "download_gb": 4.4
  },
  {
    "label": "qwen3:8b",
    "download_gb": 5.2
  },
  {
    "label": "gemma3:12b",
    "download_gb": 8.1
  },
  {
    "label": "qwen3:14b",
    "download_gb": 9.3
  },
  {
    "label": "gemma3:27b",
    "download_gb": 17
  },
  {
    "label": "qwen3:30b",
    "download_gb": 19
  }
]

جميع الصفوف وعددها 7 هي أرقام منشورة على ollama.com/library، وليست أحجاماً مقاسة على قرص. أصغر وسم هنا، gemma3:4b، يتطلب تنزيل 3.3 GB. أما الأكبر، qwen3:30b، فيتطلب تنزيل 19 GB. تُخزَّن صورة الحاوية نفسها فوق ذلك في مساحة التخزين الخاصة بـPodman، لذلك تحقّق من الرقمين معاً باستخدام podman system df وdf -h /home. يحتاج النموذج أيضاً إلى مساحة في RAM تعادل حجمه تقريباً أثناء تحميله، إضافةً إلى مساحة لنافذة السياق، ولذلك لن يعمل نموذج حجمه 19 GB على VPS بسعة 16 GB.

ثبّت وسم الصورة، واستخدم اسم السجل الكامل

sudo -iu ollama
export XDG_RUNTIME_DIR=/run/user/$(id -u)
mkdir -p ~/ollama-data ~/.config/containers/systemd
podman pull docker.io/ollama/ollama:0.32.9

استخدم وسم إصدار منشور، وهو 0.32.9 اعتباراً من August 2026، وليس latest. يعني تثبيت الوسم أن إعادة التشغيل عند 04:00 تمنحك الملف التنفيذي الثنائي نفسه الذي اختبرته، لذلك يكون أي تغيّر في السلوك ناتجاً عن تغيير أجريته أنت. ينشر Docker Hub أيضاً الوسمين -rc و-rocm للإصدارات نفسها؛ اختر الوسم العادي ما لم تكن تستخدم AMD GPU.

اكتب اسم مضيف السجل أيضاً. في Fedora، لا يجد الاسم المختصر في وحدة systemd طرفية لعرض مطالبة، فتفشل الوحدة بالرسالة التالية:

Error: short-name "ollama/ollama" did not resolve to an alias and no unqualified-search registries are defined

يُعد السحب يدوياً أولاً اختيارياً، لكنه مفيد لأنه ينقل تنزيل الملف الكبير، الذي تبلغ حجمه عدة غيغابايت، خارج مهلة بدء الوحدة.

وحدة Quadlet التي تبقى بعد إعادة التشغيل

Quadlet هو مولّد systemd الخاص بـPodman. تكتب ملف .container، ويحوّله systemd إلى خدمة عند الإقلاع، ولم تعد هناك حاجة إلى podman generate systemd. احفظه باسم /home/ollama/.config/containers/systemd/ollama.container، ويجب أن يكون مملوكاً للمستخدم ollama.

[Unit]
Description=Ollama API (rootless)
After=network-online.target
Wants=network-online.target

[Container]
Image=docker.io/ollama/ollama:0.32.9
ContainerName=ollama
PublishPort=127.0.0.1:11434:11434
Volume=/home/ollama/ollama-data:/root/.ollama:Z
Environment=OLLAMA_KEEP_ALIVE=30m
Environment=OLLAMA_MAX_LOADED_MODELS=1

[Service]
Restart=always
TimeoutStartSec=900

[Install]
WantedBy=default.target

يحدّد اسم الملف اسم الخدمة، لذلك يصبح ollama.container هو ollama.service.

systemctl --user daemon-reload
systemctl --user start ollama.service
systemctl --user status ollama.service

يجب أن يعرض status القيمة active (running). لا تشغّل systemctl --user enable ollama.service. لا توجد الوحدة كملف على القرص، لذلك يرفضها systemd:

Failed to enable unit: Unit file /run/user/1001/systemd/generator/ollama.service is transient or generated.

ينفّذ القسم [Install] هذه المهمة مسبقاً. ينشئ Quadlet رابط التشغيل عند الإقلاع بنفسه أثناء daemon-reload، ولذلك لا يمكن حذف هذا الأمر. يضبط TimeoutStartSec=900 مهلة بدء أولية لا تزال بحاجة إلى سحب الصورة، لأن المهلة الافتراضية البالغة 90 ثانية لا تكفي لتنزيل حجمه اثنان غيغابايت، وسيُنهي systemd عملية البدء باعتبارها فاشلة. يُبقي OLLAMA_KEEP_ALIVE=30m نموذجاً في الذاكرة بين الطلبات بدلاً من إلغاء تحميله بعد خمس دقائق؛ وترد المفاضلات في إبقاء نموذج Ollama محمّلاً في الذاكرة. إذا كان بعض مصطلحات systemd الواردة هنا جديداً عليك، يشرح كيفية عمل خدمات systemd والمؤقتات على VPS الوحدات نفسها.

لماذا يعرض دليل النماذج خطأ رفض الإذن مع SELinux

في Fedora وRHEL وRocky وAlmaLinux، يكون SELinux في وضع الإنفاذ افتراضياً. تعمل عملية الحاوية ضمن النطاق container_t، بينما يُوسَم الدليل الموجود في الدليل الرئيسي للمستخدم بالوسم user_home_t. لا تسمح السياسة لأحدهما بالوصول إلى الآخر، لذلك يتعذر على Ollama إنشاء شجرة النماذج، وتخرج الحاوية. يعرض getenforce القيمة Enforcing على هذه الأنظمة، ويُسجَّل الرفض:

sudo ausearch -m avc -ts recent

سترى سطراً يذكر النطاق ووسم الهدف:

avc:  denied  { write } for  pid=1842 comm="ollama" name="models" dev="vda1" ino=131077 scontext=system_u:system_r:container_t:s0:c214,c827 tcontext=unconfined_u:object_r:user_home_t:s0 tclass=dir permlisted=0

يُعد الأمر :Z في نهاية السطر Volume= هو الإصلاح. فهو يعيد وسم دليل المضيف بالوسم container_file_t، ويضيف إليه فئة MCS خاصة لا تحملها إلا هذه الحاوية. أما :z بحروف صغيرة، فيستخدم وسماً مشتركاً بدلاً من ذلك، وهو ما تحتاج إليه عندما تقرأ حاويتان الدليل نفسه.

تنبيه بشأن :Z، لأنه أمر مدمّر ويعمل بصمت. تعيد عملية إعادة الوسم تطبيق الوسم على جميع العناصر داخل الدليل. إذا وجهته إلى /home/ollama، فستُعاد تسمية كل الملفات الموجودة في ذلك الدليل الرئيسي، مما يعطّل الوصول إلى مفاتيح SSH لذلك المستخدم. امنح :Z دائماً دليلاً فرعياً مخصصاً لا يحتوي على أي ملفات أخرى. لا تحتاج volumes المسماة إلى ذلك، لأن Podman يضع الوسوم الصحيحة عليها عند إنشائها. إذا احتجت إلى صورة أشمل، يشرح أساسيات SELinux للخادم السياقات وقيم boolean. في Ubuntu وDebian، يُستخدم AppArmor بدلاً من ذلك، ويكون :Z بلا تأثير هناك، وتركه في الوحدة لا يسبب مشكلة.

إغلاق المنفذ 11434 والوصول إلى API عبر SSH

PublishPort=127.0.0.1:11434:11434 يربط جانب المضيف بعنوان loopback. تحقّق من ذلك:

ss -ltnp | grep 11434
curl http://127.0.0.1:11434

يجب أن يعرض ناتج ss القيمة 127.0.0.1:11434. تعني 0.0.0.0:11434 أو *:11434 أن المنفذ مفتوح على الإنترنت، ويجب أن يستجيب curl بـ Ollama is running.

حدّد بدقة الجانب الذي تربطه. العنوان في PublishPort هو عنوان المضيف. داخل الحاوية، يجب أن يستمر Ollama في الاستماع على جميع الواجهات، وهذا هو الإعداد الافتراضي للصورة. يؤدي ضبط Environment=OLLAMA_HOST=127.0.0.1 إلى ربط Ollama بعنوان loopback الخاص بالحاوية، بينما يوجّه Podman حركة المرور المنشورة إلى عنوان شبكة الحاوية بدلاً من ذلك، ولذلك يُرفض كل طلب حتى من المضيف.

يعرّضك فتح 11434 لمشكلتين. لا يوفّر Ollama مصادقة، لذلك يمكن لأي شخص يصل إلى المنفذ عرض نماذجك عبر /api/tags، وتشغيل الاستدلال باستخدام CPU وسعة النطاق الترددي المسموح بها لك عبر /api/generate، وسحب نماذج جديدة إلى القرص، وحذف النماذج الموجودة لديك. ثانياً، يرسل HTTP العادي إلى منفذ بعيد المطالبات والنتائج بنص واضح، ولذلك يمكن لكل جهاز على المسار قراءتها. تختفي المشكلتان إذا لم يغادر المنفذ الجهاز.

من محطة العمل لديك، أعد توجيه المنفذ عبر SSH:

ssh -N -L 11434:127.0.0.1:11434 you@vps.example.com

الآن يشير http://127.0.0.1:11434 على حاسوبك المحمول إلى Ollama على الخادم، داخل تشفير جلسة SSH. إذا كان حاسوبك المحمول يشغّل Ollama بالفعل، يفشل الربط المحلي مع bind [127.0.0.1]:11434: Address already in use؛ استخدم -L 11435:127.0.0.1:11434 ووجّه العميل إلى 11435.

عندما يحتاج عميل متصفح إلى الوصول، ضع reverse proxy محمياً بكلمة مرور أمامه بدلاً من ذلك. يتكوّن إعداد الموقع في Caddy من أربعة أسطر، ويطبع caddy hash-password تجزئة bcrypt التي يحتاج إليها:

ollama.example.com {
  basic_auth {
    you $2a$14$replace_with_the_generated_hash
  }
  reverse_proxy 127.0.0.1:11434
}

يحصل Caddy على شهادة عبر TLS (أمان طبقة النقل) تلقائياً، ولذلك تكون حركة المرور مشفّرة. اختبر عميلك أولاً: لا يوفّر كثير من الأدوات التي تتصل بـ Ollama حقلاً لرأس Authorization، وستفشل أمام المصادقة الأساسية عند استخدام 401 Unauthorized مجرداً. لا تواجه نفق SSH هذه المشكلة، ولذلك نوصي به افتراضياً هنا.

اسحب نموذجاً وافحص المسار كاملاً

podman exec -it ollama ollama pull gemma3:4b
curl -s http://127.0.0.1:11434/api/tags
curl -s http://127.0.0.1:11434/api/generate -d '{"model":"gemma3:4b","prompt":"Reply with the single word: ready","stream":false}'
du -sh ~/ollama-data/models

يعرض /api/tags قائمة JSON تتضمن gemma3:4b. ويعيد /api/generate كائن JSON يحتوي على الحقل response، بعد توقف مؤقت ريثما تُحمَّل الأوزان من القرص. يجب أن يعرض du رقماً قريباً من حجم التنزيل المنشور. ثم أثبت أن الجزء الذي يتناوله هذا الدليل بالكامل يعمل:

sudo reboot
# reconnect, then:
sudo -iu ollama
export XDG_RUNTIME_DIR=/run/user/$(id -u)
systemctl --user is-active ollama.service

يعني active أن العملية ما زالت قائمة، وأن قسم [Install] وdaemon-reload نفّذا مهمتهما. ويعني inactive أن أحد العناصر الثلاثة مفقود.

أنماط الفشل، مع النصوص التي ستظهر لك

اختفاء الحاوية بعد إعادة التشغيل. تحقّق من loginctl show-user ollama --property=Linger أولاً، لأن غياب Linger=yes يمنع مثيل systemd الخاص بالمستخدم من البدء عند الإقلاع. إذا كان التشغيل المستمر مفعّلاً، أو كان قسم [Install] مفقوداً من ملف .container، أو عدّلت الملف ولم تشغّل systemctl --user daemon-reload.

Error: statfs /home/ollama/ollama-data: no such file or directory. يجب أن يكون مصدر bind mount موجوداً قبل بدء الحاوية. لا ينشئ Podman أدلة على المضيف نيابةً عنك. شغّل mkdir -p ~/ollama-data بصفة المستخدم ollama.

فشل البدء بعد 90 seconds. يعرض journalctl --user -u ollama.service العبارة Start operation timed out. Terminating. لأن سحب image كان لا يزال قيد التنفيذ. اسحبها يدوياً، أو أبقِ TimeoutStartSec=900.

بدء الحاوية ثم خروجها. يحدّد podman logs ollama وsudo ausearch -m avc -ts recent معاً ما إذا كانت المشكلة في SELinux label. يعني AVC الذي يذكر container_t وuser_home_t أن :Z مفقود.

رفض الطلبات من المضيف. يشير curl: (7) Failed to connect to 127.0.0.1 port 11434: Connection refused مع الخدمة active عادةً إلى ضبط OLLAMA_HOST على عنوان loopback داخل الحاوية. أزل ذلك السطر.

بطء التوليد جداً أو إنهاء الحاوية. عند عدم وجود GPU، يعمل الاستدلال على CPU، ويكون النموذج الكبير بطيئاً بطبيعته. إذا توقفت الحاوية أثناء الطلب وظهر signal: killed في السجلات، فهذا يعني أن kernel out-of-memory killer أنهى العملية. اختر tag أصغر من المخطط أعلاه.

تحديث صورة مثبتة

يعني التثبيت أن التحديثات عملية تنفذها أنت، وليست شيئاً يحدث لك تلقائياً. عدّل Image= في ollama.container، ثم أعد التحميل وأعد التشغيل:

systemctl --user daemon-reload
systemctl --user restart ollama.service
podman exec ollama ollama --version

توجد النماذج في bind mount، لذلك تبقى دون تغيير عند تبديل الصورة. يوجد AutoUpdate=registry في قسم [Container] لمن يشغّلون moving tag، لكنه لا يفيد مع وسم إصدار ثابت، لأن محتوى ذلك الوسم لا يتغير أبداً. أنشئ نسخة احتياطية من /home/ollama/ollama-data/models/manifests وملف .container، وتجاوز blobs: فهي كبيرة، ويعيد ollama pull جلبها على الخادم الجديد.

FAQ

لماذا تتوقف حاوية Podman التي تعمل دون root عندما أسجّل الخروج؟

يُزال مثيل systemd الخاص بالمستخدم ودليله /run/user/<uid> عند انتهاء آخر جلسة لذلك المستخدم، وتُزال معه كل حاوية تعمل دون root. شغّل sudo loginctl enable-linger ollama وتأكد من أن loginctl show-user ollama --property=Linger يعرض Linger=yes. فعّل lingering قبل إنشاء وحدة Quadlet، لأن دليل runtime الذي تحتاج إليه الوحدة لا يوجد إلا بعد تفعيل lingering.

هل أحتاج إلى تسميات SELinux في دليل نماذج Ollama؟

نعم، في Fedora وRHEL وRocky وAlmaLinux إذا ربطت دليلاً من المضيف. تعمل الحاوية ضمن النطاق container_t، بينما تكون تسمية الدليل الموجود في مجلد المنزل user_home_t، لذلك يُرفض طلب الكتابة وتتوقف Ollama. أضف :Z إلى السطر Volume= وامنحه دليلاً فرعياً مخصصاً، لأن إعادة التسمية تشمل الأدلة الفرعية، ولأن توجيه :Z إلى مجلد منزل كامل يعطّل الوصول إلى مفاتيح SSH لذلك المستخدم. تُسمّى وحدات التخزين المسماة بشكل صحيح بواسطة Podman ولا تحتاج إلى إعداد إضافي.

ما مقدار مساحة القرص التي يحتاج إليها نموذج Ollama؟

ابدأ من حجم التنزيل المنشور على ollama.com/library، والذي يتراوح من 3.3 GB للنموذج gemma3:4b إلى 19 GB للنموذج qwen3:30b. أضف صورة Podman إلى ذلك، واترك مساحة احتياطية، لأن النموذج الثاني لا يستبدل النموذج الأول على القرص. تحقّق من df -h /home قبل السحب، ثم من du -sh ~/ollama-data/models بعده. خطط للذاكرة RAM بالطريقة نفسها: يحتاج النموذج إلى مقدار يقارب حجم ملفه من الذاكرة أثناء تحميله، إضافة إلى نافذة السياق.

هل من الآمن إتاحة المنفذ 11434 على VPS؟

لا. لا تتضمن Ollama أي مصادقة، لذلك يستطيع أي شخص يصل إلى المنفذ عرض نماذجك وحذفها وسحب نماذج جديدة إلى القرص وتشغيل الاستدلال باستخدام وحدة المعالجة المركزية وحصة النطاق الترددي لديك. كما يرسل HTTP العادي عبر الإنترنت كل prompt وكل completion بنص واضح. اربط جانب المضيف بالعنوان 127.0.0.1 باستخدام PublishPort=127.0.0.1:11434:11434، وتأكد عبر ss -ltnp | grep 11434، ثم صِل إليه من خلال نفق SSH أو Reverse Proxy يتطلب كلمة مرور.