레이블이 Computer인 게시물을 표시합니다. 모든 게시물 표시
레이블이 Computer인 게시물을 표시합니다. 모든 게시물 표시

2013. 11. 23.

Port Forwarding, 공유기를 통해 각종 포트 사용하기


 만약 집에서 공유기를 쓰고 계신다면 각종 프로그램에서 네트워크를 통해 다른 사람과 연결이 되지 않는 경우가 종종 있었을 겁니다. 예를 들어서 게임을 하는데 내가 서버를 열면 다른 사람이 내 서버로 접속을 하지 못한다거나, 내 컴퓨터에 웹페이지 서버나 FTP 서버를 열었는데 접속이 되지 않는 등의 문제가 생각보다 많이 발생합니다.

 이런 종류의 문제는 모두 공유기 때문에 생기는 일입니다. 공유기 밑에 컴퓨터가 3대가 있다고 하면, 외부 주소로 아무리 접속해도 공유기는 내부의 컴퓨터 3대 중에서 어떤 컴퓨터로 이 연결을 보내야할지 모르기 때문에 외부 요청이 차단되는 것이지요. 그래서 공유기를 잘 설정해줘서 원하는 프로그램이 원하는 컴퓨터에 연결될 수 있도록 해주는 것은 매우 중요한 일입니다. 그리고 이런 문제는 공유기가 여러 대가 있을 때에도 각각의 공유기를 모두 설정함으로써 해결이 가능합니다.




 1. 공유기 주소 찾기

 먼저 공유기를 설정하기 위해서는 공유기에 있는 설정 화면에 접속해야 합니다. 보통 이 화면은 http를 통해서 만들기 때문에 http://공유기 주소 를 입력하면 되는데 문제는 바로 공유기 주소가 어떻게 되는가 하는 점입니다. 일반적으로 제조사에서 IP를 고정하여 사용하기 때문에 제조사별 공유기 주소를 설명서 등에서 찾을 수 있지만... 공유기는 사실 Gateway의 역할을 하는 것이기 때문에 컴퓨터에서 간단한 명령어를 통해서 Gateway의 주소를 확인할 수 있습니다.


 "Windows 키 + R"을 눌러서 실행 화면을 열고 "cmd"를 입력합니다. 그 후에 "ipconfig"라는 명령어를 입력하면 아래와 같이 IP 주소를 얻을 수 있습니다.



 여기서 저는 "무선 LAN 어댑터"를 사용하기 때문에 이 부분을 보면 되고, 만악에 유선랜을 사용하실 경우에는 "이더넷 어탭터"를 보시면 됩니다. "IPv4 주소"는 제가 공유기에 의해서 받은 내부 IP 주소이며, 공유기의 주소는 "기본 게이트웨이"에 표시되어 있습니다.

 그러면 제가 사용하는 공유기의 주소는 "192.168.219.1"이 되겠군요. 이제 접속해 봅시다.



 2. 공유기 접속하기

 공유기에 접속하는 방법은 바로 위에서 얻은 IP 주소를 웹브라우저에서 주소창에 입력하시면 됩니다. 그러면 일반적으로 계정과 암호를 요구하는 화면을 보게 됩니다. 제가 사용하는 공유기는 오직 암호만 요구하는군요.


 계정과 암호의 기본값이 일반적으로 공유기의 사용 설명서에 적혀있거나 통신사에서 집에 방문하여 설치해주는 공유기의 경우는 암호를 공유기에 붙여놓거나 따로 알려주는 것이 보통입니다. 어쩌면 본인이 따로 설정해둔 계정과 암호를 쓸 수도 있겠지요.

 기본 계정과 암호를 바꾸었는데 잊어버렸다면 공유기의 뒤쪽에 난 작은 홈 속의 버튼을 10초가량 길게 눌러서 공유기를 완전히 초기화 시킨 후에 기본 계정과 암호를 사용하는 방법이 있습니다. 이제 암호를 입력하고 들어가 보도록 하겠습니다.


 이 화면은 공유기의 상태를 자세히 보여주고 있습니다. 여기서 "인터넷 연결 상태"를 보시면 IP 주소가 하나 나오는데, 이게 바로 외부에 연결되는 IP 주소 입니다. 추후에 외부에서 접속할 때에는 반드시 이 주소를 사용해야 합니다. 192로 시작되는 내부 주소를 사용할 경우에는 외부에서 접속이 당연히 되지 않습니다.



 3. 공유기 설정 하기

 이제 원래 목적이었던 Port Forwarding을 해보도록 하겠습니다. 일반적으로 이 옵션은 "고 설정"에 있는 경우가 많습니다. 공유기마다 "고급 옵션" 안에서도 위치가 다를 수 있으니 잘 찾아보시길 바랍니다.


 저는 운이 좋게도 "고급 설정" 첫 화면이  Port Forwarding으로 되어있군요. 이제 원하는 포트를 입력합니다. 앞서 포스팅한 IP cam의 경우는 8080이었으므로 8080이라고 쓰면 되고, FTP의 경우는 21, ssh의 경우는 22-23 등등 원하는 포트 번호를 입력하면 됩니다. 그 다음으로 아래에 IP 주소는 반드시 내가 연결하고 싶은 기기의 내부 주소를 입력하여야 합니다.

 제 IP cam은 주소가 192.168.210.124이므로 이 주소를 입력하고 포트는 0으로 놓습니다. 0일 경우는 외부에서 요구하는 포트에 저절로 내부 포트를 대응시켜 줍니다.


 추가를 눌러즈면 위와 같이 추가된 Port Forwarding 규칙을 볼 수가 있습니다. 그런 후에 반드시! 확인 또는 적용을 눌러주셔야 합니다. 그렇지 않으면 공유기에 이 설정이 저장이 되지 않고 그대로 날아가게 됩니다.


 확인을 누르면 공유기에서 설정을 적용중이라는 문구가 나오게 됩니다. 잠깐 기다리면 옵션이 적용되고 다시 원래 화면으로 돌아가게 됩니다. 이러면 Port Forwarding은 잘 적용되었습니다.



 4. 설정 확인하기

 이제 마지막으로 공유기의 설정이 잘 적용되었는지 확인하는 일만 남았습니다. 그러나 한 가지 문제점이 있다면, 내부 주소를 가진 컴퓨터나 핸드폰으로 외부 주소를 입력해서 테스트를 할 수는 없습니다. 즉, 공유기 외부의 네트워크에 연결된 기기로 테스트를 하여야 한다는 뜻입니다. 그래서 저는 제 아이폰에서 WiFi를 끈 상태로 테스트 하였습니다.

 테스트 방법은 역시 앞선 포스팅에서 했던 IP cam을 사용하려고 합니다. 이 포스팅에서는 내부 주소를 사용해서 IP cam을 연결했었는데, 이번에는 외부 주소를 통해서 연결해 보도록 하겠습니다.


 위와 같이 이번에는 외부 IP 주소를 입력해서 카메라를 세팅하고 나와보면 화면이 잘 나옵니다. 오른쪽 이미지에서 Camera 1은 외부 주소로 접속한 IP cam이고 Camera 2는 내부 주소로 접속한 IP cam 입니다. 잘 동작하는군요.



