0. 들어가면서 앞의 방법에서는 fetchmail 데몬모드로 띄워서 접속을 유지시키고, 바뀐 ip 주소는 메일로 보내면 그 메일을 가지고 dyndns에 수동으로 등록시켜야 했습니다. 그런데 fetchmail이 중간에 죽는 일이 자꾸 생겨서 접속이 끊기는 일이 많았고, 수동으로 dyndns 에 등록 시키는 일도 아주 귀찮은 일이더군요. 앞의 글에서 고칠점 두 가지를 남겨 두었었는데, 그걸 이번에 다 고치도록 했습니다.
* 그리고 ADSL 접속 방법(pppoed를 이용한)에 관해서는 [리눅스 작업물] 중 [리눅스 박스 만들기]를 참고하세요. 1. cron 사용 접속 유지와 도메인 네임 유지는 각각 쉘 스크립트를 만들어서 cron 을 이용해서 일정 시간 간격으로 실행시켜 줍니다. /etc/crontab
*/15 이렇게 하면 15분마다 실행되는 것을 몰라서 저번에는 0,15,30,45 이렇게 썼었네요. 부끄러~ keep_ppp 가 2분 마다 실행되는 ppp 접속 유지 스크립트이고, dynip.sh 이 15분 마다 실행되는 dynamic domain 유지 관련 스크립트입니다. crontab 의 내용을 고쳐준 후 crond 를 restart 시켜야 되는 것 맞지요 ? .. 2. 접속 유지 ifconfig ppp0 로 확인해서 ppp0가 살아있더라도 접속이 안 되는 경우가 있기 때문에 ping을 써서 제일 만만한 주소(여기서는 ns.kornet.net)로 접속 확인을 하는 방법을 병용합니다. 그렇게 하기 위해서 채윤기님이 만든 pingtest란 스크립트를 쓰기로 합니다. /root/start/pingtest
keep_ppp 는 while loop를 써서 무한루프로 돌릴 수도 있지만, 저는 cron에 등록시켜서 2분에 한 번씩 실행하고 있습니다. /root/start/keep_ppp
3. dyndns 등록 유지 원래는 채윤기님의 소스처럼 nslookup을 이용해서 얻은 자신의 dynamic domain의 IP와 ifconfig ppp0 로 얻은 실제 리눅스박스의 ip 주소를 비교해서 다르면 새로 등록시키기로 했었는데, 그렇게 하니까 nslookup쪽의 문제가 있어서 매번 두 IP 가 다른 것처럼 나와서 밤새도록 새로 등록하더군요.(제 경우에는 ADSL 회선상태가 별로 안 좋거든요.) 결국 dyndns.org 에서 abuse 라고 block 당하기도 했습니다. 그래서 예전과 같이 한 번 받아둔 IP를 파일로 저장해서 그 파일과 다를 경우에만 새 접속인 것으로 판단하도록 해 두었습니다. * dynip.sh 에는 접속 유지 부분이 들어있지 않습니다. 접속이 안 된상태라면 그냥 나가버리도록 했습니다. * dyndns.org에 IP를 등록시켜주는 클라이언트로서 ddup란 프로그램을 사용했습니다. 소스를 받아서 컴파일 해 주시면 되는데 간단합니다. 받으셔서 압축을 풀고 ./install 해 주시고 화면에 나오는 데로 따라가면 됩니다. 저는 그냥 /usr/local/ddup 에 설치를 했습니다. /root/start/dynip.sh
|
dunip.sh