2020/01/15 - [NAS] - 자작 NAS (2) - 외부에서 접속하기
지난 번 포스팅에서 NAS PC에 SSH를 통한 원격접속이 가능해졌다.
앞으로 모든 Ubuntu 조작은 터미널을 통한 원격으로 진행한다.
이제 원하는 때에만 NAS PC를 켜서 접속할 수 있게끔 WOL 기능을 설정해보자.
WOL (Wake On Lan)
WOL은 Wake On Lan의 줄임말로, PC의 랜카드에 신호를 보내 전원을 켜는 기능이다.
1. ipTime 공유기 설정
가장 먼저 공유기에서 WOL 기능을 켜두도록 하자.
고급설정 - 특수기능 - WOL 기능으로 들어가 'MAC 주소' 돋보기를 누르게 되면 현재 네트워크에 연결된 기기들을 볼 수 있다.
이 중 지난 번 수동으로 설정한 내부 IP를 찾아 추가한다. (예 : 192.168.0.33)
오른쪽 상단 저장까지 마치면, 공유기에서 할 설정은 이게 전부다.
추가한 PC에 Wake 신호를 보내려면,
PC 켜기에 해당하는 체크박스를 선택하고, PC 켜기를 눌러주기만 하면 된다.
그러나 이것만 갖고는 해당 PC를 켤 수 없다.
신호를 발신했지만, 수신에 대한 처리가 없기 때문이다.
2. Ubuntu WOL 설정
Ubuntu에서 WOL 기능을 설정해보자.
$ ifconfig 명령어로 내 네트워크 이름을 찾는다.
내부 IP주소를 보여주는 'ens12'가 네트워크 이름이다.
$ ifconfig
ens12: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.0.33 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 abcd::abcd:abcd:abcd:abcd prefixlen 64 scopeid 0x20<link>
...
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>
...
이 이름을 ethtool 명령어로 실행하면 랜카드 설정이 나온다.
(혹시나 ethtool 명령어가 안된다면 설치가 필요하다.)
(sudo 명령에는 계정 패스워드를 입력해야한다.)
$ sudo ethtool ens12
$ sudo ethtool ens12
[sudo] password for seop_nas:
Settings for ens12:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
...
Supports Wake-on: pg
Wake-on: d
...
아래로 내리다보면 Wake-on: 이라는 항목이 있다.
g는 활성화, d는 비활성화를 뜻한다.
이게 g로 설정되어 있어야 WOL 기능을 사용할 수 있다.
일단 활성화 시켜주자.
$ sudo ethtool -s [네트워크 이름] wol g
$ sudo ethtool -s ens12 wol g
다시 $ sudo ethtool ens12를 쳐보면 'Wake-on: g'으로 바뀐 것을 확인할 수 있다.
이 상태에서 PC를 종료하고, ipTime 설정에 들어가 WOL에서 'PC 켜키'를 하게 되면 훌륭하게도 원격으로 PC에 전원이 들어온다!
그러나 문제는 재부팅시 'Wake-on' 옵션이 초기화된다.
검색을 해보니 /etc/network/interfaces를 수정하면 된다는데...
열어보니 아래와 같이 주석이 적혀있다.
# ifupdown has been replaced by netplan(5) on this system. See
# /etc/netplan for current configuration.
# To re-enable ifupdown on this system, you can run:
# sudo apt install ifupdown
우분투 18.04 버전부터(정확하지 않다) ifupdown이 netplan으로 바뀌어서 /etc/netplan/*.yaml을 수정해야 한단다.
그러나 아무리 수정해봐도 재부팅했을 때 wol 설정이 적용되지 않는다.
실패한 방법들...
1) /etc/network/interfaces 수정 -> 우분투 버전이 맞지 않음
2) 우분투 시작프로그램 설정 (/etc/rc.local)
3) wol 설정을 적은 /etc/netplan/01-netcfg.yaml 만들어서 추가
4) /etc/netplan/원래있던.yaml 에 wol 설정 추가
그러다 찾은 해결책
http://timtalbot.co.uk/setting-up-wake-on-lan-on-ubuntu-server-18-04-lts/
On Ubuntu 18.04, you need to create a systemd service as opposed to enabling, creating and/or modifying rc.local as you would’ve done on previous versions.
우분투 18.04에서는 systemd service를 만들어서 rc.local을 적용해야 한다는데, 무슨 말인지 잘 모르겠다.. 따라해보자
1) wol.service 만들기
/etc/systemd/system/wol.service를 열고, (아마도 없는 파일이라 만들어진다.)
$ sudo vim /etc/systemd/system/wol.service
아래 내용을 입력한다.
[Unit]
Description=Configure Wake-up on LAN
[Service]
Type=oneshot
ExecStart=/sbin/ethtool -s ens12 wol g
[Install]
WantedBy=basic.target
중간에 'ens12' 대신 맨 처음 찾은 네트워크 이름을 넣어야 한다.
2) systemd service에 등록하기
systemd services에 방금 작성한 파일을 등록해준다.
$ systemctl daemon-reload
3) 서비스 활성화
등록한 서비스를 활성화시킨다.
$ systemctl enable /etc/systemd/system/wol.service
4) 마지막으로 서비스를 실행한다.
3)에서 이미 서비스가 활성화 되었지만 혹시 몰라 한 번 더 실행하는 과정이다.
3)으로 충분하다면 안해도 되지만 손해볼 건 없다고 쓰여있다.
$ systemctl start /etc/systemd/system/wol.service
결과
재부팅을 하고, $ sudo ethtool ens12 로 다시 확인해보자.
$ sudo ethtool ens12
Settings for ens12:
Supported ports: [ TP ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
...
Wake-on: g
...
재부팅을 해도 Wake-on: g으로 유지된다!
테스트
1) $ sudo poweroff 로 Ubuntu PC를 완전히 종료한다.
2) ipTime - 고급 설정 - 특수기능 - WOL 기능에서 'PC 켜기'
감격스럽게도 PC가 잘 부팅된다.
참고)
바이오스에서 WOL 세팅도 해줘야한다.
메인보드마다 바이오스 부팅 방법부터, 랜카드 WOL 설정까지 모두 방법이 달라 따로 기록하지 않는다.
그때 그때 메인보드에 맞는 방법을 검색하자.
'NAS' 카테고리의 다른 글
자작 NAS (4) - 내부 파일 공유 환경 구축 1(Ubuntu - Mac AFP) (2) | 2020.01.23 |
---|---|
자작 NAS (2) - 외부에서 접속하기 (0) | 2020.01.15 |
NAS 자작 (1) - 하드웨어/소프트웨어 고르기 (0) | 2020.01.14 |