◇ دليل · CGNAT · عنوان IP عام

استضف خادماً خلف CGNAT. وامنحه عنوان IP عاماً حقيقياً.

خلف CGNAT لا يستطيع أحد من الخارج الوصول إلى خادم الألعاب أو الخادم المنزلي الذي تشغّله، ولا يفيد فتح المنافذ. لكن استضافة خادم خلف CGNAT ممكنة عبر خادم سحابي من POT بعنوان IPv4 عام خاص به: يتصل خادمك بالخادم السحابي عبر نفق، ويتصل اللاعبون بالخادم السحابي.

IPv4
عنوان عام مخصص
UDP + TCP
أي منفذ للعبة
طريقتان
WireGuard أو FRP
الكويت
مركز بياناتنا الخاص
// المشكلة

لماذا لا يعمل فتح المنافذ خلف CGNAT

كثير من مزوّدي الإنترنت، خصوصاً في إنترنت المنازل عبر شبكات 4G و5G، يشاركون عنواناً عاماً واحداً بين عملاء كثيرين. فلا يحصل الراوتر لديك على عنوان عام أبداً، وأي منفذ تفتحه يبقى على شبكة خاصة لا يصل إليها الإنترنت.

لا عنوان عام

عنوان مشترك
عنوان الإنترنت (WAN) في الراوتر عنوان خاص، وغالباً ضمن النطاق 100.64.0.0/10، فلا تصلك الاتصالات الواردة أبداً.

كيف تتحقّق من CGNAT

عنوانان مختلفان
قارن عنوان WAN في الراوتر بالعنوان الذي يظهره موقع لمعرفة عنوان IP الخاص بك. فإن اختلفا فأنت خلف CGNAT على الأرجح.

طريق الخروج من CGNAT

اتصال صادر
الاتصالات الصادرة تعمل دائماً، فيفتح خادمك نفقاً إلى خادم سحابي له عنوان IPv4 عام، ويمرّر الخادم السحابي اللاعبين إليك.
// كيف يعمل

اللاعبون يصلون إلى الخادم السحابي. والخادم السحابي يصل إليك.

تفتح النفق من جهتك، فلا يحجبه CGNAT أبداً، ولا يرى اللاعبون إلا عنوان الخادم السحابي. وهكذا تنجح استضافة خادم خلف CGNAT دون أي تغيير لدى مزوّدك.

اللاعبونمن أي مكان
←↓اتصال
خادم POT السحابيعنوان IPv4 عام
←↓نفق
خادمكخلف CGNAT
// خطوة بخطوة

طريقتان لتجاوز CGNAT

كلتاهما تعمل على خادم سحابي بنظام Linux. تمرّر أمثلتنا ماينكرافت Java على المنفذ 25565 — استبدله بمنافذ لعبتك.

الخيار الأول · نفق WireGuard

الأفضل لألعاب UDP والمنافذ الكثيرة
  1. اطلب خادماً سحابياً بنظام Ubuntu أو Debian. تكفي باقة صغيرة للبداية لأنه يمرّر البيانات فقط، فاختر باقة بسعة نقل تكفي لاعبيك، ودوّن عنوانه العام.
  2. ثبّت WireGuard على الجهازين وأنشئ زوج مفاتيح على كل منهما:
    sudo apt install wireguard
    wg genkey | tee private.key | wg pubkey > public.key
  3. على الخادم السحابي، أنشئ الملف /etc/wireguard/wg0.conf، واستبدل eth0 بواجهة الشبكة العامة لديك، ويظهرها الأمر ip route get 1.1.1.1:
    [Interface]
    Address    = 10.66.0.1/24
    ListenPort = 51820
    PrivateKey = <VPS_PRIVATE_KEY>
    # forward the game port to your home server (one PREROUTING line per port/protocol)
    PostUp   = sysctl -w net.ipv4.ip_forward=1
    PostUp   = iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 25565 -j DNAT --to-destination 10.66.0.2
    PostUp   = iptables -t nat -A POSTROUTING -o wg0 -j MASQUERADE
    PostUp   = iptables -I FORWARD -i eth0 -o wg0 -j ACCEPT
    PostUp   = iptables -I FORWARD -i wg0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    PostDown = iptables -t nat -D PREROUTING -i eth0 -p tcp --dport 25565 -j DNAT --to-destination 10.66.0.2
    PostDown = iptables -t nat -D POSTROUTING -o wg0 -j MASQUERADE
    PostDown = iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT
    PostDown = iptables -D FORWARD -i wg0 -o eth0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
    
    [Peer]
    PublicKey  = <HOME_PUBLIC_KEY>
    AllowedIPs = 10.66.0.2/32
  4. على خادمك المنزلي، أنشئ الملف نفسه بمفاتيح الطرف الآخر. يبقي الخيار PersistentKeepalive النفق مفتوحاً عبر CGNAT، وعلى Windows استورد الإعداد في تطبيق WireGuard الرسمي:
    [Interface]
    Address    = 10.66.0.2/24
    PrivateKey = <HOME_PRIVATE_KEY>
    
    [Peer]
    PublicKey           = <VPS_PUBLIC_KEY>
    Endpoint            = <VPS_PUBLIC_IP>:51820
    AllowedIPs          = 10.66.0.1/32
    PersistentKeepalive = 25
  5. شغّل النفق وافتح منفذه:
    # on the VPS
    sudo ufw allow 51820/udp
    sudo systemctl enable --now wg-quick@wg0
    
    # on your home server
    sudo systemctl enable --now wg-quick@wg0
  6. اتصل: يدخل اللاعبون على VPS_IP:25565. وللعبة تعمل عبر UDP استخدم -p udp في سطري المنفذ، وأضف سطراً لكل منفذ إضافي.