안드로이드 IP cam에 접속하는 여러 가지 방법


 앞선 포스팅에서 안드로이드 폰을 이용해서 IP cam을 만드는 방법에 대해서 소개하였습니다. 그러면 이제 IP Webcam 앱을 통해서 제공되는 server에 접속하는 방법을 알아볼까 합니다. 사실 거의 다 비슷한 원리인데 그래도 자세히 소개해 보려고 합니다.



 1. 웹 브라우저로 접속하기

 먼저 가장 쉬운 방법은 웹 브라우저에 서버 주소를 입력하고 접속하는 방법입니다. 이 방법은 다른 IP cam 관련 어플리케이션이나 프로그램에서는 동작하지 않을 수 있으며 안드로이드의 IP Webcam 앱에서는 잘 동작합니다.

 앞서 만든 서버에 내부 주소를 통해서 접속해보면 다음과 같은 화면을 볼 수 있습니다.





 2. IP cam 전용 프로그램으로 접속하기

 프로그램을 통해서 IP cam에 접속하는 방법은 결국은 네트워크로 스트리밍되는 주소를 입력해서 받아오는 방법입니다. 그 중에서 한 가지 방법은 일전에 소개해 드린 iSpy라는 프로그램을 사용하는 방법입니다. (링크 : http://lamanus.blogspot.kr/2013/11/ispy-ip-cam-cctv.html)

 그러나 그저 화면을 보고싶을 뿐인데 복잡한 프로그램을 통해서 화면을 보는 것은 매우 곤란한 일입니다. 그래서 가장 편한 방법중에 하나는 바로 VLC 프로그램을 통해 네트워크 스트리밍을 연결하는 것입니다.  (VLC 프로그램 링크 : http://www.videolan.org/vlc/index.html) 가장 간편한 방법은 1번으로 접속해서 맨 위의 메뉴를 클릭한 뒤에 playlist.m3u를 받아서 VLC로 실행하는 방법입니다.

 또는 VLC 프로그램을 실행하여 직접 접속하는 방법입니다. 먼저 VLC 프로그램을 실행하면,


이와 같은 화면이 나타납니다. 여기서 네트워크 스트림 열기를 들어가면,


 주소를 입력하는 화면이 나오고 여기에 http://주소:포트/video 라고 입력하게 되면 화면에 바로 연결이 됩니다.





 3. 스마트폰을 통해서 접속하기

 가장 이동성이 높은 방법은 바로 또 다른 스마트폰을 통해서 IP cam에 접속하는 방법입니다. 이 역시도 앱이 필요한데 제가 사용하는 IP cam viewer 라는 프로그램은 안드로이드와 아이폰에 모두 있습니다. 제 본래 핸드폰은 아이폰인 관계로 아이폰을 가지고 살펴보도록 하겠습니다.

 먼저 IP cam viewer lite라는 프로그램을 받습니다. (pro도 있습니다만 유료라서..)


 그리고 프로그램을 실행하면 demo IP cam들이 나옵니다. 무시하고 카메라 설정으로 들어가보면 IP cam의 Type을 입력하는 화면이 나옵니다.


 제가 사용하는 카메라는 안드로이드의 IP webcam이라는 앱이기 때문에 이를 찾아서 등록해주면 됩니다. 아마 다른 앱들은 이런식으로 바로 연결이 불가능하고 일일히 수동으로 설정을 하여야 할 수도 있습니다.


 IP cam의 Type을 지정해 주었으면 이제 IP를 입력하고 Port를 정확히 입력합니다. 그 후에 test를 누르면 정보를 받아왔는지 확인하고 아래에 화면이 뜨게 되죠. 이제 Save를 하고 밖으로 나가서 카메라를 눌러보면 마지막 사진과 같이 화면이 나타나게 됩니다.



 지금까지 공유기 내부 주소를 통해서 IP cam에 접속하는 방법을 알아보았습니다. 공유기 외부 주소를 이용하시려면 (통신사 제공 IP) 공유기에 들어오는 외부 IP 주소를 적어놓으신 후에 공유기에서 Port Forwarding을 통해서 외부에서 원하는 기기의 포트를 사용하기 위한 요청을 내부에서 정확히 그 기기로 연결해 주어야 합니다. 이런 과정이 없다면 외부 주소를 통해서 아무리 접속을 시도해도 매칭이 되지 않아서 접속이 되지 않습니다. 다음 포스팅을 참고하시길 바랍니다.


2013. 11. 16.

iSpy, 컴퓨터로 IP cam을 연결해서 CCTV처럼 사용하기


 흥미로운 프로그램 하나를 소개할 까 합니다. 이름은 제목에 언급한 iSpy라는 프로그램 입니다. 이 프로그램의 목적은 ip 주소가 있는 카메라에 연결해서 CCTV처럼 ip cam을 모니터랑 할 수 있는 프로그램입니다.




 이 프로그램인 일단 프리웨어인 점에서 만족스러운데, 더욱 대단한 것은 유료 프로그램에 맞먹거나 뛰어넘는 막강한 기능들을 보유하고 있습니다. 다만 단점은 막강한 기능들을 사용하기 위해서는 다양한 옵션을 설정해 주어야 하는데, 이 옵션들이 너무 많네요...

 저는 홈페이지에서 다운로드 받을 때에, 윈도우용 64비트 버전을 찾아서 받았습니다. 기본으로 32비트가 설정되어 있으니 참고하시길 바랍니다. 이제 iSpy의 인터페이스를 살펴보도록 하겠습니다.


 기본적으로 간단한 메뉴들과 모니터링하는 내 화면, 그리고 아래쪽에는 내가 저장한 비디오나 이미지들이 나오며 전체 모니터에 명령을 내릴 수 있는 명령창이 있습니다. 이제 모니터를 설정해 보도록 합시다.


 메뉴에서 Add를 선택하면 다양한 옵션들이 나타납니다. 제가 연결하고 싶은 것은 IP cam이기 때문에, IP Camera with Wizard를 선택하도록 하겠습니다.



 그러면 제일 먼저 카메라 모델을 고르도록 나옵니다. 제가 현재 테스트 하고 있는 IP cam은 안드로이드에서 제공하는 IP cam이라는 app이기 때문에, Android IP cam을 선택하면 됩니다. (핸드폰으로 IP cam을 만드는 방법은 추후 게시글에서 다루도록 하겠습니다.)



 보안 설정은 아래와 같이 나오지만, 제가 설정을 해 두지 않은 관계로 보안 부분은 그냥 건너뛰겠습니다.



 그 후에 IP cam에 연결하기 위한 주소 입력 화면이 나타납니다. 저는 집 안의 공유기 아래에서 테스트를 하고 있기 때문에 internal ip 주소를 사용하지만, 외부에서 사용할 시에는 반드시 공인된 external ip 주소를 사용함과 동시에 port forwarding을 통해서 해당 포트를 IP cam에 연결시켜 주어야 합니다. (추후 자세히 다루도록 하겠습니다.)



 이제 카메라에 연결하기 위한 기본 과정은 끝났습니다. 이 과정을 지나면 해당 주소에 연결할 수 있는 video 연결 링크를 테스트하게 되는데, 여기서 해당 주소들이 제대로 연결이 되지 않으면 활성화 가능한 링크가 없다고 표시되면서 아무것도 연결이 되지 않습니다. 반드시 주소와 포트를 다시 한 번 체크하신 후에 진행해서 가능한 연결이 화면에 뜨는지 확인합니다.

 저의 경우는 자동 연결과정을 건너뛰고 수동 화면에서 Video Source를 VLC Plug-in을 통해서 연결하였습니다. 주의점은 VLC를 통해서 연결하려면 반드시 VLC 프로그램이 설치되어 있어야 합니다. (VLC 프로그램 링크 : http://www.videolan.org/vlc/index.html)



 제가 IP cam으로 사용하는 안드로이드 프로그램의 경우는 VLC의 주소가 http://ip:port/video 로 주어지는 것 같습니다. 이제 이 과정을 넘어가면, 드디어 IP cam에 대한 자세한 설정을 요구하는 화면이 나타납니다. 옵션 설정시 주의할 점은, 자동으로 레코딩이 안되도록 하는 것만 잘 하시면 큰 문제 없습니다. (기본적으로 화면이 움직일 경우 녹화가 되도록 되어 있더군요...)


 위의 옵션창에서 제일 먼저 Alerts 탭으로 가셔서 Alerts Enabled를 체크 해제합니다. (굳이 안하시면 화면이 움직일 때마다 컴퓨터에 알림이 작게 표시됩니다.) 그 다음으로 Recording 탭으로 가셔서 No recording을 선택합니다. 다른 옵션을 선택하면 화면이 움직이거나 할 때마다 전부 녹화시켜 버립니다...


 그리고 이제 다시 처음의 Camera 탭으로 돌아오면 중간에 Microphone 탭이 있습니다. 여기서 Audio 설정을 해 줄 차례입니다. [...] 버튼을 클릭하셔서 New를 선택하면 Audio 설정 화면이 나타납니다.



 제가 사용하는 안드로이드 IP cam에서는 Audio 소스를 따로 제공하고 있습니다. 그래서 FFMPEG를 선택하고 http://ip:port/audio.wav를 입력하였더니 정상 작동하였습니다. IP cam이 작동중일 때에 test를 해 보시면 OK라고 떠야 정상입니다. 이제 추가한 화면을 켜보면 아래와 같이 나타납니다.


 보시다시피 화면이 잘 나오고, 화면 아레 작게 LIVE라고 써인 창이 Audio인데, Audio도 정상으로 잘 작동하고 있습니다. 이 상태에서 화면을 우 클릭한 뒤에 Edit을 하면 처음 Camera 셋팅시에 나왔던 옵션 창이 나타납니다. 여기에서 Recording 탭에 가셔서 적당한 필터를 고른 후에 Finish로 종료 후, 화면을 다시 우 클릭하여 Start Recording을 하시면 녹화 및 녹음을 바로 진행할 수 있습니다.

 자세한 녹화 옵션은 이것저것 직접 시도해 보셔야 할 겁니다. 적당한 Resolution이라던지 아니면 FPS라던지 하는 부분은 IP cam의 성능이나 네트워크에도 밀접한 연관이 있기 때문이지요.


 집에서 고양이가 뭐하고 노는지 지켜보고자 어머니가 쓰시던 안드로이드 폰을 어머니께서 IP cam이라는 앱을 깔아 저에게 어떻게 이걸 외부에서도 볼 수 있냐고 여쭤보시면서 시작된 저의 IP cam 탐사기는 결국 제 컴퓨터에 CCTV처럼 IP cam을 살펴볼 수 있는 프로그램을 설치하게끔 하였고 심지어 이제는 녹화까지 가능하게 되었네요. 덕분에 많은 기능을 새로 배웠습니다.




 2013. 11. 22. 추가

 iSpy는 절대 간단하게 IP cam을 설정할 수 있는 방법이 아닙니다. 각종 앱을 알아본 결과, 간단하게 컴퓨터와 스마트폰을 이어주는 앱들이 여럿 존재하는 것을 발견하였습니다. 이를 통해서 녹화도 가능합니다. 다만 모션 인식, 모션 인식, 그리고 다중 IP cam을 볼 수 있는 등의 세부적인 옵션들이 있기 때문에 용도에 맞게 프로그램을 선택해서 사용하시는 것이 좋습니다.


2013. 11. 12.

가벼운 C언어 컴파일러, Dev-c++를 소개합니다.


 보통 C언어 코드를 작성하고 컴파일하는데 Microsoft Visual Studio를 많이 사용합니다. 그런데 이 프로그램은 보통 무거운 것도 아니거니와 설치하는데도 오래걸리고 저한테는 쓸모없는 기능들이 너무나 많습니다. 그래서 가벼운 프로그램을 찾던 도중에 발견한 것이 바로 Dev-c++ 입니다.


 프리웨어라서 딱시 라이센스도 필요 없고 좋습니다. 셋업파일 용량도 10MB 이내로군요. 다운로드 받아서 설치를 해보도록 하겠습니다. 중간에 어떤 파일, 패키지를 설치할 지 물어보는데 그냥 저는 Full로 설치를 했습니다.


 그리고 설치를 마친 후에 프로그램을 실행하면 설정창이 나오는데, 그냥 적당히 눌러주고 넘어가면 프로그램이 실행됩니다.


 여기까지 도달하는데, 2분도 채 걸리지 않네요. 물론 Visual Studio가 가진 기능들을 모두 쓸 수는 없을 것입니다. 그러나 본격적인 코딩을 하려는 것이 아닌 이상, 이 프로그램이 좀 더 빠르고 가볍게 사용할 수 있다는 사실은 정말 큰 장점이라고 생각합니다.

 주의사항으로는 처음에 Console Application으로 프로젝트를 만들면, 기본적으로 main.cpp 파일이 들어가 있는데, C언어로 사용하고 싶으면 main.c로 이름을 고치고 내용을 지워버리면 됩니다.




 이게 Windows 8에서는 g++ 프로그램의 에러가 나타나는군요. 그래서 무엇이 문제인지 알아보니, 위에 소개한 프로그램은 너무 오래된 버전이라고 합니다. 제가 방금 받아서 오류가 난 버전이 5.0 베타인데, 아래 링크로 걸어드리는 것은 5.5.3 버전이네요. 내부에 포함된 프로그램을 업그레이드 하여 오류가 나지 않는다고 합니다.

 코딩 화면을 예시로 하나 첨부합니다.




2013. 11. 8.

.pst 파일에 담긴 메일을 Gmail로 옮기기


 꽤나 오래전부터 학교 이메일을 쓰다보면 적은 용량때문에 pop3를 통해서 Outlook으로 전부 저장해 두었습니다. 그런데, 시간이 지날수록 컴퓨터도 여러 대를 쓰게 되고 이곳 저곳에서 예전의 이메일을 찾아보고 싶지만, 로컬 컴퓨터에 저장된 이메일에 쉽게 접근하기는 어려웠습니다. 그래서 Outlook의 .pst 파일을 통채로 웹메일 서비스로 옮기고자 하는 마음은 여러 달 전부터 있었는데, 어떻게 옮길지 막막해 하다가 이제서야 매우 간단한 방법을 찾았습니다.

 지금부터 소개할 방법은 사실 너무 간단해서 깜짝 놀랄만 하지만 단점으로는 매우 느린 속도, Gmail의 폴더 미지원으로 인한 폴더 동기화 불가 등이 있습니다. 중요! 폴더 동기화시에 메일이 날아가는 불상사가 생길 수 있으니 반드시 복사를 하여 옮겨주세요!


 먼저 Outlook에 .pst 파일을 로드한 후에,  IMAP으로 Gmail을 연결합니다.



 그 후에 제 이메일에 들어가서 받은 편지함을 싹 비워놓았습니다.



 이제 Outlook의 받은편지함에 있던 모든 메일들을 선택한 다음, Gmail의 받은편지함으로 모두 드래그하여 옮겨보았습니다.



 그랬더니 Gmail의 받은편지함에 이메일들이 서서히 업데이트 되기 시작합니다. 이 작업을 하는 동안 Outlook을 종료하면 작업이 중지되기 때문에 반드시 켜두시길 바랍니다.




 이제 Gmail에서 모든 메일을 관리할 수 있게 되었습니다. 아마 이 방법은 다른 메일에도 적용할 수 있을 것 같습니다. 작업 도중 오류가 몇 번 났는데, 메일의 용량이 너무 크면 (아마도 첨부파일 때문에) 제대로 옮겨지지 않는군요. 그 외의 메일들은 잘 옮겨졌습니다. 차근차근 제가 가지고 있는 파일들을 모조리 옮겨야겠네요. ^^;