외부에서 Wake On Lan 지원 안되는 공유기에서 WOL 사용하기

Wake On Lan 잘 쓰고 계시나요. 저는 항상 잘 쓰고 있었는데. 최근에 공유기를 바꾸고 나니 문제가 생겼습니다. 빠른 무선 속도를 노려보려고 외산 공유기로 바꿨는데 Wake On Lan(이하 WOL)이 지원안되는 겁니다.
일반적인 공유기에서 외부에서의 WOL이 되는 이유는 WOL서버 때문인데요.(한가지 방법은 브로드캐스트 주소로의 포트포워드지만 지원 안되는 공유기가 더 많습니다.) 새로산 공유기는 WOL서버 기능을 자체적으로 지원하지 않으니... 답답하더라구요.
이걸 안쓸 수는 없고 어떻게든 쓸 방법을 생각해봤는데요

첫번째 방법은 외부 N번 포트에서 들어오는 패킷을 내부 브로드캐스트 주소로 포워드해버리는 것이 었습니다. 그러면 제가 보낸 패킷이 내부네트워크 전체로 퍼지고 제가 보낸 맥어드레스에 해당하는 컴퓨터만 켜질 것 같았거든요.

두번째 방법은 아예 리눅스를 설치하고 WOL서버로 사용하는 방법이었습니다.

첫번째방법이 간편한데 공유기에서 지원하지를 않아요... 그래서 결국 두번째 방법을 선택하게 되었습니다.
허접하지만 혹시나 넷기어나 링크시스등 WOL이 자체적으로 지원되지 않는 공유기를 이용중인 분들을 위해 작성합니다.

준비물은 남는 항상 켜져있을 수 있는 컴퓨터 혹은 리눅스가 설치되는 싱글보드컴퓨터입니다. 사용중인 서버가 있다면 그걸 써도 됩니다. 일단 저는 여기서 라즈베리 파이로 진행하겠습니다. 저는 리눅스로 진행하지만 윈도우에서도 됩니다.

먼저 라즈베리파이에 레즈비언 아...아니 라즈비안을 설치하시고 켜고자 하는 컴퓨터들과 같은 네트워크에 연결하신 후(이더넷이든 무선이든 상관 없습니다.) service ssh start를 입력해서 sshd를 시작합니다.

그리고 컴퓨터에서 putty와 같은 ssh클라이언트로 라즈베리파이의 ssh서버에 접속합니다.

etherwake와 wakeonlan 두가지가 있는데 etherwake는 실행할때마다 sudo를 해줘야해서 wakeonlan을 설치했습니다

apt-get update && apt-get install wakeonlan
or
aptitude update && aptitude install wakeonlan
를 입력해 wakeonlan을 설치합니다.
포럼에서 보니 aptitude가 대세던데 저는 아직도 익숙함 때문에 apt-get을 쓰고 있네요.

설치가 끝났네요.

vi filename.sh를 입력해서 안에는 wakeonlan 11:22:33:44:55:66와 같이 wakeonlan뒤에 맥어드레스를 입력해줍니다.
스크립트파일로 만드는 이유는 다름이 아니라 그냥 좀 짧게 만들기 위함이구요. 좀 공을 들이면 켜졌는지 안켜졌는지 확인하는 스크립트를 넣을 수도 있겠지만 그냥 쓰는 건데 그렇게 공들일 필요까지야...

일단 테스트를 해봅시다 sh wol.sh를 입력해 봅니다 켜지나요?

ssh포트를 변경하고 싶다면 vi /etc/ssh/sshd_config를 입력하신후 사진에 있는 저 #을 제거 하시고 포트번호를 수정해주세요.

윈도우의 경우
윈도우의 경우에는 간단하게 여기에 나와있는 윈도우용 ssh서버중 하나를 선택하여 설치하신 후 설정을 마치시고 (꼭 ssh서버 설치하실 필요없습니다. RDP포트여시고 RDP접속하셔서 수동으로 켜줄 수 도 있습니다. 여기서 ssh서버를 설치하는 것은 밑에 나온 원클릭 켜기 때문입니다.) 여기에서 command line용 wolcmd를 다운받습니다. 그리고 ssh 접속시 기본 경로에 넣어주면 됩니다.(기본경로가 어디였는지 생각이 안나요 C:\Users\유저명 이었나 C:\Users\유저명\Documents 이었나.)
그리고 cmd 파일을 하나 만드신 후
wolcmd [mac address] [ipaddress] [subnet mask] [port number]
이렇게 설정하고 ssh 접속했을때의 기본경로에 wol.cmd로 저장해 주시면 되는데, 아마
wolcmd [mac address] [ipaddress] 255.255.255.0 9
이렇게 맥 어드레스랑 아이피만 설정하면될겁니다. 아이피는 맨뒷자리는 255로 해주세요 ex)192.168.1.255

