<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    hello world

    隨筆 - 2, 文章 - 63, 評論 - 0, 引用 - 0
    數(shù)據(jù)加載中……

    Android實(shí)現(xiàn)pppoe撥號(hào)上網(wǎng)(二)具體步驟

    實(shí)驗(yàn)環(huán)境搭建,滿足pppoe鏈接的基礎(chǔ)服務(wù),就是保證ppp協(xié)議能夠封裝在以太網(wǎng)框架中的一種網(wǎng)絡(luò)隧道協(xié)議,因?yàn)榧闪藀pp協(xié)議,所以實(shí)現(xiàn)了創(chuàng)痛以太網(wǎng)不能提供身份驗(yàn)證,加密和壓縮的功能。本質(zhì)上,它是一個(gè)允許在以太網(wǎng)廣播域中的兩個(gè)以太網(wǎng)接口間創(chuàng)建ppp協(xié)議隧道。它使用傳統(tǒng)的基于PPP的軟件來管理一個(gè)不是使用串行線路而是使用類似于以太網(wǎng)的有向分組網(wǎng)絡(luò)的連接。這種有登陸和口令的標(biāo)準(zhǔn)連接,方便了接入供應(yīng)商的記費(fèi)。并且,連接的另一端僅當(dāng)PPPoE連接接通時(shí)才分配IP地址,所以允許IP地址的動(dòng)態(tài)復(fù)用。

    ---wiki : http://zh.wikipedia.org/zh-cn/PPPoE

    (PPPoE及TCP/IP協(xié)議棧) 

    (一)pppoe-server  

    也就是PC機(jī)器,我這邊只說linux系統(tǒng)下面的情況,我的是Ubuntu系統(tǒng),下載rp-pppoe:  http://www.roaringpenguin.com/products/pppoe

    按照里面的README來要求來安裝rp-pppoe。最簡單的就是default直接運(yùn)行g(shù)o腳本。然后PC機(jī)器就可以運(yùn)行pppoe-server命令了。不要急,還要對server進(jìn)行配置,配置文件在/etc/pppoe-server-options,打開進(jìn)行改寫。我的配置如下:

    						# PPP options for the PPPoE server
    						# LIC: GPL
    auth                   #鏈接時(shí)候驗(yàn)證require-chap           #CHAP認(rèn)證# login                #鏈接后驗(yàn)證
    lcp-echo-interval 10#每10秒發(fā)送心跳信令request
    lcp-echo-failure 2#連續(xù)兩條心跳信令reply沒有回復(fù)斷開鏈接

    保存退出,這樣配置完成,這樣在建立ppp鏈接的Discovery階段就會(huì)進(jìn)行驗(yàn)證,server保存的驗(yàn)證用戶名,密碼就在/etc/ppp/chap-secrets里面:

    # Secrets for authentication using CHAP
    # client               server      secret             IP addresses"user_xiaokeweng"    *           "my_password"      *
    其中各個(gè)字段的含義,顧名思義,*指代all。

    最后在PC端啟動(dòng)pppoe-server,輸入命令:

    sudo pppoe-server -I eth0

    (二)pppoe-client  

    在android上面移植pppoe模塊,同樣使用rp-pppoe,我們可以build成模塊移植到android終端上面,需要自己寫make file,我這邊是用Android.mk:

    LOCAL_PATH:= $(call my-dir)
    include $(CLEAR_VARS)
    
    LOCAL_SRC_FILES:=\
        src/pppoe.c \
        src/if.c \
        src/debug.c \
        src/common.c \
        src/ppp.c \
        src/discovery.c
    
    LOCAL_MODULE_PATH := $(LOCAL_PATH)
    LOCAL_MODULE_TAGS := optional
    LOCAL_MODULE := pppoe
    LOCAL_C_INCLUDES += $(LOCAL_PATH)/src
    
    include $(BUILD_EXECUTABLE)

    于是build出來pppoe可執(zhí)行模塊,push到/system/bin下面,當(dāng)然可以直接改寫rp-pppoe的makefile。于是在終端就可以發(fā)起pppoe鏈接請求了。  

    (三)運(yùn)行測試

    (1)首先要保證Client,Server都在一個(gè)廣播域中,按照前文中的思路,手持終端是通過wifi,鏈接到接入LAN中的無線路由器中,而PC是直接接入到LAN中的。 

    (2)adb進(jìn)入設(shè)備終端后,輸入

    						/system/bin/pppoe -d
    就會(huì)發(fā)起Discorvery,在廣播域內(nèi)廣播PADI報(bào)文,成功的話會(huì)返回發(fā)現(xiàn)的pppoe-server的MAC地址,并且在PC端抓包eth0的話,使用ppp||pppoed進(jìn)行過濾,能夠收到終端的廣播報(bào)文。這樣就能說明已經(jīng)實(shí)現(xiàn)pppoe通路。接著:

    /system/bin/pppd pty "/system/bin/pppoe -I wlan0" user user_xiaokeweng password my_password

    這樣就會(huì)發(fā)起pppoe鏈接,經(jīng)過Discovery,認(rèn)證,LCP,最終建立其ppp鏈接。在PC端會(huì)看到新建立起來的ppp0,Client端也會(huì)看到。

    (四)后續(xù)配置

    (1)PC端配置iptable使終端的數(shù)據(jù)包能夠請求訪問internets

    echo 1 > /proc/sys/net/ipv4/ip_forward   //打開iptable,該命令切換到root運(yùn)行
    iptables  -t nat -F            //清空表項(xiàng)
    iptables  -t nat -L            //現(xiàn)實(shí)表項(xiàng)
    iptables  -t nat -A POSTROUTING -s 192.168.1.1 -j SNAT --to 192.168.163.254
    //-s 為終端獲得的ip,--to 為ethx 的ip

    (2)在終端增加路由表項(xiàng)目

    ip -d route                     //查看路由表項(xiàng)
    ip route del default//刪除掉全部default,需要操作多遍   
    ip route adddefault dev ppp0   //將默認(rèn)路由設(shè)為ppp0
    ip -d route                     //再次查看

    (3)配置dns

    這樣操作的話是不需要設(shè)置dns的,因?yàn)殒溄觲lan的時(shí)候,使用的dns-server與現(xiàn)在的是完全一樣的,如果經(jīng)過上述操作,能夠ping通internet但是不能夠正常上網(wǎng)的話,一定就是dns的問題了。

    						getprop
    						net
    						.dns1
    						//查看默認(rèn)路由1
    						getprop
    						net
    						.dns2
    						//查看默認(rèn)路由2
    						setprop
    						net
    						.dns1
    						110
    						.112
    						.120
    						.115
    						//設(shè)置默認(rèn)路由1 
    						setprop
    						net
    						.dns2
    						110
    						.112
    						.120
    						.114
    						//設(shè)置默認(rèn)路由2
    				

    posted on 2017-06-02 15:30 聽風(fēng) 閱讀(840) 評論(0)  編輯  收藏 所屬分類: 嵌入式

    主站蜘蛛池模板: 视频免费1区二区三区| 日本免费一区二区三区四区五六区| 国产精品亚洲五月天高清| 精品一区二区三区免费视频| 99国产精品永久免费视频| 亚洲欧洲精品成人久久奇米网| 中文字幕亚洲综合久久2| 色www免费视频| 好吊妞在线成人免费| 亚洲AV无码久久寂寞少妇| 西西人体大胆免费视频| 波多野结衣一区二区免费视频| 亚洲熟妇色自偷自拍另类| 成人无码视频97免费| 日本视频免费在线| 亚洲欧洲日本精品| 国产一级a毛一级a看免费视频| 亚洲精品无码国产| 免费看内射乌克兰女| 暖暖免费高清日本中文| 亚洲成AV人影片在线观看| 国产1024精品视频专区免费 | 51精品视频免费国产专区| 亚洲国产一级在线观看 | 最新中文字幕免费视频| 亚洲日本一区二区| 国产区在线免费观看| 亚洲AV无码精品色午夜在线观看| **一级一级毛片免费观看| 亚洲人成自拍网站在线观看| 四虎最新永久免费视频| 久久精品国产亚洲av日韩| 免费久久人人爽人人爽av| 亚洲综合亚洲综合网成人| 美女视频黄频a免费| 亚洲AV无码一区二区三区DV | 国产成人一区二区三区视频免费| 亚洲日韩在线观看免费视频| 99久热只有精品视频免费看| 亚洲av成人无码网站…| 日本无卡码免费一区二区三区|