일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 핀테크
- 클라우드 컴퓨팅
- paas
- 한국방문객
- KEB하나은행독점
- YandexPay
- 라즈베리파이
- MOLpay
- 랜딩사
- 알리페이사용방법
- Cloud Computing
- centos
- Cloud
- 바나나파이 #banana-pi #android #netflix #iot
- koreatour
- 결제정산
- 인바운드관광
- 방한일본및중국관광객특징
- mame
- 바나나파이 #banana-pi #eMMC #sdcard없이부팅 #삽질
- EmulationStation
- 클라우드
- 라스조이박스
- GlobalPG
- 투디엠
- 로컬에이전시
- RETROPIE
- 알리페이
- bananapi
- 정산프로세스
- Today
- Total
API World for Mobile Developers
라즈베리파이에서 윈도우 PC를 외부에서 켜기 (WOL, DDNS, SSH) 본문
개요
원격지에서 WiFi 공유기로 구성된 장소의 PC를 라즈베리로 켜보자
목표
- AP 전용앱 또는 AP 제품의 Admin 화면을 사용하지 않음
- 방안1 (
진행중) - http://xxx.mydoamin.com/wol?mac=aa:bb:cc:dd:ee:ff - 방안2 (성공) - $ ssh myid@xxx.mydomain.com "wol.sh aa:bb:cc:dd:ee:ff"
- 비밀번호 입력없이 한방에 완료
- 맥북은 외부망에 설치함
- 라즈베리파이와 윈도우PC는 동일한 내부 네트워크 연결
- 내부망 Broadcast IP 스펙 활용 - WOL 규격
- MacBook Air 한대
- 라즈베리파이 모델B+
- SKB 인터넷 ( Mercury WiFi AP ) ,
- IPTime 604NS
- KT GiGa WiFi AP ( ??? )
그동안의 삽질
- WOL 지원하는 WiFi AP 사용 - 잘 동작되지만 방안1, 방안2 지원 안함
- Port Forwarding - 외부IP:port 를 내부IP:9 포트로 설정
- 내부 IP를 BroadCast IP 로 지정 - 보안이슈로 저장이 안됨 (설정 불가)
- 내부 IP를 대상 PC의 고정 IP 지정 - 저장도 되고 WOL 동작도 가능
- ARP 관련 정보의 Timeout 발생시 동작 안됨 ( WiFi AP의 ARP Table Timeout 을 길제 잡으면 가능하겠지만.. )
- 쉽게 얘기하면 PC끄고 한잠 자고 일어나서 해보면 안되는... PC 끄고 바로 해보면 잘 켜지는 짝퉁 설정
- 사용하시는 WiFi AP의 관리 화면 연결 ( 방법은? 구글링 ~~ )
- DHCP 메뉴에 라즈베리파이 MAC과 IP 등록
- Port Forwarding 메뉴에 외부포트(22), 포워딩 IP (라즈베리 IP), 내부포트 (22) 정책 등록
MartyMac:.ssh chsoong$ ssh pi@im.mydomain.com
Linux im.mydomain.com 4.9.41+ #1023 Tue Aug 8 15:47:12 BST 2017 armv6l
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Oct 22 11:24:24 2017 from 1.241.246.2
WOL관련 패키지 설치하기
pi@im:~ $ sudo apt-get install wakeonlan -y
패키지 목록을 읽는 중입니다... 완료
의존성 트리를 만드는 중입니다
상태 정보를 읽는 중입니다... 완료
다음 새 패키지를 설치할 것입니다:
wakeonlan
0개 업그레이드, 1개 새로 설치, 0개 제거 및 0개 업그레이드 안 함.
0 바이트/11.5 k바이트 아카이브를 받아야 합니다.
이 작업 후 57.3 k바이트의 디스크 공간을 더 사용하게 됩니다.
Selecting previously unselected package wakeonlan.
(데이터베이스 읽는중 ...현재 34369개의 파일과 디렉터리가 설치되어 있습니다.)
Preparing to unpack .../wakeonlan_0.41-11_all.deb ...
Unpacking wakeonlan (0.41-11) ...
wakeonlan (0.41-11) 설정하는 중입니다 ...
Processing triggers for man-db (2.7.6.1-2) ...
pi@im:~ $
WOL 실행 스크립트 등록
pi@im:~ $ vi wol.sh
pi@im:~ $ cat wol.sh
#!/bin/sh
wakeonlan $1
pi@im:~ $
SSH 인증키 환경설정 (선택. 비번입력 없이 로그인 및 명령어 실행용)
pi@im:~ $ ssh-keygen -t rsa
Generating public/private rsa key pair.
SSH 연결용 인증키 추가 (선택. 라즈베리파이 연결에 사용할 해당 장비의 RSA.pub 인증키 등록)
pi@im:~ $ vi ./.ssh/authorized_keys (아래처럼 생긴 님의 PC 에서 생성한 ssh rsa 정보로 등록 )
pi@im:~ $ cat ./.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDXRlDxkumOE/kptP+aouM9XGAtm/QqFaWF+Yv2Nm8UlJ1vXPRlsgGDfCxIH0QZuDdlBw1b3tPn+OAae5uP/mj8MMjnYrBbthGMDsjIdLIX8PZf/PkRVsSxnHvBxKfJgUezGN8PvEECXa5TsL1T08rsCP/spQsmBwTNhI0S4DkK/HcQLtpIxKC6W8+Dgj7BgZoqtRZhNtzfSqTS8uzoFMg8W/iftuupCIYu7oiY0iIq7O4mgy7BjueuJFvR+eIA68dEe+c2i4rD6UUzWKYgZMKzhb5KmlCVGMfvkX0bw9s8AoCp+pWZPvnPsYbtrBhDnbqqw/C02rctx8eXjiff/L chsoong@MartyMac.local
pi@im:~ $ exit
logout
Connection to im.mydomain.com closed.
외부 환경에서 PC 켜기 시험 (WOL)
MartyMac:.ssh chsoong$ ssh pi@im.mydomain.com "/home/pi/wol.sh aa:bb:cc:dd:ee:ff"
Sending magic packet to 255.255.255.255:9 with aa:bb:cc:dd:ee:ff
성공^^
결론
간단한 설정으로 내부망에 상시 전원이 연결된 장치(라즈베리파이)를 구성하고
외부에서 PC의 전원을 켤 수 있으며, 웹서비스 등과의 연계시에도 활용 가능 함.
화면 없이 라즈 부팅시 IP관련 정보 확인 방법
- 로컬 IP 확인 : $ hostname -I
- 공인 IP 확인 : $ host mydomain.com | cut -d\" \" -f4"
- 자동메일 발송 python code 생성 (하단 도움주신분 참조)
- 관련 정보 수정 : smtp ip, 메일ID, 비밀번호 ( 해당 메일 계정이 지원해야 함 )
- 라즈의 /etc/rc.local 에 자동 발송 등록
라즈가 연결된 공인 IP 확인 : DDNS 설정 ( 상세방법은? 구글링 ~~ )
- DDNS를 지원하는 DNS 호스팅 , 보유 도메인 필요
- 라즈용 hostname 등록 및 DDNS update : enable
- 라즈에서 wget 으로 등록 명령어 시험 ( DNS 호스팅 서비스별 매뉴얼 참조 )
- dnsever 예시 : sudo wget -O -http-user=myid -http-passwd=mypw 'http://dyna.dnsever.com/update.php?host[xxx.mydomain.com]'
- 라즈의 /etc/crontab 에 주기적 실행 등록 (예 : 5분마다 )
- */5 * * * * root /home/pi/ddns.sh > /dev/null 2>&1
라즈의 /etc/rc.local 에 부팅시 등록 추가( 필요 없음 )
'잡동사니' 카테고리의 다른 글
오큘러스 커넥트 4 ( Oculus connect 4 - 2017 ) (0) | 2017.10.31 |
---|---|
라즈베리파이에서 윈도우 PC를 외부에서 셧다운 하기 ( Samba Shutdown ) (0) | 2017.10.23 |
CentOS TCP 성능 튜닝 - Apache 성능 최대화 (0) | 2017.06.12 |
네이버 ‘파파고’ - “번역 앱은 AI 핵심기술 연내 10개 언어 지원” (0) | 2017.05.31 |
인공지능의 현실화 - 아마존 고 (0) | 2017.05.26 |