linuxppp
⑴ linux 系統 里能創建多少個ppp口
理論上
ulimit限制多少,就可以建多少
最多65535
⑵ linux怎麼啟動ppp和tun
那個一般都沒有用,API那個介面可以外部調用進行vps管理而不需要登陸服務商提供的VPS管理後台,需要自己編程序,一般用不上。 TUN/TAP 和PPP是為了搭建V、P、N服務所需要的功能,一般默認都是關閉的。
⑶ 嵌入式linux ppp撥號上網時, 輸入pppd call cmnet 後無反應,ifconfig查看無ppp0,求高手指教
這樣得到的內容太模糊了,大家沒有辦法幫您。
建議你開兩個終端,然後一個終端執行
tail -f /va/log/message
一個終端執行
adsl-connet
得到message的日誌內容,才能分析解決的辦法
⑷ linux下怎麼用腳本返回ppp0介面的IP地址
要是只是想區分兩個介面撥的PPPOE介面名的話。。。
可以指定linkname這是PPPD裡面的一個選項。。。
不同的乙太網口指定不同的linkname就可以了
撥號成功後會在/var/run/下面生成一個你設定的PPP-linkname的文件
比如PPP-1,裡面有對應的PPPOE介面名如PPP1
這樣就可以區分了。。。要是想定死為PPP0的話可能只有修改源代碼了。。。
⑸ linux中定義eth0介面和ppp0介面,他們分別與哪些物理設備相對應。
eth0 一般來說就是對應第一個網卡.
ppp0是虛擬介面
⑹ linux下ppp撥號過程中APN等參數是如何傳入
參考模型共分七層,自下而上分別是物理層、數據鏈路層、網路層、傳輸層、會話層、表示層和應用層。通常我們會依據協議所完成的功能將它與這七層進行對照,PPP協議就屬於數據鏈路層。
PPP協議主要包括三部分:LCP(Link Control Protocol)鏈路控制協議、NCP(Network Control Protocol)和PPP的擴展協議(如Multilink Protocol)。隨著網路技術的發展,網路帶寬不再是瓶頸,所以PPP擴展協議的應用越來越少,因此往往人們在敘述PPP協議時經常會忘記它的存在。而且大部分網路教材上會將PPP的認證作為PPP協議的一個主要部分,實際上這是一個錯誤概念的引導。PPP協議默認是不進行認證配置參數選項的協商,它只作為一個可選的參數,當點對點鏈路的兩端需要進行認證時才需配置。當然在實際應用中這個過程是不可忽略的,例如我們使用計算機上網時,需要通過PPP協議與NAS設備互連,在整個協議的協商過程中,我們需要輸入用戶名和密碼。因此當別人說PPP協議主要包括LCP、認證和NCP協議三個部分時,不要認為他的說法有誤,而只是不夠准確罷了。
LCP鏈路控制協議用來協商PPP協議的一些配置參數選項;處理不同大小的數據幀;檢測鏈路環路、一些鏈路的錯誤;終止一條鏈路。
NCP協議的數據報文是在網路層協議階段被交換的,在這個階段所需的一些配置參數選項協商完後,就可以進行網路層的通信,也即是在點對點的鏈路上可以開始傳送網路層的數據報文了,最常用的NCP協議為IPCP協議,主要是用來通信雙方的網路層地址。
1.3 PPP狀態轉移
1)發起
數據通信設備的兩端如果希望通過PPP協議建立點對點的通信,無論哪一端的設備都需要發送LCP數據報文來配置鏈路(測試鏈路)。
2)建立至可用
一旦LCP得配置參數選項協商完成後,通信的雙方就會根據LCP配置請求報文中所協商的認證配置參數選項來決定鏈路兩端設備所採用的認證方式。協議預設情況下雙方是不進行認證的,而直接進入到NCP配置參數選項的協商,直至所經歷的幾個配置過程全部完成後,點對點的雙方就可以開始通過已建立好的鏈路進行網路層數據報文的傳送了,整個鏈路就處於可用狀態。實際情況中,都會進行認證。
3)拆除
當任何一端受到LCP或NCP得鏈路關閉報文時(一般而言協議是不要求NCP有關閉鏈路的能力的,因此通常情況下關閉鏈路的數據報文是在LCP協商階段或應用程序會話階段發出的);物理層無法檢測到載波或管理人員對該鏈路進行關閉操作,都會將該條鏈路斷開,從而終止PPP會話。
2、PPP數據幀封裝格式
2.1 PPP數據幀封裝格式
PPP數據幀的封裝格式如下圖所示:
1) 每個PPP數據幀都是以一個標志位元組起始和結束的,該位元組填充0x7E(協議預設);
2) 緊接著起始標志位元組後面的是地址域,佔1個位元組,該位元組填充為0xFF(協議預設);
3) 地址域後是控制域,佔1個位元組,該位元組填充為0x03(協議預設);
4) 就PPP協議而言,最值得關注的應該是它的協議域和信息域。協議域用來區分PPP數據幀中信息域中所承載的報文的內容,佔2個位元組。協議域的內容必須依據ISO 3309的地址擴展機制所給出的規定。該機制規定協議域所填充的內容必須為奇數,也即是要求低位元組的最低位為「1」,高位元組的最低位為「0」。協議域的具體的取值如下表所示:
協議域類型
說明
ISO標准
0x0*** - 0x3***
信息域中承載的是網路層的數據報文
0x4*** - 0x7***
信息域中承載的是與NCP無關的低整流量
0x8*** - 0xb***
信息域中承載的是網路控制協議(NCP)的數據報文
0xc*** - 0xf***
信息域中承載的是鏈路控制協議(LCP)的數據報文
最典型的幾種
取值
0xc021
信息域中承載的是鏈路控制協議(LCP)的數據報文
0xc023
信息域中承載的是PAP協議的認證報文
0xc223
信息域中承載的是CHAP協議的認證報文
0x8021
信息域中承載的是網路控制協議(NCP)的數據報文
0x0021
信息域中承載的是IP數據報文
5) 信息域的最大程度不能超過1500位元組(包括填充域的內容)。1500位元組等於PPP協議中配置參數選項MRU(Maximum Receive Unit)的預設值。信息域如果不足1500位元組時可被填充,但不是必須得,如果填充則需通信雙方的兩端能辨認出有用和無用的信息方可正常通信。
6) CRC校驗域主要是對PPP數據幀傳輸的正確性進行檢測的。
2.2 LCP數據報文的封裝方式
2.2.1 LCP數據報文的封裝方式
LCP數據報文是在鏈路建立階段被交換的,它作為凈載荷被封裝在PPP數據幀的信息域中,此時PPP數據幀的協議域固定填充為0xC0 21,在整個鏈路建立階段的整個過程中信息域的內容是在變化的,它包括很多類型的報文,所以這些報文也要通過相應的欄位來區分,LCP數據報文的一般封裝方式如下圖所示:
1) 代碼域,佔1個位元組,主要用來標志LCP數據報文的類型。如下表所示:
2) 標識域,佔1個位元組,主要用來匹配請求和相應報文。一般而言在進入鏈路建立階段時,通信雙方無論哪一端都會連續的發送幾個配置請求報文(Config-Req報文),而這個幾個請求報文的數據域可能是完全一樣的,而僅僅是標識域不同罷了。當對端收到該配置報文後,無論使用哪種報文來回應對方,都必須要求回應報文中的ID要與接收報文中的ID一致。當通信設備收到回應後就可以將回應與發送時的進行比較來決定下一步的操作。
3) 長度域,佔2個位元組。長度域=(代碼域+標識域+長度域+數據域)。其所示位元組數之外的位元組將被當做填充位元組而忽略掉,而且該域內容不能超過MRU的值。
4) 數據域,主要填充一些配置參數選項。
2.2.2 LCP數據報文的分類
從上面可以看出,一共包括12種LCP數據報文,可以依據格報文的功能又將其具體細化為以下三類:
1)鏈路配置報文,主要用來建立和配置一條鏈路。包括Config-Request、Config-Ack、Config-Nak、Config-Reject四種報文;
2)鏈路終止報文,主要用來終止一條鏈路。包括Terminate-Request、Terminate-Ack兩種報文;
3)鏈路維護報文,主要 用來維護和調試鏈路。其餘所有的報文。
2.2.3 LCP鏈路配置報文
LCP鏈路配置報文與鏈路終止報文、鏈路維護報文有明顯區別,它主要是用來協商鏈路的配置參數選項的,因此這種報文的數據域還要攜帶許多被配置參數選項。配置參數選項的格式如下圖所示:
當通信雙方建立鏈路時,無論哪一方都需要發送Config-Request報文並攜帶每一端自己所希望協商的配置參數選項。下表為一些可選的配置參數選項:
類型值
參數選項
類型值
參數選項
0x00
Reserved
0x05
Magic-Number
0x01
Maximum-Recieve-Unit
0x06
CBCP
0x02
Async-Control-Character-Map
0x07
Protocol-Field-Compress
0x03
Authentication-Protocol
0x08
Address-and-Control-Field-Compress
0x04
Quality-Protocol
0x0D
Multilink-Protocol
配置參數選項的協商過程中,可能發生兩種情況:
1) 接收方無法識別發送方所發送的配置參數類型
接收方不識別類型域中填充的內容,這時接收方就會給發送方發送一個Config-Reject消息以告訴對方自己不支持它所發送的參數類型,此時Config-Reject報文中填充自己不支持的參數選項。發送方收到Config-Reject消息後就可以去掉那些不被接收方支持的配置參數,重新組包發送Config-Request報文給接收方,直到收到接收方發來的Config-Ack消息就算協商成功。
2)接收方識別發送方所發送的配置參數類型,但不認可其參數值
接收方識別發送方所發送的配置參數類型,但不認可其參數值,這時接收方就會給發送方發送一個Config-Nak消息,該報文中填充自己所能夠支持的參數值,發送方在受到Config-Nak消息後就可以從中獲得接收方所支持的參數值,重新組包發送Config-Request報文給接收方,直到收到接收方發來的Config-Ack消息就算協商成功。
2.3 認證協議
PPP協議提供了可選的認證配置參數選項,預設情況下點對點通信時的兩端是不進行認證的。認證方式是在LCP階段協商確認的,在LCP鏈路配置報文中,不可一次攜帶多種認證方式,必須二者擇其一(PAP/CHAP)。
PAP(Password Authentication Protocol密碼認證協議)認證時二次握手,直接在網路上傳送明文的用戶名和密碼,因此該協議安全性不高。
CHAP(Challenge Hand Authentication Protocol挑戰性握手認證協議)認證是三次握手,只在網路上傳送驗證方和被驗證方的主機名,並不傳送密碼,且由驗證方主動發起。因此相比之下CHAP比PAP更安全。
2.4 NCP協議
NCP協議的數據報文是在網路側協議階段被交換的,在這個階段所需的一些配置參數選項協商完成後,就可以進行網路層的通信。NCP協議主要包括IPCP、IPXCP等,最常見的就是IPCP協議。
IPCP控制協議主要是完成IP網路層協議通信所需配置參數選項的協商。IPCP 在運行的過程中,主要是完成點對點通信設備的兩端動態的協商IP地址。IPCP的數據報文同LCP的數據報文類似,只不過LCP協議是在鏈路建立階段協商配置參數選項,IPCP是在網路層協議階段協商配置參數選項。在實際的數據報文交換過程中IPCP數據報文僅涉及以下幾種:Config-Request、Config-Ack、Config-Nak和Config-Reject。
根據兩端設備的配置選項可將IPCP的協商過程分為「靜態」和「動態」。靜態、動態是相對的概念,兩者的區分是在於互連設備IP地址的獲取過程。
靜態協商,即不協商,點對點的通信設備兩端在PPP協商之前已配置好了IP地址,所以無須在網路層協議階段協商IP地址,而雙方唯一要做的就是告訴對方自身的IP地址,最理想的情況如下圖所示:
動態協商,即一端配置為動態獲取IP地址,另一端通過手動方式配置IP地址,且允許給對端分配IP地址,最理想的情況如下圖所示:
IPCP階段完成後,PPP鏈路即正常建立,可進行點對點通信。
⑺ 如何設置Linux伺服器為PPP撥入伺服器
我按下面這個配置成功了,你可以試下:
一、安裝的前提條件
1.確保安裝了網卡並工作正常
使用命令
#ifconfig eth0
查看網卡狀態,然後關閉ifdown eth0,注意一定要關閉ifdown eth0
2.在系統中不要設置默認路由(網關),讓ADSL撥號後自動獲得
如果已經設置了默認路由,使用以下方法刪除:
在文件 /etc/sysconfig/network 中刪除 GATEWAY= 這一行,然後以root執行:
#/etc/rc.d/init.d/network restart
3.已經安裝了pppd軟體包
如果存在文件 /usr/sbin/pppd,則說明已經安裝了pppd;
如果未安裝,從RedHatLinux 6.2安裝光碟上安裝ppp-2.3.11-
4.i386.rpm這個軟體包
二、安裝PPPOE客戶端軟體
Linux下的PPPOE客戶端軟體比較多,而且大多使用GNU License,我們推薦使用rp-pppoe 這個軟體包。從http://www.roaringpenguin.com/pppoe/這個網站上,不僅可以下載
RedHat 62平台下的rp-pppoe的二進制軟體包,而且可以下載源代碼軟體包。
1.二進制軟體包的安裝:
A.下載二進制軟體包
http://www.roaringpenguin.com/pppoe/rp-pppoe-3.2-1.i386.rpm
B.進行安裝
以root執行:
#rpm -Uvh rp-pppoe-3.2-1.i386.rpm
2.從源代碼進行安裝:
從源代碼進行安裝同樣適用於其它平台的Linux,但必須在Linux系統中安裝gcc編譯器。
A.下載源代碼軟體包
http://www.roaringpenguin.com/pppoe/rp-pppoe-3.2.tar.gz
B.解壓縮
#tar xvfz rp-pppoe-3.2.tar.gz
#cd rp-pppoe-3.2
C.進行編譯和安裝
運行腳本
#./go
將自動進行編譯和安裝,最後,調用/usr/sbin/adsl-setup進行配置,具體解釋見三。
三、配置PPPOE客戶端軟體
安裝完軟體包後,必須配置pppoe的配置文件/etc/ppp/pppoe.conf,從而讓ADSL撥號時使用配置文件中的用戶名、密碼等參數。我們不必手工改動這個文件,可以使用adsl-setup這個工具進行配置:
#/usr/sbin/adsl-setup
當出現
>>> Enter your PPPoE user name :
輸入ADSL帳號的用戶名
當出現
>>> Enter the Ethernet interface connected to the ADSL modem
For Solaris, this is likely to be something like /dev/hme0.
For Linux, it will be ethn, where 'n' is a number.
(default eth0):
輸入 eth0 ,這是ADSL相連的網卡的名字
當出現
>>> Enter the demand value (default no):
輸入 no
當出現
>>> Enter the DNS information here:
輸入 server ,這表示使用ADSL撥號自動獲得的DNS伺服器IP地址
當出現
>>> Please enter your PPPoE password:
輸入ADSL帳號的密碼
當出現
>>> Choose a type of firewall (0-2):
輸入 0 ,不使用防火牆
當出現
>>> Accept these settings and adjust configuration files (y/n)?
如果輸入的信息正確,輸入 y ,完成配置,否則,輸入 n 重新輸入。
四、啟動PPPOE客戶端軟體
使用命令
/usr/sbin/adsl-start 啟動PPPOE客戶端軟體,進行連接,如果成功,將出現
Connected;
如果不成功,請檢查網線、ADSL MODEM等物理設備,並查看 /var/log/messages中的信息
/usr/sbin/adsl-stop 關閉和ISP的連接
/usr/sbin/adsl-status 查看當前連接的狀態
如果想在Linux系統啟動時自動啟動ADSL連接,輸入以下命令
#chkconfig --add adsl
將在當前的運行級下加入ADSL的自啟動腳本
五、測試
當連接成功後,使用命令
#ifconfig -a
在輸出中應該含有關於 ppp0 的一堆信息,其中還綁定了 IP 地址,說明已經從撥號中獲得了IP地址。
使用命令
#netstat -nr
查看路由表信息,這時的默認路由應該是上面獲得的IP地址。
如果沒有默認路由,我們可以手動增加:
#route add default gw 上面獲得的IP地址
使用命令
#nslookup www.sina.com.cn
如果解析出新浪的IP,說明已經從撥號中正確獲得了DNS伺服器
最後,使用命令ping某個域名或IP,如果有響應,表示你已經大功告成了。
六、其它說明
1、RedHat Linux 7.1已經集成了rp-pppoe這個軟體包,只不過版本有些低,如果你不在意版本高低,可以直接進行三後面的步驟。
2、以後要拔號上網時,只要:
ifdown eth0
ifup ppp0
/usr/sbin/adsl-start
⑻ Linux 在「/etc/ppp」目錄下創建一個名為「options」的普通文件
touch /etc/ppp/options
普通文件就是普通意義上的文件,如數據文件、可執行文件等。其它類型有設備文件、目錄、符號鏈接文件、套接字文件等
⑼ 深度linux系統怎麼撥號上網
殊不知,在Linux下的撥號上網,甚至比Windows下的更簡單一些,我們一樣可以指點江山:在Linux下要實現撥號上網,首先你的系統內核必須支持ppp,另外還必須有支持ppp的軟體 ,編譯內核雖然並不是太難,但對於我們來說也並不簡單,值得慶幸的是,現在的大多數Linux發行套件都在內核上支持了ppp。至於ppp軟體象KDE的kpppd和RedHat發行套件裡面都有,下面我們就以現在十分流行的Mandrake(基於RedHat的一種發行套件)來實現我們的Linux下的上網夢。其實Linux對Modem的要求比Windows低得多,幾乎所有的modem一接上就能用,連貓的驅動程序都不用安裝!Gnome環境撥號單擊左下角的大腳按鈕(是不是和Windows98下的[開始]按鈕有點相似呢?),在彈出菜單中選擇System→ControlPanel,就打開了RedHat的控制面板。打開控制面板上的ModemConfiguration(你只要將滑鼠在某個按鈕上邊停留幾分鍾,就會有提示該按鈕的用途),在這里要做的事情極其簡單,僅僅是選擇你的貓所連接的埠,Linux下串口設備文件的命名和DOS的關系如下:DOSCOM1=Linux/dev/cua0(and/dev/ttyS0)DOSCOM2=Linux/dev/cua1(and/dev/ttyS1)一般來說/dev/cua*是用來撥出的,/dev/ttys*是用來撥入的,但現在好像已經不再區分。筆者的Modem接在COM1上,所以選擇/dev/cua0,按OK按鈕確定。單擊控制面板上ModemConfiguration按鈕上方的NetworkConfiguration按鈕,選擇Interface標簽頁,此時由於還沒有添加Modem,我們只可以看到lo和eth0兩個網路界面,單擊Add添加網路界面,在接著出現的InterfaceType窗口中選擇PPP連接方式,並按OK確定。然後嗎?和瘟酒吧下的就十分相似了,在CreatePPPInterface窗口中的PhoneNumber中添上你的ISP的電話號碼(比如163),在PPPloginName中添上用戶名稱,在PPPpassword中添上密碼即可。開始嘗試撥號吧!單擊大腳按鈕,選擇AnotherLevelmenu,再選擇其中的Networking,打開Usernet,可以見到到一個狀態欄窗口,ppp0就是Modem的狀態,紅色代表未接通。單擊ppp0開始撥號,狀態變成黃色,表示使用中;一陣熟悉的的撥號聲後,狀態變成了了綠色,表示接通了。打開你的瀏覽器開始周遊世界吧!只要再單擊一下ppp0就可以斷開連接了。上面已經將撥號上網在Gnome下成功地安好了。對於Linux初學者來說依葫蘆畫瓢便能學會,真是非常的實用。KDE下撥號KDE下的撥號需要用到kppp這個程序,如果你在安裝KDE的時候安裝了kdenetwork這個rpm包,你就已經安裝好了kppp,kppp的界面比前面的Usernet要漂亮的多,而且功能更加強大,下面我們只介紹一下它的基本使用方式:和Gnome環境下類似,單擊左下腳的大K→Internet→kppp就打開了kppp撥號程序,此時你面前出現的是一個空空的窗口,單擊Setup,在kpppConfiguration窗口中選擇Device標簽頁,在其中的ModemDevice中選擇Modem連接的埠/dev/cua0,當然你可以在命令行執行ln/dev/modem/dev/cua0,然後你就可以在這里選擇/dev/modem了,在ConnectionSpeed中選擇你的連接速率。選擇Accounts標簽頁,單擊New建立新的賬號,ConnectionName中輸入連接名,PhoneNumber中輸入你的ISP的電話號碼,選擇DNS標簽頁,在DNSIPAddress中輸入你的ISP的IP地址,單擊Add添加,OK確定退出。現在一切都已經設定好了,你又退回到了kppp登錄窗口,輸入你的賬號(LoginID)和密碼(Password),然後單擊connect就開始登錄網路了。需要斷線?在連接窗口中,單擊Disconnect即可。Linux下的拔號程序比起Windows下的撥號程序也毫不遜色,而且設定還更簡單,看誰以後敢說Linux下的撥號程序很難用,而且界面醜陋。
⑽ Linux pptpd 斷開指定ppp連接
last | grep 'ppp' | grep 'logged'查看已連接的vpn客戶端 ;ifconfig查看vpn虛擬網卡; ifconfig ppp0 down斷掉網卡 ; 如果想恢復 up就行