כיצד להפעיל Wake-on-LAN (WOL) בלינוקס


התכונה Wake-on-LAN (WoL) מאפשרת לך להעיר מרחוק מחשב Linux על ידי שליחת חבילת Ethernet (חבילת קסם) מיוחדת המכילה את כתובת ה- MAC של המארח שברצונך להפעיל.

לפני הפעלת WoL ב-Linux, עליך לוודא שלוח האם שלך תומך בתכונה זו ולהפעיל אותה בהגדרת ה-BIOS. הפעל מחדש את המחשב המארח ופתח את הגדרות ה-BIOS (UEFI). השם של האפשרות WoL עשוי להשתנות בהתאם לספק, לדגם לוח האם ולגרסת הקושחה. אפשרות זו יכולה להיקרא

Wake on PCI/PCI-E

,

Power or Resume on PCI/PCI-E

,

S5 Wake on LAN

. חפש והפעל אפשרות זו. שמור את הגדרות ה- BIOS.

הכלי ethtool משמש בדרך כלל לניהול Wake On LAN בלינוקס. התקן אותו:

$ sudo apt install ethtool

רשימת ממשקי רשת:

$ ifconfig

העתק את שם הממשק של מתאם ה- Ethernet LAN והפעל את הפקודה:

$ sudo ethtool enp3s0 | grep "Wake-on"

במקרה זה, WoL מושבת (d).

הפעל Wake on LAN עבור המתאם הספציפי:

$ sudo ethtool --change enp3s0 wol g

האפשרות Wake On Lan אמורה להשתנות ל-g (Wake on MagicPacket).

ה '

netlink error: cannot enable unsupported WoL mode (offset 36)

' מציין ש- WoL אינו נתמך על-ידי מתאם הרשת או אינו זמין ב- BIOS.

עכשיו אתה יכול להעיר מרחוק את מארח Linux שלך. עם זאת, אפשרות WoL של ממשק הרשת תתאפס בעת אתחול מחדש. קיימות מספר דרכים להפעיל באופן אוטומטי את Wake on LAN עבור המתאם בעת אתחול המחשב.

NetworkManager הוא כלי ברירת המחדל לניהול רשתות בהפצות לינוקס רבות, כולל אובונטו, רוקי ודביאן. במנהל הרשתות, באפשרותך להפעיל WoL עבור מתאם באמצעות הפקודה nmcli:

$ nmcli con show

העתק את השם של חיבור ה- Ethernet (קווי בדוגמה זו) והפעל את WoL:

$ sudo nmcli c modify "wired" 802-3-ethernet.wake-on-lan magic

ודא ש- Wake on LAN מופעל בממשק:

$ nmcli c show "wired" | grep 802-3-eth

עבור הפצות לינוקס אחרות, אתה יכול להשתמש systemd כדי להפעיל WakeOnLan בעת האתחול. צור יחידה מערכתית חדשה:

$ sudo systemctl edit wol.service --full --force

הוסף את התצורה הבאה:

[Unit]
Description=Enable Wake-on-LAN
After=network-online.target
[Service]
Type=oneshot
ExecStart=/sbin/ethtool --change enp3s0 wol g
[Install]
WantedBy=network-online.target

הפעל את השירות:

$ sudo systemctl daemon-reload
$ sudo systemctl enable wol.service
$ sudo systemctl start wol.service

ודא שהשירות פועל:

$ systemctl status wol

עכשיו אתם יכולים לבדוק איך Wake on Lan עובד על שירות האחסון הזה. העתק את כתובת ה- MAC של מתאם הרשת שבו הפעלת את WoL.

ודא שמצב שינה מופעל ב-Linux:

$ sudo systemctl status sleep.target suspend.target hibernate.target hybrid-sleep.target

העבר את מארח Linux למצב שינה:

$ sudo systemctl suspend

כדי לשלוח חבילת קסם בלינוקס, אתה יכול להשתמש בכלי wakeonlan או etherwake:

$ sudo apt-get install wakeonlan etherwake

כדי להעיר מחשב מרחוק, הזן את כתובת ה- MAC שלו (מנות WoL אינן מנותבות, ולכן מחשבים חייבים להיות באותו קטע LAN):

wakeonlan <MAC-address>

או:

etherwake <MAC-address>

לאחר קבלת חבילת הקסם, המחשב צריך להתעורר. שים לב ש-WoL אינו דורש פתיחת היציאה בחומת האש של Linux. חבילת השידור WoL UDP מתקבלת ומעובדת ישירות על-ידי מתאם הרשת מבלי להשתמש במחסנית הרשת של Linux.