الخيار الثاني · FRP

أبسط إعداد لكل منفذ
  1. نزّل FRP، وهو مشروع fatedier/frp مفتوح المصدر، على الجهازين: يعمل الجزء الخادم frps على الخادم السحابي، والجزء العميل frpc في منزلك.
  2. على الخادم السحابي، أنشئ الملف frps.toml وافتح المنافذ ثم شغّله:
    # frps.toml (on the VPS)
    bindPort   = 7000
    auth.token = "change-me-to-a-long-random-string"
    sudo ufw allow 7000/tcp
    sudo ufw allow 25565/tcp
    ./frps -c frps.toml
  3. في منزلك، أنشئ الملف frpc.toml ثم شغّله بالأمر ./frpc -c frpc.toml. وللعبة تعمل عبر UDP اجعل type = "udp" وافتح المنفذ بصيغة /udp:
    # frpc.toml (at home)
    serverAddr = "<VPS_PUBLIC_IP>"
    serverPort = 7000
    auth.token = "change-me-to-a-long-random-string"
    
    [[proxies]]
    name       = "minecraft"
    type       = "tcp"
    localIP    = "127.0.0.1"
    localPort  = 25565
    remotePort = 25565
  4. اتصل: يدخل اللاعبون على VPS_IP:25565. وشغّل الطرفين كخدمة ليبدآ تلقائياً مع تشغيل الجهاز.
// قبل الإطلاق

قبل أن تفتح خادمك للاعبين

أربع نقاط تُبقي الإعداد آمناً وثابتاً.

أحكم الإغلاق

جدار حماية وأسرار
افتح منفذ النفق ومنافذ اللعبة فقط، واستخدم رمز FRP طويلاً وعشوائياً، واحتفظ بالمفاتيح الخاصة لنفسك.

أبقِه يعمل

تشغيل تلقائي
شغّل WireGuard أو frpc كخدمة في منزلك ليعود النفق بعد إعادة التشغيل أو انقطاع الكهرباء.

عناوين اللاعبين

تظهر من النفق
يرى خادمك الاتصالات قادمة من النفق لا من عنوان كل لاعب، فأدِر الحظر والقوائم البيضاء بأسماء اللاعبين لا بالعناوين.

سعة النقل

على حساب الخادم السحابي
تمرّ بيانات كل لاعب عبر الخادم السحابي، فاختر باقة بسعة نقل تكفي لاعبيك.
// أسئلة

أسئلة شائعة عن CGNAT

هل يعمل هذا مع أي لعبة؟

نعم، يمكنك استضافة خادم خلف CGNAT لأي لعبة يتصل بها اللاعبون عبر منافذ TCP أو UDP، مثل ماينكرافت وARK ومعظم الألعاب الأخرى. يمرّر WireGuard ما تشاء من المنافذ، ومع FRP تضيف إدخالاً لكل منفذ.

هل يزيد ذلك التأخير؟

قليلاً، فالبيانات تمرّ بقفزة إضافية عبر الخادم السحابي. وخوادمنا السحابية في الكويت، فتبقى هذه القفزة قصيرة للاعبين في المنطقة.

أي طريقة أختار؟

اختر WireGuard إن كانت لعبتك تستخدم UDP أو منافذ كثيرة أو أردت كل شيء في نفق واحد، واختر FRP لأسرع إعداد لمنفذ أو منفذين.

هل يصلح لموقع منزلي أو خادم وسائط وليس للألعاب فقط؟

نعم. يمرّر النفق نفسه أي خدمة TCP أو UDP تشغّلها في منزلك، مثل موقع ويب أو خادم Plex أو Jellyfin أو جهاز NAS. وللموقع وجّه نطاقك إلى عنوان الخادم السحابي.

أليست استضافة خادم اللعبة لديكم أبسط؟

غالباً نعم. خادم الألعاب من POT له عنوان عام وبينغ منخفض ولوحة ألعاب مع زيتا مدمج، دون نفق تصونه. تصفّح خوادم الألعاب.

تحتاج عنوان IP عاماً؟ ابدأ بخادم سحابي.

ابدأ استضافة خادم خلف CGNAT بخادم سحابي له عنوان IPv4 عام خاص به، في مركز بياناتنا في الشرق الأوسط.

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