Linux中兩種簡單替代花生殼的辦法

2010-08-28 10:52:28來源:西部e網(wǎng)作者:

  家里有機器,撥號上網(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"

關鍵詞:Linux