DNS-323 장비에서 mldonkey등 p2p 클라이언트를 실행하기에는 좀 버거운 감이 있다. 따라서 쉬고있는 다른 컴퓨터를 DNS-323에서 콘트롤 할 수 있게 하여 모자란 리소스를 채워보기로 했다. 즉, wake on lan을 통해 쉬고있는 컴퓨터를 깨우고, 깨운 컴퓨터가 다운로드 하게 한다. 다운로드가 완료되면 다시 잠자기에 들어가고... 이런 시나리오다.
일단 환경은 DNS-323과 MAC이다. 간단하게 dns, mac을 ip 주소 대신 쓰도록 하겠다. 참고로, /etc/hosts를 편집해두면 ip 대신 간단하게 이름으로 장치들에 접근할 수 있다.
- cky@DNS-323:~$ cat /etc/hosts
- 127.0.0.1 localhost.localdomain localhost
- 192.168.0.200 dns dns
- 192.168.0.1 dir dir
- 192.168.0.20 mac mac
먼저 필요한 프로그램을 dns에 설치한다. 다음 경로에서 wakeonlan 패키지를 다운로드 받아서 wakeonlan 스크립트를 dns장비의 /usr/bin에 복사해둔다. 그리고 이 스크립트를 실행하기 위해 perl을 설치한다. 이 과정은 ssh로 접속하여 chroot된 루트에 설치하는 것이 좋겠다. 외부에서 사용할 것이기 때문에...
http://gsd.di.uminho.pt/jpo/software/wakeonlan/
- # apt-get install perl
이제 wakeonlan 커맨드를 사용할 수 있는 상태가 되었다.
mac에는 mldonkey를 설치한다. mldonkey 다운로드 페이지에 보면, mac용 바이너리를 다운로드 할 수 있다. 적당한 디렉토리에 풀어두고 설정을 한다.
http://sourceforge.net/project/showfiles.php?group_id=156414
필요한 것은 다운로드가 완료되었을 때 처리하는 부분이다. mlnet의 설정파일인 downloads.ini파일에서 file_completed_cmd에 실행해 줄 스크립트를 넣어준다. 스크립트는 파일이 완료되었을 경우 실행이 되는것인데, ~/.mldonkey/incoming 디렉토리의 다운받아진 파일을 다른 곳으로 이동하는 정도면 된다. share 하는 것이 없으면 일정 시간 후 잠자기에 들어가게 된다.
- [cky@MBP mldonkey-distrib-2.9.4]$ cat move_complete.sh
- #!/bin/sh
- # move completed files
- mv ~/.mldonkey/incoming/directories/* ~/Downloads/
- mv ~/.mldonkey/incoming/files/* ~/Downloads/
이제 필요한 프로그램들은 다 설치가 되었다. 다음과 같은 준비 상태에서 접속을 시작한다고 가정한다.
- dns: ssh 연결대기중
- mac: sleep
외부에서 ssh로 dns에 접속한 뒤 wake on lan을 통해 mac을 깨우고, ssh로 mac에 접속, mlnet을 실행해주고 콘트롤을 위해 tunnel을 뚫어준다.
- $ ssh -L 4001:mac:4001 dns-ip-address
- $ wakeonlan 00:1b:63:b0:79:23 ;; mac address of en0
- wakeonlan 00:1b:63:b0:79:23
- Sending magic packet to 255.255.255.255:9 with 00:1b:63:b0:79:23
- $ ssh mac
- Password:
- $ cd mldonkey-directory/
- $ ./start_mlnet.sh
이제 sancho를 통해 mac의 mldonkey를 콘트롤할 수 있다. localhost:4001로 접속하면 접속이 될 것이다. 웹 인터페이스를 열려면 mlnet의 설정에서 web 접속으로 사용하는 포트를 터널링 하면 된다.
참고로 start_mlnet.sh은 다음과 같이 작성하면 된다. ssh 쉘을 닫아도 계속 실행되도록...
- [cky@MBP mldonkey-distrib-2.9.4]$ cat start_mlnet.sh
- ./mlnet > /dev/null 2> /dev/null < /dev/null &
그리고, mac은 유선으로 en0에 연결되어 있어야 하며, LCD가 열려있는 상태여야 한다. LCD가 닫혀있는 상태에선 깨자마자 바로 다시 잠들어버려서 ssh를 통해 접속할 수가 없었다. 무선으로 wake on lan 하는건.. 해보진 않았지만 안 될 것 같아 패스.


Trackback (0)
Comment (2)