자 이제 설정이 끝났습니다. 스마트폰이나 외부 컴퓨터에서 ssh접속하신후 sh wol.sh 해주시면 되는데요.
원클릭이 아니잖아요. 그래서 이 앱을 이용하도록 합니다.
Script Kitty 스크립트 키디 스크립트 키티 인데요.
이 앱은 명령어를 등록해놓고 실행하면 ssh접속후 해당 명령어 실행까지 해주는 앱입니다. 이걸 이용해 원클릭 wol패킷을 보낼텐데요. 한번 보도록 하죠

스크립트 키티를 실행하면 ADD HOST를 눌러 설정한 서버에 맞게 주소와 포트를 입력해줍니다.

등록이 됬네요 여기서 RUN SCRIPT를 누르면 스크립트를 추가할 수 있습니다.

저는 스샷찍기전에 등록을 해서 이미 등록이 되어있는데 ADD SCRIPT를 눌러 추가합니다.

뭐 내용이야 별거 없이 이거에요. 윈도우에다가 하신 분은 wol.cmd 해주시면 됩니다.

이제 다른 네트워크나 데이터를 사용줄이더라도 이 버튼을 한번 클릭하는 것 만으로 컴퓨터가 켜집니다.


굉장히 허접하지만 그래도 WOL을 쓸 수 있어서 좋네요. 근데 라즈베리 파이를 고작 WOL서버로만 쓰자니 너무 아깝네요. 아무리 CPU성능이 딸린다 해도 가정용 NAS정도는 되는 성능인데... 뭐라도 서비스 좀더 올려서 써야겠어요.
웹서버 올려서 어떻게 잘 만들면 공유기 UI처럼 GUI로 만들 수 있을 텐데 하는 생각도 드는데 혹시 하게되면 따로 새글 안쓰고 여기 밑에 추가할게요.
Creative Commons License

MSG 명령어로 네트워크상의 컴퓨터에 메시지 보내기



MSG 저도 참 좋아하는데요. 제가 한 번 먹어....;;;

MonoSodium Glutamate이요???ㅋㅋ 아니죠 MeSsaGe 입니다 ㅋ


예전에 윈도우XP에선 net send라는 명령어가 있었죠?

net send를 이용해서 메시지를 보내고 받을 수 있었는데

보안문제로 정확히 기억은 안 나지만  XP SP2인가 부터

MS에서 기본으로 Messenger 서비스를 Disable 시켜놨던걸로 기억합니다

그래도 XP에서는 services.msc에 들어가 Messenger서비스를 활성화만 시키면 net send가 가능했지만


XP이후부터는 아예 없어졌죠

그 대신 생긴게 있는데요 MSG라는 명령어 입니다


바로 이 것 인데요

분명히 옵션을 보게 되면 다른 서버로 메시지를 보낼 수 있건만...

아무리 시도해봐도 안되더군요

결론은 역시 제가 모르는게 많아 그런걸로 결론이 났습니다만

혹시나 저와 같이 고생하시는 분이 많지는 않을까 하여 포스팅합니다




일단 손꾸락 맘에 드시는 걸로 하나 누르고 시작해도 좋을것 같네요 ^^




MSG명령어의 기본적인 사용법은 이렇습니다

윈도우8로 설명하지만 윈도우7도 동일합니다


이렇게 msg * /v /w 내용 을 입력하게 컴퓨터의 모든 세션에 메시지를 표시하고 사용자가 메시지를 확인할때까지

기본 60초간 대기하고 사용자가 확인시 확인했다고 알려줍니다 


이렇게 뜨는 것이죠

원래 이런 용도입니다

서버관리자가 서버에 접속중인 터미널 클라이언트들에게 알림을 보내는 거죠

//ㅋ 12시면 한참 남았네요 ㅋㅋㅋ


응답 결과 까지 알려줍니다

솔찍히 저는 /v 와 /w 옵션은 잘 안씁니다만. 용도에 따라 필요할때도 있겠죠


근데 아까도 말했듯이 분명히 옵션상에 보면 다른 컴퓨터에도 메시지를 보낼 수 있다고 해놓았지만

실제로 해보면 되지 않습니다 ;;;




이런식으로 "세션 이름 얻기 오류 5" 가 뜨게 되죠

구글링과 국내 포털을 털어봐도 제가 검색능력이 딸리는지;;; 잘 안나오더군요

그래도 겨우겨우 해결책을 찾았습니다


구글에서 찾은 정보에는

먼저 실행(Run)창을 열어서 regedit을 실행하고 밑줄 친 것과 같이

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server 를 찾아들어갑니다

그리고 거기서 AllowRemoteRPC의 값을 1로 바꾸고 재부팅하라고 하더군요


