Ubuntu 16.04에서 WOL (Wake On Lan)을 활성화하는 방법


26

Ubuntu 16.04 LTS에서 WOL (Wake On Lan)을 활성화하는 방법은 무엇입니까?

답변:


21

나는 나를 위해 더 나은 방법을 찾았습니다. 최소한 더 깨끗한 방법. 분명히 우분투 변경 벼락 출세를 위해 systemd 우분투 15.04, 우분투 16.04에, 너무 아마 다음 버전. 나는 두 시스템 모두에 익숙하지 않지만 이것은 나를 위해 일했다.

인터넷 검색 우분투 16 wol 및 기타 유사한 검색을 하면서이 게시물을 여러 번 발견 했기 때문에 이것을 게시하고 있습니다. 이것은 다른 누군가를 도울 수 있습니다.

WOL이 계속 작동하려면 시스템을 부팅 할 때마다 다시 활성화해야했습니다. 이 작업을 수동으로 수행하지 않기 위해 systemd를 사용했습니다. 이것이 내가 한 일입니다.

  1. 먼저 파일을 작성하십시오 /etc/systemd/system/wol@.service(@ 기호 유지). 이것을 넣으십시오 :

    [Unit]
    Description=Wake-on-LAN for %i
    Requires=network.target
    After=network.target
    
    [Service]
    ExecStart=/sbin/ethtool -s %i wol g
    Type=oneshot
    
    [Install]
    WantedBy=multi-user.target
    
  2. 부팅시 인터페이스에 대해이를 활성화하고 다음 명령을 실행하십시오 (인터페이스로 eth3 변경).

    systemctl enable wol@eth3
    

    다음과 같이 보일 것입니다 :

    Created symlink from /etc/systemd/system/multi-user.target.wants/wol@eth3.service to /etc/systemd/system/wol@.service.
    
  3. 활성화되어 있는지 확인하려면 다음 명령을 실행 (사용자 인터페이스 변경 eth3에를) 그것은 반환해야합니다 enabled:

    systemctl is-enabled wol@eth3
    
  4. 이를 테스트하려면 재부팅하고 실행하십시오 (인터페이스로 eth3 변경).

    ethtool eth3
    

    다음과 같은 줄이 나타납니다.

    Wake-on: g
    

출처 :


2
+1이 더 좋습니다. 받아 들여 져야합니다.
Stefanos Kalantzis

19

Ubuntu 16.04에서는 TLP 전원 관리로 WOL을 비활성화하지 않도록 설정 WOL_DISABLE=N했습니다 /etc/default/tlp.

http://linrunner.de/en/tlp/docs/tlp-configuration.html

추가 NETDOWN=no/etc/default/halt종료하는 동안 네트워크 카드 전원 끄기 방지하기 위해

/etc/network/interfaces정적 네트워크 구성을 사용하는 경우 Wake on LAN in을 활성화하십시오 .

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface

auto lo
iface lo inet loopback
# The primary network interface

auto eth0
iface eth0 inet static
        address 192.168.0.10
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-nameservers 192.168.0.1
        up ethtool -s eth0 wol g

BIOS에서 LAN에서 깨우기를 활성화하고 BIOS 설정으로 들어가서 "Wake up on PCI event", "Wake up on LAN"또는 이와 유사한 것을 찾으십시오. 사용 가능하도록 변경하십시오. 설정을 저장하고 재부팅하십시오.

https://help.ubuntu.com/community/WakeOnLan

경고 일부 마더 보드 / 네트워크 컨트롤러는 콜드 부팅에서 WOL을 지원하지 않습니다 (S5 상태, 시스템 전원이 물리적으로 꺼졌다가 다시 켜집니다). 이 경우 적어도 하나의 전원주기 (전원 켜기, 종료)를 수행해야합니다. 이 문제를 완화하기 위해 AC가 복원 될 때 BIOS를 켜고 나중에 Ubuntu 내에서 종료를 예약하도록 BIOS를 구성 할 수 있습니다. 자세한 내용은 마더 보드 설명서를 참조하십시오.


이것은 14.04 LTS에서 나를 위해 일했습니다. 고맙습니다!
TenLeftFingers

약 두 주석 WOL_DISABLE=NNETDOWN=no의 일부가되어야 help.ubuntu.com/community/WakeOnLan
Alecz

3

WOL이 작동하려면 전원을 끌 때 시스템에서 이더넷 인터페이스가 올바르게 종료되어 있는지 확인하십시오.

다음을 시도하십시오 :

  1. 라는 bash는 스크립트 작성 wol_poweroff.sh/etc/rc6.d/ 디렉토리 :

    sudo nano /etc/rc6.d/wol_poweroff.sh
    
  2. 이 코드를 넣으십시오.

    #!/bin/bash
    ifconfig eth0 down
    poweroff
    
  3. 이를 /etc/rc0.d 디렉토리에 복사하십시오 (따라서 halt 와도 작동 함 ).

    sudo cp /etc/rc6.d/wol_poweroff.sh /etc/rc0.d/wol_poweroff.sh
    
  4. 둘 다 실행 가능하게 만드십시오.

    sudo chmod 755 /etc/rc6.d/wol_poweroff.sh
    sudo chmod 755 /etc/rc0.d/wol_poweroff.sh
    

