歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> 更多Linux >> 一項實用的技術:Linux下的PPP連接

一項實用的技術:Linux下的PPP連接

日期:2017/2/27 14:24:47   编辑:更多Linux
  在家庭網絡和“家庭辦公”一族中,PPP連接是非常實用的一項技術。本文將詳細講解在Linux局域網服務器中如何撥出和撥入的方法與技巧,即如何讓Linux服務器成為PPP的客戶端和服務器,同時講解如何設置回撥服務。     Linux下如何撥號上網   在Linux服務器中設置PPP,使其能夠撥號,並能連接到ISP,從而將計算機與Internet相連。下面為Linux PPP客戶端設置的一般步驟。     1.編譯內核使其支持PPP     在大多數情況下,不用重新編譯內核。如果不能確認Linux是否需要編譯,可以查閱說明文檔,注意這個內核是否支持PPP。     2.設置串行端口和調制解調器     (1)串口設備文件     Linux下串口設備文件的命名和DOS的關系如下:     DOC COM1=Linux/dev/cua0(and/dev/ttyS0)     DOC COM2=Linux/dev/cua1(and/dev/ttyS1)     一般來說,/dev/cua*是用來撥出的,/dev/ttyS*是用來撥入的,但現在已經可以不加以區分了,都用的是/dev/ttyS*。如果計算機上沒有/dev/ttyS*,則需要用mknod來建立這些設備文件。有個腳本程序MAKEDEV可以簡化這個工作:     # cd/dev     # ./MAKEDEV ttyS0     (2)設置中斷號和I/O地址     使用如下命令設置中斷號:     /sbin/setserial/dev/ttyS0 ieq 3#串行鼠標     /sbin/setserial/dev/ttyS1 ieq 4#MODEM1     使用如下命令來查看系統的中斷設置,以確保沒有中斷沖突:     cat/proc/interrupts     I/O地址與中斷一樣必須是惟一的,可以設置硬件跳線來改變I/O地址。一般串行口的I/O地址是這樣的:     ttyS0 address 0x3f8     可以使用下面命令來查看系統的I/O地址設置,以確保沒有沖突:     cat/proc/ioports     (3)設置調制解調器     一般情況下,調制解調器的出廠設置不用改變什麼。     3.掌握ISP的信息     需要知道ISP一些基本信息,特別是DNS地址,並自己設置DNS。因為對於Linux來說,它不允許在連線之時動態地指定DNS的IP地址。     4.安裝撥號所需軟件     PPP客戶所需的程序有chat和pppd。還有一個終端通信程序minicom,用來測試撥號用的,也要安裝上。     chat程序的用途是撥號,並等待提示,根據提示輸入用戶名和密碼等登錄信息。pppd的用途是建立並維持與服務器的PPP連接,並傳輸數據。     5.手動方式建立ppp連接     整個ppp連接很明顯可分成兩個步驟:     (1)用pppd建立ppp連接     測試撥號能否成功,退出,然後執行pppd程序如下:     pppd debug lock Modem crtscts defaultroute /dev/ttyS1 115200&     在一個單獨的虛擬控制台上運行下面代碼:     tail-f/var/log/messages     動態地觀察各種日志信息,包括pppd的調試信息。如果看到下面信息就說明PPP連接成功了:     Jun23 16:10:31hxf pppd[1234]:local IP address210.88.131.151     Jun23 16:10:31hxf pppd[1234]:remote IP address192.168.10.21     (2)斷開連接     當測試通過後,需要把連接斷掉,使用如下命令:     Killall pppd     6.使PPP連接自動化     在經過手動連接測試之後,就要把這些變成自動的,目的是只用一個命令就能實現撥號連接。     要使撥號自動化需要兩個程序chat和pppd。要得到自動撥號的效果,具體的可查看相關資料。     7.設置域名解析(DNS)     Linux下設置域名解析不太方便,域名服務器需要自己設定。     (1)設置域名服務器     /ect/resolv.conf文件是存放域名服務器地址的地方,它的內容是這樣的:     domain your.isp.domain.name     nameserver202.106.196.152     nameserver202.106.196.115     需要做的事情就是把ISP的域名服務器地址填到這個文件裡。     (2)自動化     也許只想在撥號時才加上域名服務器地址,別的時間不需要,因此除了手動之外,還可以讓這個過程自動化。可以建立/etc/ppp/ip-up.local和/etc/ppp/ip-down.local兩個執行的腳本文件。pppd啟動之後,會執行/etc/ppp/ip-up.local裡的命令;而pppd結束時,會執行/etc/ppp/ip-down.local裡的命令。可以先生成一個包含域名服務器的文件,在ip-up.local中將這個文件改成/etc/resolv.conf,並將/etc/resolv.conf保存下來。在ip-down.local中再將保存的/etc/resolv.conf恢復回來。這樣就可以實現添加域名服務器的自動化了。     在局域網中設置撥入服務器     在局域網中設置撥入服務器目的就是將Linux局域網設置成跟ISP一樣的撥號服務器。假設用戶在公司用Linux設置了撥號服務器,然後在家裡通過撥號連到公司的撥號服務器上,進而訪問公司的局域網,如此就可以實現“家庭辦公”。如果公司的服務器是連在Internet上的,用戶就可以浏覽Internet了。“設置基本的撥號服務器”將告訴用戶怎樣實現這一功能。“回撥(Callback)”將講述怎樣節省聯網所需的電話費。     因為已經介紹如何用Linux服務器做PPP客戶端,所以這一節用Windows 98做客戶端來配合講述Linux服務器。     1.設置基本的撥號服務器     如果安裝了PPP服務,可以將/etc/sysconfig/network文件裡FORWARD_IPV4=false改成true就行了。之後需要重啟以激活IP轉發。     (1)使Liunx能夠接受電話撥入     現在要做的就是使Modem所接的那個串口可以接受外來連接。打開/etc/inittab,會看到這樣的幾行代碼:     #Run gettys in standard runlevels     1:2345:respawn:/sbin/mingetty tty1     2:2345:respawn:/sbin/mingetty tty2     在這幾行之後,加上如下一行代碼:     3:2345:respawn:/sbin/mgetty ttyS1     它的意思就是讓Mgetty的串口ttyS1上監聽,等待連接,如果有連接請求,Mgetty就向用戶提示輸入用戶名和密碼。     修改好之後,要使修改有效,可以運行如下代碼:     init q     為了從遠端登錄,還要有一個賬號,用useradd命令加一個叫ppp的用戶,並用passwd命令為它設置口令。     (2)啟動pppd與客戶建立PPP連接     打開/etc/passwd文件,找到用戶ppp的那一行,應該是這樣的:     ppp:x:500:500::/home/ppp:/bin/bash     由此可以看出,用戶ppp使用的shell程序是bash,現在要做的就是用pppd換掉這個bash。這樣當用ppp登錄時,就不會執行bash,而是執行pppd。如此,pppd就在服務器端啟動了。     具體可以在/etc/ppp建立一個ppplogin文件,內容如下:     #!/bin/sh     exec/usr/sbin/pppd debug passive asyncmap 0 proxyarp lock Modem crtscts     chmod+x ppplogin     用ppplogin替換用戶ppp的登錄shell,就像如下代碼:     ppp:x:500:500::/home/ppp:/etc/ppp/ppplogin     由於pppd執行必須要root權限,所以還要將pppd設成以root權限執行:     chmod u+s/usr/sbin/pppd     替換了登錄shell和修改pppd屬性之後,可以試一試。與前面介紹方法一樣進行撥號,在輸入用戶名和密碼之後,如果能看到pppd所特有垃圾字符,並且一行一行的沒完,就說明服務器端pppd已經啟動了。接著單擊“繼續”按鈕,也就是啟動客戶端的pppd,與服務器的pppd進行握手。過了一段時間,就會看到登錄網絡成功,其標志就是熟悉的綠色小計算機出現了。     (3)針對Windows 98客戶的特殊設置     Windows 98要求域名服務器在連接的時候傳給它。pppd有個參數ms-dns,就是用來傳DNS給客戶的。在ppplogin裡加上這個參數就可以了,比如:     #!bin/sh     exec/usr/sbin/pppd debug passive asyncmap 0 proxyarp lock     Modem crtscts ms-dns 202.106.0.20     這兩個DNS中,第一個DNS是主,第二個DNS是輔的。     2.回撥(Callback)     Callback就是當用戶撥號連到撥號服務器時,服務器先斷掉連接,然後再撥回給用戶。用戶的Modem接收這個呼叫,從而建立撥號連接。這樣就給“家庭辦公”創造了有利條件,可以在家裡用回撥的方式連到公司進行辦公。     (1)服務器端設置     在設置之前,應該確保Mgetty的Callback程序安裝好了。將下面這行內容加到/etc/mgetty+sendfax/login.config中:     call_hxf--/usr/sbin/callback-d-l ttyS1-s 115200 -S 62345678     前面的call-hxf是指為Mgetty增加一個名為call_hxf的用戶入口。這個用戶只是Mgetty用來啟動Callback程序的,而不是Linux系統中的用戶,不要真的用useradd添加一個call_hxf用戶,這個call_hxf用戶名只是Mgetty用的,不是系統的。用戶通過Modem連到Linux上,Mgetty提示輸入用戶名時,如果輸入的是call_hxf,Mgetty就調用/usr/sbin/callback程序來處理回撥。參數-b是指在/var/log/mgetty.ttyS1留下調試信息;-1 ttyS1是指使用ttyS1為撥出設備;-s 115200是串口速率;-S 62345678是指定的回撥電話號碼。如果沒有-S




Copyright © Linux教程網 All Rights Reserved