해봤습니다. 안됩니다.

저거 안 건드려도 아주 잘 됩니다 그냥 건드리지 마세요


지금부터 진짜 해결책 나갑니다


먼저 제어판을 엽니다

시작버튼이 없어 슬픈 윈도우8 유저분들은

실행에서 control을 입력하시거나

win key + x를 눌러서 들어갑시다


제어판에서 자격증명 관리자를 들어갑니다


윈도우 자격 증명 추가를 눌러줍니다


그리고 네트워크 주소란에 메시지를 받을 컴퓨터의 IP주소를 입력해줍니다

사용자ID와 패스워드를 입력 후 

확인을 눌러줍니다



자 이제 메시지를 보내봅시다

msg * /SERVER:ip주소 /v 메시지 내용 을 입력합니다


오 아까처럼 "세션 이름 얻기 오류 5" 에러가 뜨지 않는 군요

그럼 메시지를 받아야 하는 컴퓨터에는 잘 보내졌을지 확인을 해봐야죠


잘 나오는 군요 ^^


근데 대부분 로컬 아이피 쳐서 들어가는건 좀 귀찮아 하지 않나요


대부분 로컬 아이피인경우 이렇게 net view를 쳐서 나오는 컴퓨터 주소로 찾아가는게 더 편할겁니다


자격 증명을 아까와 같이 추가해주는데

네트워크 주소에 net view를 입력하여 나오는 컴퓨터이름을 입력하기만 하면 됩니다


그리고 컴퓨터 이름으로 메시지를 보내보면


역시 잘되는 군요


근데 해결은 했지만 좀 깔끔하지 않은 부분이 많습니다

로컬 컴퓨터의 컴퓨터이름이나 아이피 그리고 아이디 비밀번호까지 전부 노가다로 입력해야

비로소 메시지 전송이 가능하다니요;;;

뭐 사진에서처럼 컴퓨터 한 두개 있는 사람은 별것 아니겠지만


이~~~만큼이나 있는 사람은 그냥 메시지 서비스를 쓰지 말라는것 같습니다 ㅠ.ㅠ

더 좋은 방법을 알고 계신분은 말씀해주시면 너무 나도 감사하겠습니다(__)

net send가 스팸이나 보안상의 문제도 있긴 했지만 그래도 그립네요

Creative Commons License

윈도우 8 스크린샷 번호 초기화 하기



윈도우8의 좋은 기능 중에 하나는 바로 스크린샷이죠

예전과 같이 프린트스크린이나 ALT+프린트스크린 키를 눌러 스크린샷을 찍고

그림판이나 다른 이미지 편집기에 붙여넣는 그런 번거로움을 없애 줬으니까요


근데 그냥 잘 쓰시는 분들도 계시겠지만

뭔가 맘에 안드시는 분 도 계실겁니다

스크린샷을 찍을때 마다 '스크린샷 (5)' 처럼 카운터가 올라가는데요


저는 하도 찍어 댓더니 카운터가 104까지 올라갔네요

이걸 초기화 할 방법이 없을까 하고 찾아 봐도

나와있지 않더군요

그래서 포스팅 합니다

스크린샷 카운터 초기화 하기!!



그 전에 손꾸락 하나 누르고 시작할까요? ^^



왠만한건 레지스트리를 건드리면 해결 가능한데요

어디 있느냐가 중요한거겠죠


일단 라이브러리 안에 있으니

HKEY_CURRENT_USER 안에 있을 겁니다



그리고 왠만한 윈도우 설정들은 \Software\Microsoft\Windows\CurrentVersion 안에 있습니다

거기서 Explorer를 보니 딱 있네요 ScreenshotIndex라고요

최종 경로는 HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer 입니다


저기 사진에 빨간색 네모 친곳에 보시면 105라고 되어있죠

저게 스크린샷 카운터 입니다

(마지막 스크린샷 뒤에 붙은 번호 보다 1 높게 나옵니다 다음 스크린샷 번호를 저장하고 있는 거죠)


그걸 여신 다음 0이나 1로 바꾸어 주면 되는데요

16진수도 10까지는 0~9까지는 10진수와 같으니 그냥 입력하시면 됩니다

(초기화가 아닌 다른 숫자로 바꾸실 분들은 단위에서 10진수를 선택하고 입력하시면 됩니다)


0으로 바꿔주고 확인을 누르신 다음 다시 스샷을 찍어 보면


오호 다시 1 부터 나오는 군요


근데 이걸 스크린샷 번호 초기화 할때 마다 하긴 좀 귀찮잖아요

그래서 제가 레지스트리로 만들어 봤습니다


ScreenshotIndex_Reset.reg


스크린샷 카운터 초기화 하실때 마다 실행해서 초기화 해주시면 되겠습니다 ^^

