- بواسطة x32x01 ||
عمرّك وقفت قدّام نفسك كده وسألت:
إزاى كل الأجهزة اللي في البيت أو الشركة بتقدر تدخل الإنترنت بنفس الـ Public IP؟
يعني عندك 10 أجهزة في البيت… أو 200 جهاز في شركة…
كلهم ماشيين على Private IPs محدش من بره يعرفهم ولا يشوفهم…
وبرضه كلهم يتصلوا بالإنترنت من خلال Public IP واحد!
الموضوع ده مش سحر… ده NAT – Network Address Translation
اللى بيشتغل جوه الراوتر عندك وبيترجم عناوين الشبكة علشان الدنيا تمشي.
طب خليني أحكيلك الموضوع بطريقة بسيطة جدًا…
تخيل إن الأجهزة اللي في الشبكة زي سكان منطقة كبيرة.
كل واحد عايش في شقته (وده الـ Private IP)
والعالم الخارجي (الإنترنت) مش شايف الشقق… شايف عمارة واحدة بس اللي هي الراوتر.
لكن سكان العمارة كلهم عايزين يروحوا المدينة (الإنترنت)…
مش منطقي كل واحد يركب عربية لوحده، خصوصًا إن العربيات قليلة وغالية (الـ Public IPs).
يبقى نعمل إيه؟
نركب كلنا أوتوبيس واحد

والأوتوبيس ده هو الراوتر + الـ Public IP.
طب الراوتر يعرف إزاي يرجّع الرد لكل جهاز؟
كل راكب (جهاز) بيطلع بتذكرة فيها Port Number
وده رقم مقعده في الأوتوبيس.
لما الأوتوبيس يوصل المدينة… الناس هناك مش شايفة كل راكب
هما شايفين الأوتوبيس نفسه (الـ Public IP)
فلما السيرفر يبعت الرد…
السواق اللي هو NAT Table يبص في التذكرة ويقول:
"آه الرد ده راجع للي كان قاعد على الكرسي 5050"
ويرجع الباكت للجهاز الصح جوا الشبكة الداخلية.
طيب… ليه بنعمل NAT أصلاً؟
عشان 4 أسباب مهمييين جدًا:
لو اختفى؟
كان النت هيبقى للأغنيا بس

الأنواع المختلفة من NAT
جهاز داخلي واحد = Public IP واحد
ومابيتغيرش.
مناسب للشركات اللي عندها سيرفرات محتاجة Public IP ثابت.
أي جهاز يطلب Public IP… ياخد واحدة فاضية من الPool.
مجرد ما يخلص… العربية ترجع للجراج تاني.
PAT / NAT Overload (المستخدم في 99%)
وده أشهر نوع.
الأوتوبيس الحقيقي

مئات الأجهزة تركب مع بعض…
وكل واحد ليه كرسي مختلف (Port Number)
وكلنا نطلع على الإنترنت من Public IP واحد بس!
ده اللي موجود في كل البيوت والشركات.
NAT في شكل عملي بكود
وده مثال بسيط بكود Python يشرح ازاي الأجهزة بتستخدم Port Numbers مختلفة:
الكود ده بيحاكي الفكرة:
كل جهاز بياخد Port مختلف علشان يخرج للإنترنت من خلال نفس الـ Public IP.
NAT مهم في الهجوم والاختراق كمان
في مجال Cybersecurity، NAT بيلعب دور مهم جدًا:
وده مثال على Port Forwarding في راوترات Linux باستخدام iptables:
ده ببساطة بيحول أي اتصال جاي على Public IP:8080
على جهاز داخلي شغال على 192.168.1.10:80
هل NAT ليه عيوب؟
بالرغم إنه بطل من أبطال الشبكات…
بس ليه شوية عيوب:
بدونه الإنترنت كان هيبقى كارثة!
الخلاصة
NAT هو اللي مخلي الدنيا ماشية على الإنترنت بدون ما نحتاج ملايين Public IPs.
هو السواق اللي شايل الشبكات الداخلية على كتفه…
وبيخلي الأجهزة تخرج للإنترنت بأمان، وسهولة، وبـ IP واحد.
بدونه؟
كان الإنترنت هيبقى للناس اللي معها فلوس بس