이제 WOL 도구를 사용 sudo shutdown now하거나 sudo poweroff사용하여 컴퓨터의 전원을 끄고 마법 패킷을 보내어 작동하는지 확인하십시오 .


그것이 나를 위해 일한 유일한 것입니다. launchpad.net의 버그 보고서에서 이러한 단계를 찾았습니다.

저자 Robbie Williamson에 따르면 다음과 같은 이유로 작동합니다.

WOL이 작동하게하려면 시스템 종료의 일부로 이더넷 인터페이스를 올바르게 종료해야합니다. Linux는 일반적으로 7 가지의 다른 실행 레벨 (또는 운영 모드)을 가지고 있다는 점에 유의하여 실행 레벨 rc0 및 rc6의 일부로 수행해야합니다.

rc0.d-시스템 정지

rc1.d-단일 사용자 모드

rc2.d-네트워킹 단일 사용자 모드

rc3.d-다중 사용자 모드-텍스트 모드로 부팅

rc4.d-아직 정의되지 않은

rc5.d-다중 사용자 모드-X Windows에서 부팅

rc6.d-종료 및 재부팅


출처 : https://bugs.launchpad.net/ubuntu/+source/ifupdown/+bug/981461


2

터미널에서 다음을 실행하십시오.

sudo ethtool -s {your network interface} wol g 
sudo ethtool {your network interface}

두 번째 명령을 작성한 후 LAN 옆에 깨어날 g 가 표시됩니다.

출처


2

NetworkManager를 사용하는 경우 다음을 통해 WOL을 활성화 할 수 있습니다 nmcli.

nmcli connection show

관심있는 장치에 대한 "802-3-ehternet"TYPE의 연결 이름을 기억하십시오. 이름이 "유선 연결 1"이라고 가정하십시오. 그런 다음 올바르게 수정하십시오.

nmcli connection modify "Wired connection 1" 802-3-ethernet.wake-on-lan magic

MAC 주소를 얻으려면 :

nmcli connection show "Wired connection 1" | grep 802-3-ethernet.mac-address

이제부터는 이전 단계의 LAN 카드의 MAC 주소 인 wakeonlan 1a:2b:3c:4d:5e:6f명령으로 동일한 LAN의 다른 시스템에서 시스템을 켜고 끌 수 있습니다 1a:2b:3c:4d:5e:6f.


1

@nkef가 제안한 매개 변수 외에도 LAN 어댑터 (여기서 eth0)에 고정 IP 설정 대신 DHCP를 사용하는 경우 / etc / network / interfaces 에서 다음을 설정할 수 있습니다 .

auto lo
iface lo inet loopback

auto eth0
iface eth0 inet dhcp
        ethernet-wol g

(우분투 16.04 LTS에서 테스트).


1

이것은 우분투 18.04 (헤드리스 / 최소 설치)에서도 나에게 물었습니다. 불행히도 때때로 여기에 나열된 답변은 경쟁 조건을 만들거나 시스템과 같은 사람들과 싸울 때 신뢰할 수있는 솔루션을 제공하지 않을 것입니다. netplan 및 udev.

나는이 접근법을 처음에도 시도했지만 작동하는 것처럼 보였으며, 시스템 BIOS가 옵션으로 예약 된 AC를 제공하지 않기 때문에 매일 저녁 WakeOnLan을 통해 시스템을 부팅하여 백업을 실행하도록 예약하고 있습니다.

며칠 동안 작동 한 다음 깨우기를 거부하고 수동으로 전원을 켜고 ethtool을 실행하면 WoL이 비활성화 된 것으로 나타났습니다.

    Wake-on: d

그래서 지난 몇 년 동안 시스템에서 시스템의 일부를 인계하여 다른 문제가 발생하여 다시 시작해야한다고 생각했습니다. 여기서 시작하십시오.

WakeOnLan = .. .. 기본값은 꺼짐입니다.

https://www.freedesktop.org/software/systemd/man/systemd.link.html

온라인 예제는 다음과 같이 표시됩니다.

/etc/systemd/network/50-wired.link

[Match]
MACAddress=<MAC ADDRESS>

[Link]
WakeOnLan=magic

이것은 여전히 ​​작동하지 않았습니다. 그런 다음이를 보았습니다.

udevadm test-builtin net_setup_link  /etc/systemd/network/50-wired.link

결과 :

Load module index
Parsed configuration file /lib/systemd/network/99-default.link
Parsed configuration file /etc/systemd/network/50-wired.link
Parsed configuration file /run/systemd/network/10-netplan-eno1.link

그리고 /run/systemd/network/10-netplan-eno1.link에서 무엇을 찾을 수 있습니까?

[Match]
MACAddress=<MAC ADDRESS>

[Link]
Name=eno1
WakeOnLan=off

해결책 :

  1. 넷 플랜 제거,
  2. 넷 플랜 구성을 통한 네트워킹 설정
  3. systemd .link 파일을 더 높은 우선 순위로 설정하십시오.

systemd .link 파일을 이미 가지고 있으므로 간단히 00-wired.link로 이름을 바꾸고 재부팅 한 다음 ethtool eno1 보고서를 보냈습니다.

    Wake-on: g

WoL을 사용하려는 목적으로 만 추가 서비스가없는 경우

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.