Creative Commons License

원격데스크톱(RDP) 클라이언트 접속기록(Log) 삭제하기



원격데스크톱 자주 이용하시나요?

컴퓨터쪽 자주 만지시는 분들은 아마 WOL과 함께 아주 많이 이용하시리라 생각됩니다

(물론 하드웨어레벨의 원격제어로 IPMI같은 iKVM 쓰시는 분도 계시겠죠)


예전에는 RDP는 엄청 느린터라 다른걸 이용하셨을 테지만

윈7부터 RDP가 상당히 개선 되었죠


하지만 좀 불안한 점이 있죠 바로 클라이언트에 기록이 남는다는 건데요

공용으로 사용하는 컴퓨터에 IP 혹은 주소와 유저네임 까지 나오는 탓에

조금 불안하실때도 있으셨을 겁니다


그럼 클라이언트에 남는 로그 제거 하는 방법을 알아보도록 하죠





원격 데스크톱을 사용하고 나면 꼭 이렇게 기록이 남습니다

사용자 이름에 계정명까지 떡 하니 남게 되어 조금 불안하죠

설마 이걸로 노가다 해킹을 하겠어라고 생각은 하지만

불안한건 어쩔 수 없습니다


mstsc를 켜자마자 나와 있는 놈은

내문서에서 숨긴 파일 보기를 클릭하면 나오는 Default.rdp 파일을 지우면 됩니다


근데 이 접속 기록들은 어떻게 지울까요


실행 - Regedit을 입력하여 레지스트리 편집기를 여신 후

HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default

에서 자신의 사용기록을 IP를 찾아 지우신 후


HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers

에서도 싹 지워버리시면 됩니다


아니면 그냥

HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default

HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers 안에 내용을

전부 싹 지워버리는 것도 방법이죠


근데 이렇게 수동으로 지우려면 좀 짜증나죠 귀찮고

그래서 스크립트를 한번 짜봤습니다

이 스크립트는 RDP로그를 전부 지워버립니다

삭제할지 말지 물어보는 기능은 필요성을 느끼지 않아 넣지 않았지만

혹시 필요하시다면 추가하셔서 사용하세요


허접한 실력으로 짠거라 부족한 점이 많지만

많이 이용해 주세요


RDP_Log_Cleaner_Win7_8.cmd


RDP_Log_Cleaner_XP.cmd


XP용과 윈7,8 용을 나눠 놨는데요

이유는 디렉토리가 조금 다릅니다

스크립트에서 윈도우 버전에 따라 알아서 찾아가게 하는 기능이 있는 걸로 알고 있는데

제가 잘 모르겠네요;;;

알게 되면 다시 단일 파일로 여기 올리겠습니다

오른쪽 클릭후에 편집을 누르면 편집이 가능하니 입맛대로 편집하시구요

Creative Commons License

Windows 8 : 네이티브 시작메뉴 만들기(프로그램 X)



윈도우 8 디벨로퍼 프리뷰까지는 시작버튼이 있었지만

윈도우 8 정식버전에는 시작버튼이 없습니다


그래서 시작버튼이 없는것에 적응을 못하시는 많은 분들이

Classic Shell 같은 다른 프로그램들을 설치해서 사용하고 계시죠


하지만 시작버튼의 사용 횟수는 적은편이라 그런것 까지 설치해가면서

이용하고 싶지는 않은 분들도 있을 것 입니다


그런 분들을 위해 포스팅 합니다
윈도우8 다른 프로그램 설치 없이 시작메뉴 만들기!!


일단 손꾸락 맘에 드는 걸로 한개 누르고 시작할까요?


먼저 작업표시줄에서 오른쪽 클릭을 해 작업표시줄 잠금을 해제합니다.


그리고 도구모음\새 도구 모음을 클릭합니다


그리고 다음의 경로를 입력하여 이동합니다

C:\ProgramData\Microsoft\Windows\Start Menu

그리고 폴더 선택 버튼을 눌러줍니다


그럼 가운데 시작 메뉴 라는 바로가기가 넓게 생기셨을 겁니다

보기 좋게 원래의 시작버튼 자리로 옮기고

크기를 최대한 줄여줍니다


그리고 작업표시줄은 다시 잠궈주세요 


이건 선택사항입니다만

다시 다음의 경로로 이동해서

C:\ProgramData\Microsoft\Windows\Start Menu

자주 쓰는 바로가기들을 복사해줍니다


그러면 원래 시작버튼을 눌렀을때 뜨는 것과 같이 바로가기들이 뜨고

프로그램 탭에 커서를 올려놓으면 모든 프로그램이 나오게 됩니다


아이콘들을 원하는 순서로 정렬 해주면

프로그램 설치 없이도 깔끔한 시작메뉴가 생겼죠


Creative Commons License