إزاى كل الأجهزة اللي في البيت أو الشركة بتقدر تدخل الإنترنت بنفس الـ Public IP؟
يعني عندك 10 أجهزة في البيت… أو 200 جهاز في شركة…
كلهم ماشيين على Private IPs محدش من بره يعرفهم ولا يشوفهم…
وبرضه كلهم يتصلوا بالإنترنت من خلال Public IP واحد!
الموضوع ده مش سحر… ده NAT – Network Address Translation
اللى بيشتغل جوه الراوتر عندك وبيترجم عناوين الشبكة علشان الدنيا تمشي.
طب خليني أحكيلك الموضوع بطريقة بسيطة جدًا…
تخيل إن الأجهزة اللي في الشبكة زي سكان منطقة كبيرة.
كل واحد عايش في شقته (وده الـ Private IP)
والعالم الخارجي (الإنترنت) مش شايف الشقق… شايف عمارة واحدة بس اللي هي الراوتر.
لكن سكان العمارة كلهم عايزين يروحوا المدينة (الإنترنت)…
مش منطقي كل واحد يركب عربية لوحده، خصوصًا إن العربيات قليلة وغالية (الـ Public IPs).
يبقى نعمل إيه؟
نركب كلنا أوتوبيس واحد
والأوتوبيس ده هو الراوتر + الـ Public IP.
طب الراوتر يعرف إزاي يرجّع الرد لكل جهاز؟
كل راكب (جهاز) بيطلع بتذكرة فيها Port Numberوده رقم مقعده في الأوتوبيس.
لما الأوتوبيس يوصل المدينة… الناس هناك مش شايفة كل راكب
هما شايفين الأوتوبيس نفسه (الـ Public IP)
فلما السيرفر يبعت الرد…
السواق اللي هو NAT Table يبص في التذكرة ويقول:
"آه الرد ده راجع للي كان قاعد على الكرسي 5050"
ويرجع الباكت للجهاز الصح جوا الشبكة الداخلية.
طيب… ليه بنعمل NAT أصلاً؟
عشان 4 أسباب مهمييين جدًا:- توفير Public IPs → بدل ما كل جهاز يحتاج Public IP
- إخفاء الشبكة الداخلية → محدش يعرف مين ورا الراوتر
- حماية وأمان → مفيش سيرفر خارجي يكلم جهازك مباشرة
- تشغيل آلاف الأجهزة من IP واحد
لو اختفى؟
كان النت هيبقى للأغنيا بس
الأنواع المختلفة من NAT 
Static NAT
ده زي اللي معاه عربيته الخاصةجهاز داخلي واحد = Public IP واحد
ومابيتغيرش.
مناسب للشركات اللي عندها سيرفرات محتاجة Public IP ثابت.
Dynamic NAT
ده زي جراج فيه شوية عربيات.أي جهاز يطلب Public IP… ياخد واحدة فاضية من الPool.
مجرد ما يخلص… العربية ترجع للجراج تاني.
PAT / NAT Overload (المستخدم في 99%)
وده أشهر نوع.الأوتوبيس الحقيقي
مئات الأجهزة تركب مع بعض…
وكل واحد ليه كرسي مختلف (Port Number)
وكلنا نطلع على الإنترنت من Public IP واحد بس!
ده اللي موجود في كل البيوت والشركات.
NAT في شكل عملي بكود 
وده مثال بسيط بكود Python يشرح ازاي الأجهزة بتستخدم Port Numbers مختلفة: Python:
import random
# أجهزة داخل الشبكة الداخلية
devices = ["Laptop", "Phone", "Camera", "SmartTV", "PC"]
public_ip = "102.45.98.11"
nat_table = {}
print("NAT Simulation:\n")
for device in devices:
private_ip = f"192.168.1.{random.randint(10, 250)}"
port = random.randint(1024, 65000)
nat_table[port] = device
print(f"{device} ({private_ip}) --> {public_ip}:{port}")
print("\nNAT Table:")
for port, device in nat_table.items():
print(f"{public_ip}:{port} -> {device}") كل جهاز بياخد Port مختلف علشان يخرج للإنترنت من خلال نفس الـ Public IP.
NAT مهم في الهجوم والاختراق كمان 
في مجال Cybersecurity، NAT بيلعب دور مهم جدًا:- بيخبي الأجهزة الداخلية → وده أصعب على الهاكرز يوصلوا لجهازك
- بيحتاج Penetration Tester يشتغل بـ Port Forwarding علشان يوصل لجهاز داخلي
- بيساعد في Bypassing بعض الفلاتر لو استخدمت تقنيات معينة
وده مثال على Port Forwarding في راوترات Linux باستخدام iptables:
Code:
iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to 192.168.1.10:80
iptables -A FORWARD -p tcp -d 192.168.1.10 --dport 80 -j ACCEPT على جهاز داخلي شغال على 192.168.1.10:80
هل NAT ليه عيوب؟
بالرغم إنه بطل من أبطال الشبكات…بس ليه شوية عيوب:
- بيصعّب الـ Peer-to-Peer connections
- محتاج Port Forwarding لو بتستخدم خدمات داخلية
- ساعات بيعمل Delay بسيط في الروترات الضعيفة
بدونه الإنترنت كان هيبقى كارثة!
الخلاصة 
NAT هو اللي مخلي الدنيا ماشية على الإنترنت بدون ما نحتاج ملايين Public IPs.هو السواق اللي شايل الشبكات الداخلية على كتفه…
وبيخلي الأجهزة تخرج للإنترنت بأمان، وسهولة، وبـ IP واحد.
بدونه؟
كان الإنترنت هيبقى للناس اللي معها فلوس بس