家里有機器,撥號上網(wǎng),有獨立的ip, 開了很多服務,想在外面隨時訪問怎么辦?出去的時候記住連線的ip? 萬一斷了線,自動重連以后ip也就變了,那么解決方法也許是用“花生殼”軟件;ㄉ鷼ひ灿蠰inux版本,確實是一個選擇,但是它相當于是把你的ip publish到網(wǎng)上的,假設你自己對自己的安全不是很放心(況且你也不知道花生殼是否搜集了你的什么信息),而且你的目的也只是小范圍使用(比如就你,你家人或者幾個要好的朋友)的話,那么這個動態(tài)ip完全可以通過個人郵件的方式來傳播,本人簡單摸索了兩個解決方案,一是基于knemo+kmail,二是基于 udev+mail+exim4,下面簡單介紹一下:
1. knemo + kmail
knemo是kde下面監(jiān)控網(wǎng)絡的軟件,支持事件觸發(fā),kmail是kde下面的郵件客戶端,支持dcop的腳本調用,配置的步驟如下:
創(chuàng)建一個自動獲得撥號連接ip并通過kmail發(fā)送的腳本:
#!/bin/bash
FROM="none"
TO="youname@xxxx.com"
CC="yourfiend@yyyyy.com"
BCC=""
SUBJECT="Today's PPP address"
sleep 10s
MESSAGE=`/sbin/ifconfig /bin/sed -e '/P-t-P/!d' -e 's/^[[:space:]]* inet addr://g' -e 's/[[:space:]]*P-t-P:.*Mask:.*$//g'`
ATTACHMENT="[] []"
dcop kmail MailTransportServiceIface "sendMessage(QString, QString, QString, QString, QString, QString, KURL::List)" "$FROM" "$TO" "$CC" "$BCC" "$SUBJECT" "$MESSAGE" $ATTACHMENT
然后將其作為knemo配置的notification當中的對應執(zhí)行的程序即可。
knemo配置是在 kcontrol -> internet&network -> network monitor -> Misc 面板上。
2. udev + mail + exim4
第一個方式很簡單,但是需要你是使用kde并且時刻將自己的桌面開著(因為比需要有knemo和kmail),第二個方式是獲取內核的硬件變動,萬一斷了重新連接,/sys/下面設備文件發(fā)生變化就觸發(fā),不依賴X和桌面系統(tǒng)。
exim4的配置這里就不說了,自己網(wǎng)上看。
對應的發(fā)送的腳本( /XXXXX/ppp-address.sh )修改如下:
#!/bin/bash
FROM="none"
TO="youname@xxxxx.com"
CC="yourfriend@yyyyy.com"
BCC=""
SUBJECT="Today's PPP address"
sleep 10s
MESSAGE=`/sbin/ifconfig /bin/sed -e '/P-t-P/!d' -e 's/^[[:space:]]* inet addr://g' -e 's/[[:space:]]*P-t-P:.*Mask:.*$//g'`
echo "$MESSAGE" /usr/bin/mail -s "$SUBJECT" -c "$CC" -b "$BCC" "$TO"
udev 規(guī)則添加:/etc/udev/rules.d/ 下面添加一個規(guī)則文件如 z100_ppp_ip_letter.rules 內容為:
ACTION=="add", SUBSYSTEM=="net", KERNEL=="ppp[0-9]", RUN+="/XXXXX/ppp-address.sh"