歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

用wvdial和ppp輕松上網

  wvdial是Linux下的智能化撥號工具,利用wvdial和ppp可以實現linux下的輕松上網。在整個過程中wvdial的作用是撥號並等待提示,並根據提示輸入相應的用戶名和密碼等認證信息;ppp的作用是與撥入方協商傳輸數據的方法並維持該連接。 一、wvdial及其相關配置 wvdial的功能很強大,會試探著去猜測如何撥號及登錄到服務器,同時它還會對常見的錯誤智能的進行處理,不象chat一樣,要求你去寫登錄腳本。wvdial只有一個配置文件 /etc/wvdial.conf。wvdial的啟動過程是這樣的:首先載入wvdial.conf配置文件,然後再初始化modem並撥號,撥號後等待撥入方的響應,收到撥入方響應後則啟動pppd。 可以用wvdialconf程序自動生成wvdial.conf配置文件,自行該程序的格式為: wvdialconf /etc/wvdial.conf 在執行該程序的過程中,程序會自動檢測你的modem的相關配置,包括可用的設備文件名,modem的波特率,初始化字符等等相關的撥號信息,並根據這些信息自動生成wvdial.conf配置文件。如果/etc/wvdial.conf文件已經存在時,再次執行該命令只會改變其中的 Modem、Band、Init等選項。一個典型的自動生成的配置文件可能是這樣的: [Dialer Defaults] Modem = /dev/ttyS1 Baud = 115200 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 ;Phone = ;Username = ;PassWord = wvdial的執行格式為: wvdial --help --version section 相關的說明如下: --help:顯示簡單的幫助信息 --version:顯示wvdial的版本號 section:這裡的section有點象windows裡的ini文件,一個wvdial.conf配置文件可以有好多個section,每一個section由一些變量組成,即由 變量=值 的語句組成,如上所示。使用wvdialconf自動生成配置文件時將會自動生成一些常用的變量說明如下: Inherits=InheritedSection: 使用wvdialconf自動生成配置文件時將會自動生成[Dialer Defaults],除此之外,你還 可以自定義你自己的section。程序運行時,首先載入[Dialer Defaults],然後再用指 定的section的相應選項覆蓋[Dialer Defaults]的相應選項。比如,我們在 wvdial.conf中還有[Dialer Tom],假如我們運行wvdail Tom,則系統將先讀入[Dialer Defaults],然後再用[Dialer Tom]覆蓋[Dialer Defaults]的相應選項。如果除了以上 的section之外還有[Dialer 169]並且內容如下: [Dialer Tom] Username=tom Password=xxx Inherits=169 [Dialer 169] Phone=169 如果這時候我們執行wvdial Tom則系統將先讀入[Dialer Defaults],然後再用[Dialer Tom]覆蓋[Dialer Defaults]的相應選項,最後再用[Dialer 169]的相應選項來覆蓋前二者的相應選項。由此可見,利用wvdial,我們可以很方便地在不同的ISP或modem之間來回移動(假如你有幾個ISP或medom的話)。 Medom=/dev/ttySx:用於指定是用的medom,缺省的為/dev/medom。當然,在這裡我們的medom是由wvdialconf自動檢測並配置的,所以我們可以忽略該變量。 Band=57600:wvdial與modem通信的波特率,同上可以忽略。 Area Code=xxxx : 設置區號 Dial Prefix=x: 假如你正在使用分機,撥外線需撥9時,可設該值為9。 Username=xxxx:登錄時的用戶名 Passwd=xxxxxx:登錄密碼 Phone=xxxxx: 所撥的號碼 PPPP Path=:設置pppd所在的路徑,缺省為/usr/sbin/pppd Force Address=x.x.x.x :設置靜態ip,一般的isp都會為你分配動態的ip地址。 New PPPD= 1 or 0: pppd 2.3.0及其以上版本需要/etc/ppp/peers/wvdial文件,如果你的pppd是2.3.0以上版本請設為1.


Auto Reconnect=on :斷線時是否自動重新連接,缺省設為是。 以上只是wvdial.conf中的常用選項,具體情參考wvdial手冊。 二、pppd及其相關配置 pppd的配置選項相對要復雜得多,你可以用命令行的形式引用有關的選項,也可以把要引用的選項寫到/etc/ppp/options中進行引用。 下面的示例文件包含了最常用的選項及其相關的說明: # /etc/ppp/options # 主機名稱 mng.null.edu.cn # 如果沒有給定本地ip, pppd 將使用主機的第一個ip地址; # 如果指定了"noipdefault" 選項, pppd將使用撥入方提供的ip地址 noipdefault # 選定該選項, pppd 將接受撥入方提供的ip地址 ipcp-accept-local # 選定該選項, pppd 將接受撥入方自己的ip地址 ipcp-accept-remote # 設置缺省網關 defaultroute # 在傳輸數據包之前,讓撥入方先自我認證,注意一般的ISP(如169、163)都不包含該機 # 制,故應選中noauth noauth # 使用硬件流控制 crtscts #將撥號信息作日志 debug 以上只是options中的常用選項,具體情參考pppd手冊。 三、一個實例 下面讓我們來看一個具體的應用,在該應用中我們實現了撥號和斷開連接的自動化。涉及到的配置文件有: /etc/wvdial.conf :wvdial的配置文件 /etc/ppp/option : pppd的配置文件 /etc/ppp/ppp-on :撥號自動化腳本 /etc/ppp/ppp-of : 斷開連接自動化腳本 步驟一:確保modem已經正確連接,linux已檢測並自動配置了該modem 步驟二:運行wvdialconf,生成 /etc/wvdial.conf 文件並修改如下: [Dialer Defaults] Modem = /dev/ttyS1 Baud = 115200 Init1 = ATZ Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 S11=55 +FCLASS=0 New PPPD= 1 [Dialer Tom] Phone = 169 Username = tom Password = ******* 步驟三:編輯並配置/etc/ppp/options,如下所示: noipdefault ipcp-accept-local ipcp-accept-remote defaultroute noauth crtscts debug 步驟四:編寫自動化腳本 1.撥號腳本 /etc/ppp/ppp-on: #!/bin/sh # This script initiates the ppp connections by wvdial wvdial tom & 2.斷開連接自動化腳本/etc/ppp/ppp-off: #!/bin/sh #!stop wvdial killall wvdial # If the ppp0 pid file is present then the program is running. Stop it if [ -r /var/run/ppp0.pid ]; then kill -INT `cat /var/run/ppp0.pid` echo "PPP link to ppp0 terminated." else echo "ERROR: PPP link is not active on ppp0" exit 0 fi exit 1

編輯完後,執行 chmod u+x /etc/ppp/ppp* 改變文件權限。到此大功告成,以後只要運行 /etc/ppp/ppp-on 便自動撥號,執行 /etc/ppp/ppp-of 便自動斷開連接。



Copyright © Linux教程網 All Rights Reserved