Skip to content
VDS · الشبكة وعنوان IP والنطاقات

MTU 1420: لماذا قد تتعطل بعض المواقع وكيف تصلح ذلك

ما هو MTU، ومن أين يأتي 1420، وكيف تبدو مشكلة «الصفحة تتعطل في المنتصف»، وكيف تتحقق منها وتصلحها.

آخر تحديث 23 أغسطس 2026

MTU هو الحد الأقصى لحجم الحزمة التي يمكن إرسالها عبر الشبكة دون تجزئة. القيمة المعتادة على Ethernet هي 1500 بايت. عندما يمرّ الترافيك عبر نفق، تستهلك ترويسته الخاصة جزءًا من المساحة، ما يترك حمولة أقل: القيمة النموذجية هي 1420.

هذا في حد ذاته ليس مشكلة. تبدأ المشاكل عندما يعتقد أحد الطرفين أنه يستطيع إرسال 1500، لكن يوجد على المسار مقطع بقيمة 1420 وتضيع الرسالة التي تخبره بذلك.

كيف تبدو الأعراض

  • يتصل SSH، وتصل رسالة الترحيب، لكن ls في مجلد كبير يعلّق الجلسة.
  • تبدأ صفحة بالتحميل وتتجمّد في منتصف الطريق.
  • يعمل curl -I (الترويسات فقط)، لكن curl الكامل يتعلّق.
  • ينجح apt update، ويتوقف apt upgrade أثناء التنزيل.
  • الطلبات الصغيرة تمرّ، والردود الكبيرة لا تصل أبدًا.

العلامة المشتركة واحدة: الحزم الصغيرة تمرّ، والكبيرة تختفي دون خطأ. لا ينقطع الاتصال؛ بل يصمت فقط.

السبب هو أن آلية التفاوض على حجم الحزمة تعتمد على رسائل خدمة ICMP. إذا قام شيء ما بترشيحها على المسار، فلن يعلم المُرسِل أبدًا أن الحزمة كبيرة جدًا ويستمر في إرسالها مرارًا وتكرارًا.

الفحص

أرسل حزمة مع تعيين بت عدم التجزئة وقلّل الحجم حتى تمرّ:

ping -M do -s 1472 -c 2 1.1.1.1
ping -M do -s 1392 -c 2 1.1.1.1

يُضاف إلى حجم -s عدد 28 بايت من الترويسات: 1472 يقابل MTU 1500، و1392 يقابل MTU 1420. إذا فشل الخيار الأول ونجح الثاني، فقد وجدت الحد.

قيمة الواجهة الحالية:

ip link show
ip route get 1.1.1.1

كيفية الإصلاح

فحص لمرة واحدة:

ip link set dev eth0 mtu 1420

بشكل دائم، عبر systemd-networkd — الملف /etc/systemd/network/10-eth0.network:

[Match]
Name=eth0

[Link]
MTUBytes=1420
systemctl restart systemd-networkd

إذا كان NetworkManager يدير الشبكة:

nmcli connection modify "System eth0" 802-3-ethernet.mtu 1420
nmcli connection up "System eth0"

تقنية ثانية، مفيدة عندما لا تستطيع لمس MTU، هي تثبيت حجم مقطع TCP عند الحدود. في nftables:

tcp flags syn tcp option maxseg size set rt mtu

متى يؤثر هذا عليك

على جهاز Millida VDS نفسه، الشبكة مهيّأة بشكل صحيح، وعادةً لا تحتاج إلى لمس MTU يدويًا. عليك التعامل معه عندما تنشئ نفقًا بنفسك: WireGuard، OpenVPN، GRE، VPN إلى المكتب، أو رابط بين الأجهزة. داخل النفق، يكون MTU أصغر دائمًا، وتحتاج إلى تعيينه صراحةً.

بالنسبة إلى WireGuard في قسم [Interface]:

MTU = 1420

الأخطاء الشائعة

الخطأالنتيجة
حجب ICMP بالكامل في الجدار الناريتعطّل التفاوض على حجم الحزمة على نفسك
تعيين MTU على جانب واحد فقط من النفقيتعلّق الترافيك في اتجاه واحد
تغيير MTU عشوائيًاتخفي السبب الحقيقي: فقدان الحزم أو خطأ في خدمة

لا تلمس MTU حتى تعيد إنتاج العَرَض باستخدام الأمر ping -M do. بدون هذا الفحص، أنت تغيّر إعدادًا يعمل بناءً على تخمين — وتحصل على مشكلة جديدة بدلًا من القديمة. لا تحجب ICMP بالكامل؛ راجع nftables.