خوانده شده 6 دقیقه ارسال شده در
استاندارد eOL (بهعنوان استاندارد دیگری شناخته میشود-W-lan) عملکردی که به شما این امکان را می دهد که کامپیوتر را هنگامی که نوع خاصی از بسته شبکه (به نام MagicPacket) دریافت می کند، "بیدار کنید". در صورت نیاز
در این آموزش، نحوه فعال کردن عملکرد WOL در کارت اترنت خود در لینوکس و نحوه ارسال بسته شبکه مورد نیاز برای بیدار کردن دستگاه را بررسی خواهیم کرد.
بررسی کنید که آیا عملکرد Wake On Lan پشتیبانی میشود
اگر میخواهیم از تابع Wake On Lan استفاده کنیم، اولین کاری که باید انجام دهیم این است که مطمئن شویم این گزینه توسط رابط شبکه پشتیبانی میشود که میخواهیم از آن برای بیدار کردن دستگاه، بایوس دستگاه یا سیستم عامل UEFI. [19659006] برای انجام دومی، باید هنگام راهاندازی دستگاه، رابط تنظیمات میانافزار را وارد کنیم (این کار معمولاً با فشار دادن یک کلید، به عنوان مثال F2، بلافاصله پس از روشن شدن به دست میآید).
در رابط میانافزار، این عملکرد ، در صورت پشتیبانی، معمولاً در زیر "پیشرفته" فهرست می شود (به دنبال چیزی مانند "روشن کردن دستگاه PCI")
پس از اینکه WOL را در سیستم عامل دستگاه فعال کردیم، باید مطمئن شویم کارت شبکه ما واقعاً از این ویژگی پشتیبانی می کند. نام کارت شبکه به عنوان یک آرگومان.
در مورد من، نام اختصاص داده شده به رابط اترنت ens5f5 است، بنابراین من اجرا می کنم:
$ sudo ethtool ens192
فرمان پیام زیر را تولید می کند:
تنظیمات ens192: پورت های پشتیبانی شده: [ TP ] حالت های پیوند پشتیبانی شده: 1000baseT / Full 10000 BaseT / کامل استفاده از قاب مکث پشتیبانی شده: خیر پشتیبانی از مذاکره خودکار: خیر حالت های پشتیبانی شده FEC: گزارش نشده است حالت های لینک تبلیغ شده: گزارش نشده است استفاده از فریم مکث تبلیغ شده: خیر مذاکره خودکار آگهی شده: خیر حالت های FEC تبلیغ شده: گزارش نشده است سرعت: 10000 مگابیت بر ثانیه دوبلکس: فول بندر: جفت پیچ خورده فیاد: 0 فرستنده و گیرنده: داخلی مذاکره خودکار: خاموش MDI-X: نامشخص پشتیبانی از Wake-on: uag بیدار شدن: د پیوند شناسایی شد: بله
خط خروجی متناظری که در مورد ما میخواهیم متوجه شویم، Wake-on: 06:09 و Wake است. حرف در اینجا شبیه وضعیت عملکرد است.
بیایید روی معنای این خطوط تمرکز کنیم.
مقدار مرتبط با کلید "Supports Wake-on" نشان می دهد که کدام نوع روش بیدار شدن پشتیبانی می شود:
| LETTER [19659025] VALUE | |||||
|---|---|---|---|---|---|
| p | بیدار شدن با فعالیت بدنی | ||||
| u | بیدار شدن با پیامهای unicast | ||||
| m | m | m | در مورد دریافت پیام های پخش | ] a | Wake up by ARP |
| g | Wake up by MagicPacket ™ | ||||
| s | s | MagicPacket19027 SecureOnt ] d | غیرفعال |
وضعیت فعلی عملکرد Wake On Lan در زیر کلید "Wake-on" نمایش داده می شود. در این مورد، می بینیم که آن غیرفعال است ("d"). چگونه می توانیم این کار را انجام دهیم؟ در بالا، ethtool را با گزینه – s شروع کردیم
این فرم کوتاه برای –change است و همانطور که از نام آن پیداست، باید هر بار که میخواهیم تغییری در رابط شبکه ایجاد کنیم که به عنوان آرگومان ارسال میکنیم استفاده شود.
در این مورد، ما Wake On Lan را در حالت g فعال کرده ایم زیرا می خواهیم از MagicPacket برای بیدار کردن سیستم از راه دور استفاده کنیم.
برای اطمینان از اینکه تغییر به درستی اعمال شده است، می توانیم وضعیت WOL را دوباره بررسی کنیم. :
$ sudo ethtool ens192 | grep Wake-on پشتیبانی از Wake-on: pg Wake-on: gنحوه دائمی کردن تغییر با قانون udev
روشن کردن عملکرد Wake On Lan مانند ما کافی نیست، زیرا تغییرات در راهاندازی مجدد دستگاه ادامه نخواهند داشت.
ما باید راهی برای روشن کردن این گزینه به طور خودکار در هنگام بوت پیدا کنید.
راه های زیادی برای انجام این کار وجود دارد
برای این آموزش، یک قانون udev ایجاد می کنیم که وقتی یک رابط شبکه پیدا شد، دستور مناسب را اجرا می کند.
برای نوشتن یک قانون udev، اولین کاری که باید انجام دهیم این است که توجه کنیم، این آدرس MAC رابط شبکه است که MagickPacket به آن ارسال خواهد شد، در این مورد ens192 است.
دریافت رابط. آدرس بسیار ساده است، تنها کاری که باید انجام دهیم این است که دستور زیر را اجرا کنیم:
$ cat / sys / class / net // آدرس در مثال بالا،
باید با واقعی جایگزین شود. نام رابط شبکه ما قانون udev خود را بر اساس MAC ADDRE قرار خواهیم داد. رابط SS برای اطمینان از اینکه فقط برای این دستگاه اعمال می شود.
قانون ما به این صورت است:
ACTION == "add", ATTRS {address} == "XX: XX: XX: XX: XX: XX ", RUN + =" / usr / sbin / ethtool -s wol g "این قانون در رویداد" افزودن "به دستگاهی که با MAC ADDRESS مشخص شده مطابقت دارد اعمال خواهد شد (آن را با آدرس واقعی خود در آدرس جایگزین کنید. قانون). برای فعال کردن دستی تابع Wake On Lan و نحوه نوشتن یک قانون udev به طوری که هر زمان که یک رابط شبکه شناسایی شد، دستور مناسب به طور خودکار اجرا شود. ماشین خاموش است
اول از همه، دستگاهی که برای ارسال بسته استفاده می کنیم باید پیدا شود من در همان زیرشبکه ماشین هدف هستم.
در واقع امکان ارسال بسته از یک زیرشبکه دیگر یا از اینترنت وجود دارد، اما روتر باید از این عملکرد پشتیبانی کند و برای پخش MagicPacket پیکربندی شود.
A برنامه ای که می توانیم برای ارسال MagicPacket استفاده کنیم بستگی به توزیعی دارد که روی آن اجرا می کنیم. از iproute2 و net-tools
احتمالاً به طور پیش فرض نصب شده است و شامل ابزار ether-wake است:
$ sudo dnf install net-tools
اگر از دبیان یا یکی از مشتقات متعدد آن استفاده می کنیم، می توانیم نصب و استفاده از ابزار etherwake :
$ sudo apt-get update && sudo apt-get install etherwake
اگر توزیع مورد علاقه ما Archlinux است، در عوض می توانیم ابزار wol را برای ارسال MagicPacket نصب و استفاده کنیم:
$ sudo pacman -Sy wol [19659018] همه برنامههایی که در بالا ذکر شد تقریباً یکسان عمل میکنند. ] $ etherwake XX: XX: XX: XX: XX: XX
نتیجه گیری
در این آموزش، ویژگی Wake On Lan چیست و چگونه می توان از آن برای روشن کردن دستگاه از راه دور با ارسال MagicPacket استفاده کرد.
ما دیدیم که چگونه آزمایش کنیم که این ویژگی واقعاً در سیستم عامل دستگاه و در رابط شبکه با استفاده از ابزار ethtool پشتیبانی می شود، چگونه آن را به صورت دستی فعال کنیم، و چگونه یک قانون udev بنویسیم تا هر زمان که رابط شناسایی شد به طور خودکار فعال شود.
سرانجام، دیدیم که چگونه میتوان MagicPacket را با استفاده از برنامههایی مانند etherwake یا wol ارسال کرد.