چگونه چند پورت (Port) را روی روتر ( Router ) منتقل ( forward ) کنیم؟
اگرچه امروزه بسیاری از روترها این کار را به صورت خودکار انجام میدهند، اما فوروارد (Forward) کردن پورت (Port) برای بعضی از اپلیکیشنها یا دستگاهها باید به صورت دستی انجام شود. خوشبختانه اگر بدانید باید کجا بروید، انجام این کار خیلی آسان است.
فوروارد کردن پورت چیست؟
برای انجام بسیاری از کارها باید کامپیوتر خود را به سرویس دهندهی دستگاههای دیگر تبدیل کنید. اکثر چیزها زمانی که داخل شبکهی خودتان هستید، به درستی کار میکند. اما اگر میخواهید از بیرون از این شبکه به بعضی از اپلیکیشنها دسترسی داشته باشید، قضیه سختتر میشود. پس ابتدا بگذارید نگاهی به دلیل این ماجرا بیاندازیم.
روتر چگونه درخواستها را مدیریت کرده و از پورتها استفاده میکند؟
تصویر زیر نقشهای ساده از شبکهی خانگی شماست. ابر همان اینترنت و اتصال عمومی شما، یا آدرس پروتکل اینترنت (IP) است. این آدرس IP کل شبکهی خانگی شما را به جهان خارج نشان میدهد.
آدرس قرمز، آدرس روتر در داخل شبکهی شماست. آدرسهای دیگری که در پایین تصویر وجود دارد همه متعلق به دستگاههای موجود در شبکه است. اگر آدرس IP عمومی شما مثل آدرس یک خیابان باشد، به آدرسهای داخلی مثل شمارهی آپارتمانهای آن خیابان نگاه کنید.
این شکل در خود سوالی دارد که شاید تا به حال به آن فکر نکرده باشید. چگونه اطلاعاتی که از اینترنت میآید به دستگاه موردنظر ما در شبکه میرسد؟ اگر درخواست باز کردن سایت گوگل را داشته باشید، چگونه پاسخ به جای لپتاپ برادرتان به سیستم شما فرستاده میشود؟ مگر آدرس IP عمومی در همهی دستگاهها یکسان نیست؟
این مسئله به لطف قابلیت فوق العادهای در روتر به نام ترجمهی آدرس شبکه (NAT) حل میشود. این قابلیت در سطح روتر مثل یک پلیس راهنمایی و رانندگی عمل میکند، یعنی ترافیک را از میان روتر به دستگاه صحیح هدایت میکند، بنابراین از یک آدرس IP عمومی میتوان در چندین دستگاه استفاده کرد. به واسطهی همین NAT، درخواستهای هر دستگاهی مشخص بوده و پاسخ فقط برای همان دستگاه ارسال میشود.
پس نقش پورتها این وسط چه میشود؟ پورتها بخشی قدیمی اما مفید از روزهای ابتدایی پردازش شبکه هستند. در آن زمانها که هر کامپیوتر در یک زمان فقط میتوانست یک اپلیکیشن اجرا کند، تنها کاری که باید صورت میگرفت این بود که یک کامپیوتر را به کامپیوتر دیگری که در همان شبکه همان اپلیکیشن را اجرا کرده بود، وصل کنیم. اما بعدها که کامپیوترها به صورت همزمان قادر به اجرای چندین اپلیکیشن شدند، متخصصان علوم کامپیوتری باید با مشکل وصل کردن اپلیکیشنهای مرتبط به هم دست و پنجه نرم میکردند. اینجا بود که پورتها متولد شدند.
بعضی از پورتها اپلیکیشنهای مشخصی دارند که در صنعت کامپیوتر استاندارد هستند. برای مثال، زمانی که یک صفحهی اینترنتی را باز میکنید، سیستم از پورت ۸۰ استفاده میکند. نرمافزار کامپیوتر گیرنده میداند که از پورت ۸۰ برای بارگذاری اسناد http استفاده میشود، پس گوش به زنگ میماند و بر همین اساس پاسخ میدهد. اگر درخواست http خود را بر روی پورت دیگری -مثلاً پورت ۱۴۳- بفرستید، سرویس دهندهی وب آن را شناسایی نمیکند، چون به این پورت گوش نمیدهد (البته چیز دیگری مثل سرویس دهندهی ایمیلی IMAP ممکن است از آن پورت استفاده کند).
بعضی از پورتها به طور پیشفرض برای چیزی تعریف نشدهاند، بنابراین برای هر کاری میتوانید از آنها استفاده کنید. به منظور جلوگیری از به وجود آمدن تداخل در استفاده از یک پورت بهتر است از اعداد طولانیتر استفاده نمایید. مثلاً Plex Media Server از پورت ۳۲۴۰۰ و سرورهای بازی Minecraft از پورت ۲۵۵۶۵ استفاده میکنند.
از هر پورت میتوان در هر دو پروتکل TCP یا UDP استفاده کرد. TCP یا پروتکل کنترل انتقال، پروتکلی است که اغلب استفاده میشود. UDP یا پروتکل دادهگرام کاربر توسط اپلیکیشنهای خانگی کمتر استفاده میشود، مگر برای یک استثنا بزرگ که BitTorrent باشد.
چرا باید بخواهید پورتها را فوروارد کنید؟
حالا اصلاً چرا باید بخواهیم پورتها را فوروارد کنیم؟ با وجود این که بسیاری از اپلیکیشنها برای تنظیم پورتهای خود از NAT استفاده میکنند و خودشان پیکربندیهای لازم را انجام میدهند، اما هنوز اپلیکیشنهایی وجود دارند که به طور خودکار این کار را انجام نمیدهند و باید به صورت دستی این تنظیمات را تعریف کنید.
در نمودار زیر با یک مثال ساده شروع میکنیم. فرض کنید در جایی از جهان در حال استفاده از لپتاپتان هستید (با آدرس ۲۲۵٫۲۱۳٫۷٫۴۲)، و برای دسترسی به چند فایل که در کامپیوتر خانگیتان قرار دارد میخواهید به شبکهی منزل وصل شوید. اگر آدرس IP خانگی خود (۱۲۷٫۳۴٫۷۳٫۲۱۴) را در یکی از ابزارهای مرتبط (مثلاً یک کلاینت FTP یا یک نرمافزار اتصال از راه دور) وارد کنید، و این ابزار از ویژگیهای روتر که پیشتر اشاره کرده استفاده نکند، شانسی برای وصل شدن ندارید. برنامه نمیداند درخواست شما را به کجا بفرستد، و در نتیجه اتفاقی نمیافتد.
البته این امر قابلیت امنیتی بسیار خوبی است. اگر کسی بدون استفاده از پورتهای معتبر بخواهد به شبکهی خانگی شما وصل شود، نباید قادر به انجام چنین کاری باشد. رد این درخواستها توسط فایروال روتر انجام میشود.
برای حل این مشکل باید به روتر بگویید که اگر درخواستی از طرف این برنامه فرستاده شد آن را به این دستگاه در این پورت ارسال کند. با دستورالعملهای لازم، روتر شما را به سمت کامپیوتر و اپلیکیشن مربوطه هدایت خواهد کرد.
پس در این مثال، اگر میخواهید از خارج شبکه به داخل شبکه دسترسی داشته باشید باید از پورتهای مختلف استفاده کنید. هنگامی که با استفاده از پورت ۲۲ به آدرس IP شبکهی خانگی خود دسترسی پیدا کردید، روتر شما در خانه میداند که این درخواست باید به سمت ۱۹۲٫۱۶۸٫۱٫۱۰۰ برود. سپس رابط SSH در آن دستگاه پاسخ خواهد داد. در عین حال میتوانید درخواستی از طریق پورت ۸۰ ارسال کنید تا روتر آن را به سرویس دهندهی وب در آدرس ۱۹۲.۱۶۸.۱.۱۵۰ هدایت کند. یا از طریق آدرس ۱۹۲.۱۶۸.۱.۲۰۰ با استفاده از VNC به صورت از راه دور لپتاپ خواهرتان را کنترل کنید.
کارایی فوروارد کردن پورتها به همینجا ختم نمیشود! برای راحتی و شفافیت بیشتر میتوانید پورتهای سرویسهای موجود را با استفاده از فوروارد کردن پورتها تغییر دهید. برای مثال فرض کنید در شبکهی خانگی خود دو سرویس دهندهی وب دارید و میخواهید یکی از آنها به راحتی قابل دستیابی باشد، و دیگری فقط برای استفادهی شخصی در دسترس باشد.
زمانی که از پورت ۸۰ به شبکهی خانگیتان دسترسی پیدا میکنید، میتوانید به روتر خود بگویید درخواستها را به یکی از سرورهای موجود در آدرس ۱۹۲.۱۶۸.۱.۱۵۰ که پورت ۸۰ را گوش میکند بفرستد. میتوانید به روتر بگویید که اگر از طریق پورت ۱۰۰۰۰ به آن وصل شدید، باید به پورت ۸۰ سرور شخصی شما برود. از این طریق، کامپیوتر دوم حتی برای استفاده از یک پورت متفاوت هم نباید دوباره پیکربندی شود، ولی شما هنوز میتواتید ترافیک آن را مدیریت کنید.
اکنون که میدانیم انتقال پورت چیست و چرا باید بخواهیم از آن استفاده کنیم، بگذارید پیش از پیکربندی اصلی آن، چند نکتهی کوچک را در این رابطه بگوییم.
نکاتی پیش از پیکربندی روتر
پیش از پیکربندی حقیقی روتر و شروع به کار جدی برای جلوگیری از به وجود آمدن مشکل بهتر از چند نکتهی کوچک را بدانید.
تنظیم آدرس IP ایستا برای دستگاهها
اگر دستگاههای شما آدرس IP خود را به صورت پویا از سرویس DHCP روتر دریافت میکنند، هیچ کدام از این کارها فایدهای نخواهد داشت. ما در این جا به طور خلاصه به این موشوع اشاره خواهیم کرد.
روتر شما مجموعهای از آدرسهای آماده دارد که با وارد شدن دستگاههای جدید به شبکه این آدرسها را به آنها اختصاص میدهد. مثلاً هنگامی که لپتاپ شما وارد شبکه میشود با آدرس ۱۹۲.۱۶۸.۱.۹۸، آیفونتان با ۱۹۲.۱۶۸.۱.۹۹ و بقیهی دستگاهها هم به همین صورت آدرسدهی میشوند. اگر این دستگاهها برای مدتی خاموش شوند یا روتر دوباره راهاندازی شود، کل آدرسها دوباره بازنشانی میشوند.
در شرایط معمولی این امکان فوق العاده خوب است، چون دیگر نیازی نیست که نگران IP های داخلی باشید. اما اگر میخواهید قاعدهی (Rule) فوروارد پورتی بسازید که آدرس سرویس دهندهی بازی شما را مشخص میکند، و بعد روتر آدرس جدیدی به آن بدهد، این قاعده دیگر کار نخواهد کرد، و دیگر کسی نمیتواند به آن وصل شود. برای جلوگیری از این اتفاق باید به هر دستگاه در شبکه که در آن پورت فوروارد کردهاید، آدرس IP ایستا بدهید. بهترین روش برای انجام این کار از طریق روتر است.
آدرس IP خود را بدانید (و یک آدرس DNS پویا تعریف کنید)
علاوه بر رعایت نکتهی قبلی، باید آدرس IP خارجی خود را هم بدانید. میتوانید این آدرس را با مراجعه به سایت whatismyip.com مشاهده کنید. اگرچه یک آدرس IP عمومی میتواند تا ماهها یا حتی یک سال ثابت بماند ولی امکان تغییر آن هم وجود دارد (مگر این که به طور مشخص از سرویس دهندهی اینترنت خود IP ثابت گرفته باشید). به عبارت دیگر یعنی با اعتماد کامل نمیتوانید آدرس IP شبکهی خود را در نرمافزارهای اتصال از راه دور وارد کنید و انتظار وصل شدن داشته باشید.
بنابراین قویاً پیشنهاد میکنیم که یک سرویس DNS پویا تنظیم کنید تا آدرس متغیر شما را به یک آدرس به یاد ماندنیتر مثل mysuperawesomeshomeserver.dynu.net پیوند دهد.
به فایروالهای محلی توجه کنید
زمانی که یک پورت را در سطح روتر فوروارد میکنید، به احتمال خیلی زیاد باید دستی هم در قوانین فایروال کامپیوتر خود ببرید. آگاه باشید که در کامپیوترهایی که علاوه بر فایروال محلی از فایروال موجود در نرمافزارهای آنتی ویروس هم استفاده میکنند، باید در هر دو جا بگویید که اتصالات این پورتها را مورد تایید شماست.
گام اول: یافتن قواعد فوروارد کردن پورتها در روتر
اگرچه ما دوست داریم برای روتر شما دستورالعمل مخصوص بنویسیم، ولی حقیقت این است که هر روتر نرمافزار مخصوص به خود را دارد، و عملکرد هر نرمافزار هم بسته به مدل روتر متفاوت است. پس به جای این که همهی مدلهای موجود را تحت پوشش قرار دهیم (که کار بینهایت سختی است)، سعی میکنیم تا با ارائهی اطلاعاتی دربارهی ظاهر منوها، تشویقتان کنیم تا دفترچهی راهنما را مطالعه کرده یا به دنبال راهنماهای آنلاین مربوط به مدل روتر خود باشید.
در حالت کلی باید به دنبال بخشی به نام Port Forwarding باشید. برای پیدا کردن آن شاید لازم باشد تا دستهبندیهای مختلف را بررسی کنید. برای مثال این بخش در روتر D-Link DIR-890L به شکل زیر است:
و همین بخش در روتری مشابه که از فرمور محبوب شخص ثالث DD-WRT استفاده میکند هم به صورت زیر میباشد:
همان طور که میبینید، پیچیدگی بین این دو مدل، علیرغم سختافزار یکسان مشهود است. به علاوه، موقعیت آن هم به طور کامل با یکدیگر تفاوت دارد. به همین خاطر بهتر است برای هر دستگاه و هر رابط کاربری راهنمای مخصوص آن را مطالعه کنید.
هنگامی که منوی آن را پیدا کردید، زمان آن است تا قاعدهی موردنظر خود را تنظیم کنید.
گام دوم: ایجاد یک قاعدهی فوروارد پورت
برخلاف همهی توضیحات احتمالاً پیچیده و مراحل قبلی تعریف خود قاعده بسیار ساده است. ما میخواهیم دو قاعده برای فوروارد کردن پورت تعریف کنیم؛ یکی برای سرویس دهندهی موسیقی Subsonic و دیگری برای سرویس دهندهی بازی Minecraft.
با وجود تفاوتهایی که در نرمافزار هر روتر وجود دارد، فرآیند کلی یکسان است. تقریباً در همه جا ابتدا باید نام قاعدهی فوروارد پورت را بنویسید. بهتر نامی مرتبط با کاربرد سرویس یا سرور برای آن انتخاب کنید. اکنون باید مشخص کنید که این قاعده از پروتکل TCP، UDP یا هر دوی آنها استفاده کند. بعضی از کاربران در زمینهی انتخاب دقیق پروتکل موردنیاز برای هر اپلیکیشن یا سرویس وسواس دارند و آن را به پای مسائل امنیتی میگذارند. اگر راستش را بگویم من همیشه در این زمینه تنبلی میکنم، و خیلی راحت گزینهی Both یا هر دو را انتخاب میکنم.
در برخی از فرمورهای نرمافزاری مثل DD-WRT که در تصویر بالا هم آن را آوردیم، با تعیین مقدار Source یا منبع میتوانید دسترسی لیستی از آدرسهای IP را به دلایل امنیتی به این قاعدهی انتقال پورت محدود کنید. اگر بخواهید میتوانید از چنین قابلیتی استفاده کنید، اما بدانید که با این کار دردسرهای جدیدی برای خود ایجاد میکنید، چرا که روتر فرض میکند که کاربران از راه دور (از جمله شما و دوستانتان) آدرسهای ایستا دارند.
سپس باید پورت خارجی را مشخص کنید. این همان پورتی است که بر روی روتر و اینترنت باز خواهد ماند. شما میتوانید از بین ۱ تا ۶۵۳۵۳ یک عدد انتخاب کنید، اما اکثر اعداد پایین توسط سرویسهای استاندارد (مثل ایمیل و سرورهای وب) و عددهای بالا هم توسط اپلیکیشنهای متداول اشغال شدهاند. با این اوصاف پیشنهاد میکنیم عددی بالاتر از ۵۰۰۰ انتخاب کنید. برای اطمینان خاطر میتوانید در میان لیست طویل پورتهای TCP/UDP بگردید تا مطمئن شوید که پورت انتخابی شما با سرویس دیگری تداخل نداشته باشد.
در انتها آدرس IP داخلی و پورت دستگاه موردنظر خود را وارد کرده، و سوئیچ این قاعده را روشن کنید. فراموش نکنید که تنظیمات را هم ذخیره نمایید.
گام سوم: آزمایش قاعدهی فوروارد پورت
سادهترین راه برای آزمایش فوروارد پورت این است که از یک دستگاه خارج از شبکه به کامپیوتر داخل شبکه وصل شوید. اما اگر خارج از خانه نباشید شاید انجام این آزمایش برای شما کمی مشکل باشد. خوشبختانه به لطف وبسایت YouGetSignal.com میتوانید به راحتی ببینید که آیا قاعدهی فوروارد کردن پورت شما به درستی کار میکند یا نه. برای انجام این آزمایش کافی است آدرس IP خود را به همراه پورتتان وارد کرده و بر روی دکمهی Check کلیک کنید.
همان طور که در تصویر بالا پیداست، باید پیامی مشابه [Port X is open on [Your IP دریافت کنید. اگر پورت بسته بود، مجدداً تنظیمات روتر خود را چک کرده و ضمن بررسی IP و پورتی که در این سایت وارد کردهاید، آزمایش را دوباره اجرا کنید.
تعریف انتقال پورت شاید کمی مشکل باشد، اما پس از آن که آدرس IP ایستا را به دستگاه موردنظر خود اختصاص دادید و سرور DNS پویا را برای آدرس IP خانگی خود تعریف کردید، فقط کافی است یکبار این سختی را به جان بخرید تا در آینده به راحتی بتوانید از شبکهی خانگی خود استفاده کنید.
این مطلب برای بسیاری از کاربران دنیای مجازی مفید است و کاربرد دارد بنابراین توصیه می کنیم که از طریق دکمه های زیر این مطلب را روی شبکه های اجتماعی منتشر نمایید.
منبع: howtogeek.com