우분투(Ubuntu) 홈서버 구축기(1) - WOL 설정
1. 개요
AWS 프리티어가 종료되고 더 이상 공짜로 이용할 수 없게 되어서 큰 맘먹고 개인 홈서버를 구축하기로 했다. 영상 처리 같은 고스펙의 PC가 필요 없는 비루한 개발자 입장에서 기존에 돌리던 웹서버와 데이터베이스, 도커 등을 무리 없이 돌릴 수 있을 정도의 PC가 필요했다. 그러던 와중 저렴한 가격에 할인까지 되어서 판매되고 있는 미니 PC 발견. 위에 사진에 보이는 애즈락 미니 PC A300 되시겠다. 사양은 다음과 같다.
- Ryzen 3200G, 8GB 메모리, 240GB SSD
전기를 눈곱만치 먹는 초 저전력 CPU는 아니지만 개발할 때만 켜놓기로 마음먹었기 때문에 이 정도로 타협했다. 이 정도면 내가 원하는 프로그램들은 무리 없이 돌릴 수 있을 듯하다.
인텔 CPU로도 갈 수 있었지만 요즘 라이젠을 쓰고 싶은 마음이 너무 크고 현재 기준 우분투 역시 AMD CPU를 잘 지원해주고 있기 때문에 고민 없이 선택했다. 배송받자마자 Ubuntu Server 20.04 LTS를 설치했다. 그런데 잉..? 이상하게 한방에 설치가 되네..? 머선일이고..
2. WOL 설정
첫 번째로 한 것은 WOL세팅이다. 365일 24시간 돌리지 않기로 맘먹었으니 필요할 때 언제 어디서든 서버 전원을 켤 수 있어야 했다. 다행히도 내가 선택한 미니 PC 보드는 WOL을 지원한다. 우선 BIOS에 들어가 Wake On Lan 관련 설정을 Enable 시켜놓는 것을 잊지 말아야 한다.
정상적으로 우분투를 설치하고 WOL관련 패키지 도구들을 설치한다.
sudo apt-get install net-tools ethtool wakeonlan
이미 ethtool 과 net-tools 는 설치되어 있을 수 있지만 wakeonlan 패키지는 거의 설치가 안되어 있기 때문에 설치해준다.
ethtools는 네트워크 디바이스 드라이버, 하드웨어 세팅들을 볼 수 있고 이더넷 정보를 확인할 수 있는 ifconfig를 사용하기 위해 설치한다.
위 패키지들을 설치하고 난 후 ifconfig를 사용하여 현재 연결되어 있는 네트워크 카드 이름을 확인해 본다.
deogicorgi@deogicorgi-server ~ : ifconfig
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.7 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::aaa1:59ff:fe30:b615 prefixlen 64 scopeid 0x20<link>
ether a8:a1:59:30:b6:15 txqueuelen 1000 (Ethernet)
RX packets 219 bytes 49070 (49.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 147 bytes 25029 (25.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 92 bytes 7100 (7.1 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 92 bytes 7100 (7.1 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth717343f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::8894:ccff:fe1f:7da1 prefixlen 64 scopeid 0x20<link>
ether 8a:94:cc:1f:7d:a1 txqueuelen 0 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 19 bytes 1602 (1.6 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
위의 내용에서 확인할 수 있는 건 현재 설치된 이더넷 정보이다. 내 서버의 네트워크 인터페이스는 "enp2s0"이란 이름을 사용하고 있다는 것을 알 수 있다. 이 네트워크 이름을 기억해놓고 WOL 설정을 진행한다. 아래와 같은 명령어를 수행하면 된다.
deogicorgi@deogicorgi-server ~ : sudo ethtool -s enp2n0 wol g
deogicorgi@deogicorgi-server ~ : sudo ethtool enp2s0
Settings for enp2s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
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/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
1000baseT/Full
Link partner advertised pause frame use: Symmetric
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: MII
PHYAD: 0
Transceiver: internal
Auto-negotiation: on
Supports Wake-on: pumbg
Wake-on: g
Current message level: 0x00000033 (51)
drv probe ifdown ifup
Link detected: yes
밑에서 4번째 라인을 보면 Wake-on: g 라는 항목을 확인할 수 있다. 정상적으로 설정되었다. 하지만 ethtool로 설정한 내용은 재부팅 시 초기화가 된다는 문제가 있다. 이것을 방지하기 위해 root 권한으로 다음과 같은 설정을 추가한다.
deogicorgi@deogicorgi-server ~ : sudo vi /etc/network/interfaces
vi 편집기로 아래의 내용을 추가한다.
post-up /sbin/ethtool -s enp2s0 wol g
post-down /sbin/ethtool -s enp2s0 wol g
3. 서비스 설정
위의 설정까지 완료했지만 정상적으로 동작하지 않는다면 서비스 설정을 추가한다. 찾아보니 우분투 18.04 LTS 이후부터는 systemd service를 만들어줘야 한다고 한다. 아래의 명령어로 service를 만들어준다.
deogicorgi@deogicorgi-server ~ :sudo vi /etc/systemd/system/wol.service
그리고 아래의 내용을 추가한다. 여기서 인터페이스명은 본인의 네트워크 인터페이스명을 추가한다.
[Unit]
Description=Configure Wake-up on LAN
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s 인터페이스명 wol g
[Install]
WantedBy=basic.target
마지막으로 위의 내용대로 작성하고 저장한 후 systemd service에 등록해준다.
deogicorgi@deogicorgi-server ~ : sudo systemctl enable /etc/systemd/system/wol.service
여기까지 설정을 해주니 정상적으로 WOL 기능이 동작한다. 이제 본격적인 서버 구성을 시작해봐야겠다.
이어지는 글 : 우분투(Ubuntu) 홈서버 구축기(2) - OpenJDK 설치
Author And Source
이 문제에 관하여(우분투(Ubuntu) 홈서버 구축기(1) - WOL 설정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@deogicorgi/우분투Ubuntu-홈서버-구축기1-WOL-설정저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)