필요 인식
제가 하루 중 가장 많이 사용하는 기계는 컴퓨터예요. 아무것도 안 하고 켜놓는 시간까지 포함하면 하루에 4시간은 켜놓죠. 그런데 이렇게 사용하면서 문제가 발생했어요.
바로 컴퓨터 전원 관리가 힘들어진 것이죠. 전원을 켜는 것은 필요할 때 켜면 되는 것이니 어려울 것 없는데 끄는 것은 깜빡 잊고 켜놓은 상태로 외출하면 영락없이 에너지 낭비로 이어지죠.
그래서 개인용 PC에 원격으로 전원을 끄는 시스템을 구축하기 위해 연구해 보았어요.
아이디어
1. Remote Desktop 사용하기
가장 먼저 떠오른 아이디어에요. 실제로 이미 내 PC에는 Remote Desktop 시스템이 구축되어 있고, 외부망에서 접속할 수 있으니 딱히 건들건 없어요.
Pros:
- 별도의 시스템 구축이나 설정이 필요 없다 :)
Cons:
- 끄기 위한 행동이 많이 필요하다(원격 세션을 열고 → 마우스를 찾고 → 전원 버튼으로 움직여서 → 시스템 종료 누르기!).
- 끌 때 데이터가 많이 필요하다. 이건 치명적이에요. 대부분 이 시스템을 사용하는 시나리오가 데이터를 사용하는 실외에서이기 때문이죠.
장단점을 분석해보면 두개의 단점이 구축의 편의를 압도해요. 다른 아이디어가 필요하죠.
2. Web Server를 돌려서 접속하면 꺼지게 하기
저는 이미 웹서버 개발 경험이 여러 번 있고, 이건 큰 규모도 아니니 이렇게 하면 되겠다 싶었어요. 그래서 웹서버를 만들어서 누군가가 요청을 보내는 순간 꺼지게 하려 했죠.
Pros:
- 간단한 웹서버로 구축을 끝낼 수 있다.
- 끄기 위한 행동이 많이 단순해졌다.
Cons:
- 보안에 취약하다!!!
그래요. 이 방법은 보안에 매우 취약해요. 내가 아닌 누군가가 웹서버 주소를 알아내기만 하면 언제 어디서든 제 컴퓨터를 끌 수 있어요. 재앙이죠. 이것을 방지하려면 웹사이트에 접속한 후 인증을 수행하면 되지만 컴퓨터 끄려고 암호를 입력하고 싶지는 않아요. 이것을 위해 Client Certification을 사용할까 고민도 해봤지만 그러면 일이 너무 커지는 것 같아 일단 보류했지요.
3. SSH 사용하기
SSH는 원격으로 컴퓨터의 터미널 코드를 실행할 수 있게 해주는 프로토콜이에요. 주로 서버에서 많이 쓰이지만 제 컴퓨터에서도 쓸 수 있죠. 이것을 설치하고 SSH 클라이언트로 SSH 서버에 접속해서 shutdown 명령을 보내면 컴퓨터를 끌 수 있어요.
Pros:
- 구축이 간단하다.
- 끄기 위한 행동이 간단하다(무려 원터치 또는 제로클릭으로 만들 수 있다)
- 끄는 것뿐만 아니라 Hibernation, Sleep 등 구체적인 액션을 지정할 수 있다.
- 보안에 강하다.
Cons: NOTHING!
바로 구현하기로 했어요.
Windows 검색에 "Optional features"를 검색하고 엔터
Add an optional feature에서 View features
SSH를 검색하고 Next를 눌러 설치하기
설치됐으면 이번에는 "services" 검색하기
OpenSSH SSH Server를 찾아 우클릭 → Properties → Startup type을 Automatic으로 설정
컴퓨터는 설정 끝, 이제 게이트웨이(공유기) 설정하기
대부분의 PC는 게이트웨이 뒤에 있기 때문에 게이트웨이에서 포트 포워딩을 해줘야 PC에서 SSH 요청을 받을 수 있어요. 그래서 그 부분을 설정하려 해요.
우선 공유기 설정 페이지로 들어가서 로그인해요. 그리고 잘 찾다 보면 포트 포워딩 페이지가 나올 거예요.
거기서 외부 포트는 원하는 포트번호를 정해요. 웬만하면 등록 포트(1024 - 49151) 중에서 하나를 고르는 게 좋아요. 내부 IP 주소는 자신이 끄고 싶은 컴퓨터의 Private IP를 입력해요(컴퓨터의 IP주소 할당 방식을 Static으로 바꾸는 게 좋겠죠?) 프로토콜은 TCP이고 나머지는 비워놔도 돼요.
그리고 설정을 저장합니다.
이제 iPhone에서 종료 명령을 보내는 단축어를 작성해야 해요.
Text 블록으로 "shutdown /s /t 0"(Windows 기준) 명령을 Cmd 변수로 넘겨주고 SSH 명령 실행하기 블록에서 그 명령을 SSH 서버로 보내라고 명령하면 돼요. Host에는 게이트웨이의 공인 IP주소를 입력하고, Port에는 아까 설정한 외부 포트를 입력해요. User에는 본인 Windows 사용자 이름을 입력하고, Password에는 Windows 사용자 암호를 입력해요.
이제 이 단축어의 이름을 "컴퓨터 꺼줘"라고 짓습니다.
이제 단축어 앱에서 이 단축어를 직접 실행하거나 Siri에게 "컴퓨터 꺼줘"라고 명령하면
iPhone에서 사용자의 명령을 받고 → 단축어를 실행해서 SSH로 패킷을 보내면 → 패킷을 받은 공유기는 PC로 요청을 전달해주고 → 패킷을 받은 요청은 SSH 패킷에 담긴 명령을 실행해서 → 컴퓨터가 꺼지죠!
'이것저것 > 잡소리' 카테고리의 다른 글
원자력 발전을 줄이는 것은 절대 정답이 될 수 없습니다. (0) | 2021.12.20 |
---|---|
아이스크림으로 살 빼기 (0) | 2021.11.25 |