Функция пробуждения по локальной сети – это функция, которая позволяет вам включать компьютер с другого устройства по сети. Он делает это путем отправки пакета данных. Сетевой драйвер принимающего компьютера обрабатывает этот пакет данных и пробуждает компьютер.
В этой статье я расскажу вам, как включить Wake-on-LAN в Ubuntu 22.04.
Первым делом открываем терминал и выясняем наименование адаптера в системе, вводим команду:
1 |
ip a |
Вывод будет такой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
admintm@LinuxHm:~$ ip a 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo valid_lft forever preferred_lft forever inet6 ::1/128 scope host valid_lft forever preferred_lft forever 2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000 link/ether 74:d4:35:dd:c9:f0 brd ff:ff:ff:ff:ff:ff inet 192.168.99.66/24 brd 192.168.99.255 scope global dynamic noprefixroute enp2s0 valid_lft 20511sec preferred_lft 20511sec inet6 fe80::ed1d:3214:5bd:4bb9/64 scope link noprefixroute valid_lft forever preferred_lft forever admintm@LinuxHm:~$ |
Как видно из вывода наименование адаптера enp2s0, если у вас другое наименование, то меняем его на свое значение в скриптах и командах. Далее установим утилиту для работы с сетевыми адаптерами командой:
1 |
sudo apt install ethtool -y |
Командой выясняем, поддерживает ли сетевая карта режим пробуждения по локальной сети:
1 |
sudo ethtool enp2s0 |
Смотрим вывод команды и ищем в нем строку Wake-on:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
admintm@LinuxHm:~$ sudo ethtool enp2s0 Settings for enp2s0: Supported ports: [ TP MII ] Supported link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Supported pause frame use: Symmetric Receive-only Supports auto-negotiation: Yes Supported FEC modes: Not reported Advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full 1000baseT/Half 1000baseT/Full Advertised pause frame use: Symmetric Receive-only Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Link partner advertised link modes: 10baseT/Half 10baseT/Full 100baseT/Half 100baseT/Full Link partner advertised pause frame use: Symmetric Link partner advertised auto-negotiation: Yes Link partner advertised FEC modes: Not reported Speed: 100Mb/s Duplex: Full Auto-negotiation: on master-slave cfg: preferred slave master-slave status: slave Port: Twisted Pair PHYAD: 0 Transceiver: external MDI-X: Unknown Supports Wake-on: pumbg Wake-on: d Link detected: yes |
Выражение “Wake-on:d” указывает на то, что функция wake-on-lan сетевой карты поддерживается, но отключена.
Для активации WOL достаточно ввести команду:
1 |
sudo ethtool -s enp2s0 wol g |
и вы увидите что флаг в выводе поменялся на g:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
Settings for enp2s0: ... Speed: 1000Mb/s Duplex: Full Auto-negotiation: on master-slave cfg: preferred slave master-slave status: slave Port: Twisted Pair PHYAD: 0 Transceiver: external MDI-X: Unknown Supports Wake-on: pumbg Wake-on: g Link detected: yes |
Но после перезагрузки, данная настройка слетит, что бы её закрепить, создадим скрипт, который будет активировать WOL автоматически. Для этого возвращаемся к терминалу и вводим команду:
1 |
sudo --preserve-env systemctl edit --force --full wol-enable.service |
Добавляем сам скрипт и сохраняем его.
1 2 3 4 5 6 7 8 9 |
[Unit] Description=Enable Wake-up on LAN [Service] Type=oneshot ExecStart=/sbin/ethtool -s enp2s0 wol g [Install] WantedBy=basic.target |
После перезапускаем демон, и активируем созданный скрипт!
1 2 3 4 |
admintm@LinuxHm:~$ sudo systemctl daemon-reload admintm@LinuxHm:~$ sudo systemctl enable wol-enable.service Created symlink /etc/systemd/system/basic.target.wants/wol-enable.service → /etc/systemd/system/wol-enable.service. admintm@LinuxHm:~$ |
Перезагружаем ПК и радуемся результату!