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

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

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

    hello world

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

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

    實(shí)驗(yàn)環(huán)境搭建,滿(mǎ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的軟件來(lái)管理一個(gè)不是使用串行線(xiàn)路而是使用類(lèi)似于以太網(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ī)器,我這邊只說(shuō)linux系統(tǒng)下面的情況,我的是Ubuntu系統(tǒng),下載rp-pppoe:  http://www.roaringpenguin.com/products/pppoe

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

    						# 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沒(méi)有回復(fù)斷開(kāi)鏈接

    保存退出,這樣配置完成,這樣在建立ppp鏈接的Discovery階段就會(huì)進(jìn)行驗(yàn)證,server保存的驗(yàn)證用戶(hù)名,密碼就在/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終端上面,需要自己寫(xiě)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出來(lái)pppoe可執(zhí)行模塊,push到/system/bin下面,當(dāng)然可以直接改寫(xiě)rp-pppoe的makefile。于是在終端就可以發(fā)起pppoe鏈接請(qǐng)求了。  

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

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

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

    						/system/bin/pppoe -d
    就會(huì)發(fā)起Discorvery,在廣播域內(nèi)廣播PADI報(bào)文,成功的話(huà)會(huì)返回發(fā)現(xiàn)的pppoe-server的MAC地址,并且在PC端抓包eth0的話(huà),使用ppp||pppoed進(jìn)行過(guò)濾,能夠收到終端的廣播報(bào)文。這樣就能說(shuō)明已經(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)過(guò)Discovery,認(rèn)證,LCP,最終建立其ppp鏈接。在PC端會(huì)看到新建立起來(lái)的ppp0,Client端也會(huì)看到。

    (四)后續(xù)配置

    (1)PC端配置iptable使終端的數(shù)據(jù)包能夠請(qǐng)求訪(fǎng)問(wèn)internets

    echo 1 > /proc/sys/net/ipv4/ip_forward   //打開(kāi)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

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

    						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 聽(tīng)風(fēng) 閱讀(840) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): 嵌入式

    主站蜘蛛池模板: 亚洲成人在线免费观看| 日本免费人成黄页在线观看视频| 亚洲精品国产专区91在线| 成年男女免费视频网站| 一级午夜免费视频| 五月天网站亚洲小说| 免费a级毛片无码a∨蜜芽试看| 永久免费无码日韩视频| 亚洲婷婷在线视频| 亚洲高清日韩精品第一区| 日韩欧美一区二区三区免费观看| 九九久久精品国产免费看小说| 亚洲第一福利网站| 免费人成无码大片在线观看| 亚洲精品无码av中文字幕| 亚洲精品乱码久久久久久蜜桃不卡 | 可以免费观看的国产视频| 中文字幕亚洲一区二区三区| 亚洲黄色免费观看| 国产黄色免费观看| 亚洲欧洲日韩极速播放 | 中中文字幕亚洲无线码| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 国产成人A亚洲精V品无码| 久久99精品免费一区二区| 亚洲精品视频观看| 亚洲裸男gv网站| 久久不见久久见中文字幕免费| a成人毛片免费观看| 亚洲欧好州第一的日产suv| 4444亚洲国产成人精品| 久久国产成人亚洲精品影院| 成人网站免费观看| 免费精品无码AV片在线观看| 一级特黄aaa大片免费看| 亚洲乱码一区二区三区国产精品| 亚洲综合无码精品一区二区三区| 免费的一级黄色片| 一二三四在线观看免费高清中文在线观看| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 国产aⅴ无码专区亚洲av麻豆|