참조 원문 : Linux Backup Server: Remote Wakeup, Automatic Shutdown
관련 글 : HOWTO: Set your system up for Wake On LAN (WOL)

  WoL은 Wake on Lan의 약자로서 브로드캐스트를 통해 매직 패킷이라고 불리는 예약된 패킷을 보내 특정 MAC의 NIC를 사용하는 컴퓨터를 부팅시키는 기능입니다. 경우에 따라서는 상당히 유용하게 쓰일 수 있고 특히 우리나라의 경우 공유기가 많이 사용되는데 이 공유기에서 WoL을 지원(매직 패킷을 보내는 기능)하는 경우가 많습니다. 이걸 이용하면 외부에서 집의 공유기로 접속하여 내부 네트워크의 컴퓨터(보통 자신의 PC)를 부팅시킨 후 원격 데스크탑이나 기타 프로그램을 이용해 자신의 컴퓨터를 이용할 수 있습니다.

  먼저 BIOS에서 WoL을 지원해야 하는데 왠만한 구형이 아닌 이상은 대부분 지원을 하기 때문에 걱정은 없지만 기본적으로 기능이 활성화되어 있지 않다는 것이 문제입니다. 따라서 자신의 메인보드 매뉴얼을 참조하여 기능을 먼저 활성화시켜야 합니다.

  이제 리눅스에서 아래의 명렁어로 NIC의 WoL 기능을 사용할 수 있는지, 그리고 기능이 활성화되어 있는지 확인합니다. 참고로 실행에는 루트 권한이 필요합니다.

$ sudo ethtool eth0 | grep -i wake-on
    Supports Wake-on: g
    Wake-on: d

  'Supports Wake-on'에서 g는 'Wake on MagicPacket'으로 이 NIC는 WoL 기능을 지원한다는 뜻입니다. 다음으로 'Wake-on'인데 d는 'Disabled'로 현재 비활성화된 상태입니다. 즉, NIC가 지원은 하지만 비활성화 상태입니다. 아래는 WoL 기능을 활성화시키고 확인하는 것을 보여주고 있습니다.

$ sudo ethtool -s eth0 wol g
$ sudo ethtool eth0 | grep -i wake-on
    Supports Wake-on: g
    Wake-on: g

  'Supports Wake-on'과 'Wake-on'에 모두 g가 있으면 해당 PC를 대상으로 WoL을 사용할 준비가 완료된 겁니다. 아래의 명령어로 NIC의 MAC 주소를 알아냅니다.

$ ifconfig eth0 | grep -i hwaddr
eth0      Link encap:Ethernet  HWaddr 00:25:11:75:dc:91 

  이제 컴퓨터를 끈 후 같은 네트워크에 있는 다른 리눅스 머신에서 아래와 같이 명령어를 사용하면 WoL을 사용하여 컴퓨터를 부팅시킬 수 있습니다.

$ wakeonlan -p 8 00:25:11:75:dc:91

  '-p 8' 옵션은 매직 패킷을 UDP 포트 8번으로 보내라는 옵션입니다. 디폴트로 보내는 포트는 UDP 9번인데 테스트용 포트로서 패킷이 그냥 폐기되는 경우가 많기 때문에 아무거나 다른 포트 번호를 향해 보내는 것이 좋습니다. 이왕이면 8번처럼 아무 서비스에도 안 쓰이는 번호에 보내는 것이 더 좋으며 대표적인 서비스의 포트 번호들은 /etc/services 파일에 있으므로 해당 파일을 참조해 안 쓰이는 UDP 포트를 사용하도록 합니다.

  이제 다 끝난 것처럼 보이지만 부팅을 하는 과정에서 이 설정이 다시 초기화되기 때문에 부팅과 관련된 스크립트를 약간 손봐서 앞서 했던 설정을 자동화시킬 필요가 있습니다. 레드햇 계열의 배포판일 경우에는 /etc/rc.local 파일에 아래와 같은 내용을 추가하여 부팅할 때마다 WoL을 활성화시킬 수 있습니다.

# Setup WOL for next boot
stat_busy "Setting WOL to Active"
/usr/sbin/ethtool -s eth0 wol g
stat_done

  데비안 계열의 배포판이라면 /etc/network/interfaces 파일에서 WoL을 사용할 NIC가 적힌 줄(예: iface eth0 inet dhcp)의 아래 부분에 다음의 내용을 추가하여 인터페이스가 올라간 후(대표적으로 부팅 시)와 내려간 후(대표적으로 종료 시)마다 WoL을 활성화시킬 수 있습니다.

post-up /usr/sbin/ethtool -s $IFACE wol g
post-down /usr/sbin/ethtool -s $IFACE wol g

  그래도 안 되는 경우가 있는데 그 중 한 해결책으로 저의 경우 우분투 9.10의 환경에서 /etc/network/interfaces 파일에 아래와 같이 드라이버에 wake up flag를 enabled로 설정해줬습니다.

post-up echo enabled > /sys/class/net/eth0/device/power/wakeup
post-down echo enabled > /sys/class/net/eth0/device/power/wakeup

  이와 관련된 내용은 http://lowtek.ca/roo/2009/wake-on-lan/ 에서 좀 더 자세히 보실 수 있습니다.

출처:http://www.myservlab.com/98