집 밖에 있을 때 급하게 내 컴퓨터에 있는 자료가 필요하거나 원격 제어를 해야 할 상황이 생기곤 합니다. 그럴 때마다 매번 컴퓨터를 켜두기에는 전기세도 걱정되고 하드웨어 수명도 신경 쓰이죠. 이럴 때 가장 유용한 도구가 바로 텔레그램 WOL 봇입니다. 오늘은 리눅스 서버를 새로 설치하거나 사양을 업그레이드했을 때 다시 PC 원격 켜기 기능을 복구하고 안정적으로 세팅하는 전체 과정을 아주 쉽게 풀어서 설명해 드릴게요.
1. 환경설정: 필수 패키지 및 라이브러리 설치하기
서버 사양을 업그레이드하거나 OS를 재설치하면 기존에 잘 작동하던 프로그램들이 모두 사라지게 됩니다. 리눅스 WOL 설정을 위해 가장 먼저 해야 할 일은 봇이 움직일 수 있는 환경설정을 만들어주는 것입니다. 여기서 핵심은 텔레그램의 명령을 받아 실제 PC로 신호를 보내주는 도구들을 설치하는 과정이에요.
먼저 wakeonlan 패키지가 필요합니다. 이 친구는 텔레그램 채팅방에서 우리가 버튼을 눌렀을 때 집 안에 있는 PC의 랜카드로 ‘이제 일어나!’라고 말하는 매직 패킷을 쏴주는 아주 중요한 역할을 담당합니다. 그 다음으로는 파이썬 텔레그램 봇 라이브러리를 설치해야 하는데, 최신 버전보다는 기존 코드와 궁합이 잘 맞는 13.15 버전을 사용하는 것이 정신 건강에 이롭습니다.
# 시스템 목록을 최신으로 업데이트하고 WOL 도구를 설치합니다
sudo apt update && sudo apt install wakeonlan -y
# 텔레그램 봇이 원활하게 돌아가도록 특정 버전의 라이브러리를 설치합니다
pip install python-telegram-bot==13.152. 네트워크 최적화: UFW 방화벽 및 IPv6 설정 해결법
서버 보안을 위해 방화벽(UFW)을 켰는데 갑자기 ip6tables 에러가 나면서 설정이 꼬이는 경우가 있습니다. 특히 오라클 클라우드 같은 환경에서 자주 발생하는 증상인데요. 이럴 때는 복잡하게 고민할 것 없이 우리가 잘 쓰지 않는 IPv6 설정을 잠시 꺼두는 것이 서버 네트워크 최적화의 지름길입니다.
우선 설정을 변경하기 위해 구성 파일을 열고 IPv6 항목을 찾아 수정해 주세요. 그 후에는 외부에서 텔레그램 신호가 잘 들어오고 나갈 수 있도록 SSH 접속 포트와 WOL 전송 포트를 활짝 열어주어야 합니다. 보통 7번이나 9번 UDP 포트를 많이 사용하니 이 부분을 놓치지 마세요.
# 1. IPv6 기능을 비활성화하기 위해 설정 파일을 수정합니다
sudo nano /etc/default/ufw
# 파일 내용 중 IPV6=yes 부분을 IPV6=no 로 변경하고 저장하세요
# 2. 통신에 필요한 문들을 하나씩 열어줍니다
sudo ufw allow 22/tcp
sudo ufw allow 7/udp
sudo ufw allow 9/udp
sudo ufw enable
sudo ufw reload3. 연결 고리 수정: 서버 IP 주소와 포트포워딩 맞추기
서버를 새로 세팅하면 집 안에서 쓰는 내부 IP 주소가 예전과 달라졌을 확률이 매우 높습니다. 공유기 WOL 설정이 옛날 주소에 머물러 있다면 아무리 텔레그램 버튼을 눌러도 신호가 길을 잃고 헤매게 됩니다. 마치 이사 간 친구의 옛날 집으로 편지를 보내는 것과 같죠.
먼저 현재 내 서버의 진짜 주소가 무엇인지 확인하는 과정이 필요합니다. 터미널에서 주소를 확인했다면 이제 아이피타임 공유기 설정이나 사용 중인 공유기 관리 페이지에 접속하세요. 포트포워딩 설정 메뉴에 들어가서 기존에 등록된 대상 IP 주소를 방금 확인한 따끈따끈한 새 주소로 업데이트해 주시면 됩니다. 봇 소스코드에 적힌 포트 번호와 공유기에서 열어준 포트가 일치하는지도 꼭 한 번 더 체크해 보세요.
터미널에서 hostname -I 명령어를 입력하면 현재 서버가 할당받은 주소를 바로 확인할 수 있습니다.
4. 안정적인 운영: 24시간 꺼지지 않는 백그라운드 가동
모든 설정이 끝났다면 이제 봇을 실행할 차례입니다. 하지만 단순히 실행만 하고 터미널 창을 닫아버리면 봇도 같이 잠들어 버립니다. 우리가 자는 동안에도, 일을 하는 동안에도 봇은 항상 깨어 있어야 하므로 백그라운드 실행 설정이 필수입니다.
이때 nohup 명령어를 활용하면 터미널 접속을 끊어도 봇이 뒤에서 묵묵히 일을 계속합니다. 또한 로그 파일 기록 설정을 함께 해두면 나중에 혹시라도 봇이 작동하지 않을 때 어떤 문제가 생겼는지 일기장을 보듯 쉽게 파악할 수 있어 관리가 매우 편리해집니다.
# 봇을 백그라운드에서 실행하고 모든 기록을 wol.log 파일에 저장합니다
nohup python3 wol_bot.py > wol.log 2>&1 &
# 현재 봇이 죽지 않고 잘 살아있는지 확인하는 방법입니다
ps -ef | grep wol_bot.py이제 모든 준비가 끝났습니다. 스마트폰을 꺼내 텔레그램 앱을 열고 버튼을 눌러보세요. 멀리 떨어져 있는 내 PC가 기분 좋게 웅 소리를 내며 켜지는 것을 확인할 수 있을 거예요. 언제 어디서든 PC 원격 제어를 할 수 있는 나만의 비서가 생긴 셈입니다.
혹시 설정 과정에서 봇이 응답하지 않거나 매직 패킷이 전달되지 않는다면 공유기의 ARP 바인딩 설정을 확인해 보시는 것을 추천드려요.
