مقدمه
در مواقعی که در یک شبکه فعالیت میکنید، گاهی این اتفاق
میافتد که نیاز به روشن کردن سیستم از راه دور دارید، البته بسیاری مواقع
افراد به جای روشن کردن از راه دور عکس قضیه را عملی میکنند یعنی کامپیوتر
را برای تمام مدت روشن میگذارند، چنین عملی باعث میشود تا افرادی که
مجاز به دسترسی نیستند مدت زمان بیشتری برای دسترسی به سیستم داشته باشند.
اما آیا راهی برای روشن کردن سیستم از راه دور وجود دارد؟!
بسیاری از
کاربران هنگامی که یک کارت شبکه خریداری میکنند در دفترچهی راهنما یا
برروی جعبهی کارت شبکه "Wake On Lan" را دیدهاند.در این مقاله قصد دارم
تا شما را با روش استفاده از این قابلیت در سیستم گنو/لینوکس آشنا کنم.
آنچه شمانیاز خواهید داشت یک کارت شبکه که از قابلیت «Wake on Lan»
پشتیبانی کند و روشی برای ارسال سیگنال برای چنین کارت شبکهای است.
بسیاری
از کارتهای شبکه امروزی از قابلیت «WakeOn Lan» پشتیبانی میکنند، اگر
کارت شبکهی شما «on-board» است، به دفترچه راهنمای مادربورد خود مراجعه
کنید، اغلب مادربوردهای جدید درای کارت شبکههایی با امکان «Wake On Lan»
هستند. برای فعال کردن این قابلیت در چنین مادربوردهایی کافیست در زمان
بالا آمدن سیستم وارد قسمت تنظیم BIOS شوید و در قسمت «Power Management»
گزینههای «wakeonlan» یا «netboot» یا «wake onring events» را جستجو
کنید. بسته به نوع مادربورد (نوع چپست بایوسی که در آن استفاده شده است)
یکی از گزینههای بالا برای فعال کردن قابلیت Wake on Lan استفاده خواهند
شد.
۱) بستههای جادویی
برای روشن کردن یک کامپیوتر از راه دور
باید از طریق یک نرم افزار یک پیغام برای کارت شبکه بفرستید. این پیغامها
را «بستههای جادویی شبکه» یا «Magic Network Packets» مینامند. برای
استفاده از از این بستههای جادویی همانطور که اشاره کردیم نیاز به یک
کارت شبکه با قابلیت Wake on Lan و نیز برنامهای برای ارسال این بستهها
در شبکه دارید. نیازهای سخت افزاری به کارت شبکهی شما بسته است. اما
برنامهای که این بستهها را ارسال کند و بتوانید از طریق آن این قابلیت را
مدیریت کنید را به سادگی میتوانید در توزیع خودتان پیدا کنید. برای این
کار من از برنامههای "ethtool" و"wakeonlan" استفاده کردهام. البته
میتوانید از "etherwake" به جای "wakeonlan" استفاده کنید.
۲) اجرا
برای
نصب برنامههای ذکر شده میتوانید در توزیعهایی که بر اساس دبیان هستند
از دستور "apt-get" استفاده کنید، اگر از SuSE استفاده میکنید از YaST و
در سایر توزیعها از مدیر بستههای همان توزیع استفاده کنید. پس از نصب
برنامهی ethtool برای بررسی وضعیت در خط فرمان دستور زیر رامینویسیم:
root@tux:~# ethtool eth۰
Settings for eth۰:
Supports Wake-on: g
Wake-on: d
Link detected: yes
در
اینجا "g" به این معناست که قابلیت wakeonlan در کارت شبکهی شما وجود
دارد اما "d" در خط پایینی فعال نبودن این قابلیت را اعلام میکند. برای
فعال کردن بستههای جادویی شبکه دستور زیر را به کار میبریم:
root@tux:~# ethtool -s eth۰ wol g
برای اطمینان از این که این قابلیت فعال شده است میتوانید دستور اول را دوباره وارد کنید :
root@tux:~# ethtool eth۰
Settings for eth۰:
Supports Wake-on: g
Wake-on: g
Link detected: yes
دومین "g" که در خط "Wake-on: g" آمده است به معنی فعال بودن قابلیت کار با بستههای جادویی شبکه است.
دیگر
مطمئن هستیم که این قابلیت فعال شده، حال به آدرس کامپیوتر مورد نظر در
شبکه نیاز داریم. طبیعی است که آدرس کامیپیوتر مقصد برای روشن کردن آن نیاز
است. در اصل ما به آدرس MAC کامپیوتر مورد نظر نیاز داریم. برای اطلاع از
این آدرس کافیست در کامپیوتر مقصد دستور ifconfig را اجرا کنید:
tux@target:~$ /sbin/ifconfig
eth۰ Link encap:Ethernet HWaddr FF:AA:BB:CC:DD:EE
inet addr:۱۹۲.۱۶۸.۰.۱ Bcast:۱۹۲.۱۶۸.۰.۲۵۵ Mask:۲۵۵.۲۵۵.۲۵۵.۰
inet۶ addr: fe۸۰::۲۰a:e۶ff:fef۶:a۳f۴/۶۴ Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:۱۵۰۰ Metric:۱
RX packets:۲۲۱۸۳۹۰ errors:۰ dropped:۰ overruns:۰ frame:۰
TX packets:۳۰۹۸۴۴۰ errors:۰ dropped:۰ overruns:۰ carrier:۰
collisions:۰ txqueuelen:۱۰۰۰
RX bytes:۱۶۲۴۰۰۸۵۷۸ (۱.۵ GiB) TX bytes:۱۳۶۸۳۱۰۶۶۱ (۱.۲ GiB)
Interrupt:۱۰ Base address:۰xd۴۰۰
در
اینجا FF:AA:BB:CC:DD:EE آدرس MAC است.اگر کامپیوتر مقصد در دسترستان نیست
برای پیدا کردن آدرس MAC آن کافیست ابتدا به آن کامپیوتر "ping" کنید،سپس
به "arp cache" سری بزنید. برای نمونه اگر در شبکهی من ماشینی با نام
sun.my.flat وجود داشته باشد و بخواهم آدرس MAC آن را به دست بیاورم در خط
فرمان تایپ میکنم:
gnu@myflat:~$ ping -c ۱ sun
PING sun.my.flat (۱۹۲.۱۶۸.۱.۱) ۵۶(۸۴) bytes of data.
۶۴ bytes from sun (۱۹۲.۱۶۸.۱.۱): icmp_seq=۱ ttl=۶۴ time=۰.۲۰۲ ms
--- sun.my.flat ping statistics ---
۱ packets transmitted, ۱ received, ۰% packet loss, time ۰ms
rtt min/avg/max/mdev = ۰.۲۰۲/۰.۲۰۲/۰.۲۰۲/۰.۰۰۰ ms
gnu@myflat:~$ /usr/sbin/arp sun
Address HWtype HWaddress Flags Mask Iface
sun ether FF:AA:BB:CC:DD:EE C eth۰
دستور
"arp" در اینجا برای یافتن آدرس MAC استفاده شده است. فقط توجه داشته
باشید که شما باید ابتدا ماشین مقصد را از طریق IP یا نام ماشین ping کنید و
سپس از دستور "arp" استفاده کنید. بسیار خوب، پس از آموختن آدرس MAC
کامپیوتر مقصد حالا میتوانید از راه دور روشن یا خاموشش کنید.برای این کار
به برنامهای نیاز دارید تا بستههای "wakeonlan" را ارسال کند.
برنامههای مشهور "etherwake" و "wakeonlan" هستند که در اینجا من از
"wakeonlan" استفاده کردهام. یکی از مزایای "wakeonlan" امکان استفاده
توسط تمام کاربران است که دربارهی "etherwake" قضیه عکس است و فقط کاربر
ریشه میتواند از آن استفاده کنید.
برای ارسال پیغام روشن شدن، کافیست در کامپیوتر راه دور دستور زیر را وارد کنید:
gnu@myflat:~$ wakeonlan
Sending magic packet to ۲۵۵.۲۵۵.۲۵۵.۲۵۵:۹ with FF:AA:BB:CC:DD:EE
همان
طور که میدانید FF:AA:BB:CC:DD:EE آدرس MAC کامپیوتر مقصد یا کامپیوتری
است که میخواهید از راه دور روشن کنیدش. به همین سادگی .... اگر همه چیز
درست پیش رفته باشد کار تمام است.