استضف خادماً خلف CGNAT. وامنحه عنوان IP عاماً حقيقياً.
خلف CGNAT لا يستطيع أحد من الخارج الوصول إلى خادم الألعاب أو الخادم المنزلي الذي تشغّله، ولا يفيد فتح المنافذ. لكن استضافة خادم خلف CGNAT ممكنة عبر خادم سحابي من POT بعنوان IPv4 عام خاص به: يتصل خادمك بالخادم السحابي عبر نفق، ويتصل اللاعبون بالخادم السحابي.
لماذا لا يعمل فتح المنافذ خلف CGNAT
كثير من مزوّدي الإنترنت، خصوصاً في إنترنت المنازل عبر شبكات 4G و5G، يشاركون عنواناً عاماً واحداً بين عملاء كثيرين. فلا يحصل الراوتر لديك على عنوان عام أبداً، وأي منفذ تفتحه يبقى على شبكة خاصة لا يصل إليها الإنترنت.
لا عنوان عام
كيف تتحقّق من CGNAT
طريق الخروج من CGNAT
اللاعبون يصلون إلى الخادم السحابي. والخادم السحابي يصل إليك.
تفتح النفق من جهتك، فلا يحجبه CGNAT أبداً، ولا يرى اللاعبون إلا عنوان الخادم السحابي. وهكذا تنجح استضافة خادم خلف CGNAT دون أي تغيير لدى مزوّدك.
طريقتان لتجاوز CGNAT
كلتاهما تعمل على خادم سحابي بنظام Linux. تمرّر أمثلتنا ماينكرافت Java على المنفذ 25565 — استبدله بمنافذ لعبتك.
الخيار الأول · نفق WireGuard
الأفضل لألعاب UDP والمنافذ الكثيرة- اطلب خادماً سحابياً بنظام Ubuntu أو Debian. تكفي باقة صغيرة للبداية لأنه يمرّر البيانات فقط، فاختر باقة بسعة نقل تكفي لاعبيك، ودوّن عنوانه العام.
- ثبّت WireGuard على الجهازين وأنشئ زوج مفاتيح على كل منهما:
sudo apt install wireguard wg genkey | tee private.key | wg pubkey > public.key
- على الخادم السحابي، أنشئ الملف
/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
- على خادمك المنزلي، أنشئ الملف نفسه بمفاتيح الطرف الآخر. يبقي الخيار
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
- شغّل النفق وافتح منفذه:
# 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
- اتصل: يدخل اللاعبون على
VPS_IP:25565. وللعبة تعمل عبر UDP استخدم-p udpفي سطري المنفذ، وأضف سطراً لكل منفذ إضافي.
الخيار الثاني · FRP
أبسط إعداد لكل منفذ- نزّل FRP، وهو مشروع fatedier/frp مفتوح المصدر، على الجهازين: يعمل الجزء الخادم
frpsعلى الخادم السحابي، والجزء العميلfrpcفي منزلك. - على الخادم السحابي، أنشئ الملف
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
- في منزلك، أنشئ الملف
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
- اتصل: يدخل اللاعبون على
VPS_IP:25565. وشغّل الطرفين كخدمة ليبدآ تلقائياً مع تشغيل الجهاز.
قبل أن تفتح خادمك للاعبين
أربع نقاط تُبقي الإعداد آمناً وثابتاً.
أحكم الإغلاق
أبقِه يعمل
عناوين اللاعبين
سعة النقل
أسئلة شائعة عن CGNAT
هل يعمل هذا مع أي لعبة؟
نعم، يمكنك استضافة خادم خلف CGNAT لأي لعبة يتصل بها اللاعبون عبر منافذ TCP أو UDP، مثل ماينكرافت وARK ومعظم الألعاب الأخرى. يمرّر WireGuard ما تشاء من المنافذ، ومع FRP تضيف إدخالاً لكل منفذ.
هل يزيد ذلك التأخير؟
قليلاً، فالبيانات تمرّ بقفزة إضافية عبر الخادم السحابي. وخوادمنا السحابية في الكويت، فتبقى هذه القفزة قصيرة للاعبين في المنطقة.
أي طريقة أختار؟
اختر WireGuard إن كانت لعبتك تستخدم UDP أو منافذ كثيرة أو أردت كل شيء في نفق واحد، واختر FRP لأسرع إعداد لمنفذ أو منفذين.
هل يصلح لموقع منزلي أو خادم وسائط وليس للألعاب فقط؟
نعم. يمرّر النفق نفسه أي خدمة TCP أو UDP تشغّلها في منزلك، مثل موقع ويب أو خادم Plex أو Jellyfin أو جهاز NAS. وللموقع وجّه نطاقك إلى عنوان الخادم السحابي.
أليست استضافة خادم اللعبة لديكم أبسط؟
غالباً نعم. خادم الألعاب من POT له عنوان عام وبينغ منخفض ولوحة ألعاب مع زيتا مدمج، دون نفق تصونه. تصفّح خوادم الألعاب.
تحتاج عنوان IP عاماً؟ ابدأ بخادم سحابي.
ابدأ استضافة خادم خلف CGNAT بخادم سحابي له عنوان IPv4 عام خاص به، في مركز بياناتنا في الشرق الأوسط.