最近在做Android上实现pppoe拨号上网的功能。一般情况下不大可能会用到,但在大陆某些地区,可能会有AP并不支持DHCP功能,或者在某些平台上面装载Android系统的时候,可能会需要移植拓展该功能。什么是pppoe就不再介绍了,下面对于我的实验环境搭建和操作进行简述:

个人邮箱:xiaokeweng@gmail.com


(一)实验环境搭建

描述:本例是在支持wifi的Android手持设备上面,通过wifi接入到局域网LAN,pppoe-server也链接在本地局域网内,于是建立起来Client到Server的网络通路。一条可达通路是基础的必要条件。

(1)硬件设备

Client      :HTC手持终端
Router    :TP-LINK 无线路由器
Server    :ubuntu系统PC
LAN        :本地局域网

(硬件设备环境)

(2)软件条件

首先Client上面要支持ppp,这个在我的终端上面路径是/system/bin/pppd,并且确定开机后注册了/dev/ppp设备,也就是设备支持ppp是大前提,而后在PC上面安装rp-pppoe(RoaringPenguin-pppoe),然后将PC作为pppoe-server,现实中配置的pppoe-server一般都是双网卡,一个网卡负责代理局域网内数据转发,一个负责将数据包丢到internet上面,而我方条件艰苦,只是为了实验而已,所以本身的LAN就可以上网,在PC上最终通过iptables将pppoe通过pppX接口发送来的数据包NAT(网络地址转换)到可以访问internet的ethX上面。而Android上面没有pppoe可执行文件,于是通过移植,将rp-pppoe编译出的可执行文件移植过来,命名为pppoe放在/system/bin下。即:

Android:pppoe,pppd

PC : rp-pppoe

数据包通路:Client -> AP(TP-LINK) -> LAN -> PC -> NAT ->LAN


(二)运行验证方法

(1)在终端中adb shell后运行命令pppoe -d这样就会令pppoe在本地局域网内发起Discovery过程广播包PADI,在PC上面抓包网卡ethX,如果受到广播PADI,说明链路已经通过。

(pppoe-service抓到PADI广播包)

(2)按照期望需求配置pppoe-server,后面会详细讲解。

(3)按照期望在Android终端中执行命令,于是会建立起来ppp链接,通过终端执行netcfg,PC执行ifconfig可以查看链接pppx接口。

(client端iface)

(server端iface ppp0)

(4)Android终端配置默认route到pppX,还有dns,这样终端的数据包就会从pppX出去,而后,配置server的iptables,加规则,NAT通过pppoe上来的数据包,到有internet访问权限的ethX,通过抓包分析,确定数据链路是否达到预期。

经过以上步骤就能够实现Android通过pppoe拨号上网了,以上只是粗略的该书,具体的细节步骤,将会在后面的博客中详细讲解。

Android实现pppoe拨号上网(一)概述相关推荐

  1. android pppoe 源码,android移植pppoe拨号上网的全过程

    硬件环境:Tiny6410开发板 软件环境:fedora14 + Android 2.3.4 + linux-2.6.36 1.编译内核支持ppp android自带pppd,所以仅仅须要移植pppo ...

  2. Android实现pppoe拨号上网实例

    * 平台:RK3399 * 系统:安卓7.1 >在电脑搭建服务端这里就不赘述了,可看下面的参考文章. 编译生成pppoe可执行文件. 下载rp-pppoe源吗. 在安卓源码下创建external ...

  3. Android 实现PPPoE拨号

    关于Android实现PPPoE拨号上网的问题. 系统必须安装有ppp和rp-pppoe程序.一般ROM自带有ppp程序的.rp-pppoe就未必有了,需要交叉rp-pppoe到目标机.我的开发环境已 ...

  4. 利用FriendlyElec友善电子R2S软路由进行PPPoE拨号上网

    By Mcuzone 关键词:FriendlyElec  友善电子  RK3328  R2S  软路由  PPPoE  拨号上网 概述:讲解利用FriendlyElec友善电子R2S软路由进行PPPo ...

  5. linux中的pppoe拨号上网

    实例:(linux中的pppoe拨号上网) ① 安装软件:把下载的pppoe传到linux下的/root目录下,在终端对软件进行拆包: ll:查看目录,能看见软件包的名字 tar -zxvf rp-p ...

  6. 关于Ubuntu 使用PPPoe拨号上网,导致wifi没有错误。

    因为宿舍网是拨号上网, 刚从 温都死 转向Ubuntu(LINUX桌面版)基本上陌生的操作环境,所以百度一下 Ubuntu怎么拨号上网. gedit pppoeconfig  终端输入,就可以操作配置 ...

  7. Ubuntu PPPoE拨号上网

    安装PPPoE 有网络连接的情况下 sudo apt install pppoeconf 无网络连接的情况下 在其它电脑上依次下载以下软件包(注意选择适合自己硬件类型的版本) libc6 ifupdo ...

  8. 【windows10】使用宽带拨号即PPPoE拨号上网

    [windows10]使用宽带拨号即PPPoE拨号上网 1.背景 2.宽带拨号 1.背景 在接入互联网实现上网时,我目前使用的是PPPoE拨号上网. PPPoE(Point-to-Point Prot ...

  9. Kali PPPoE 拨号上网

    Kali PPPoE 拨号上网 1.下载PPPoE 2.Terminal > nm-connection-editor 3.Settings---->Network---->点击PP ...

最新文章

  1. ArrayList,LinkedList,Vector的异同点
  2. 人才管理是什么意思_cms系统是什么意思,国内常用的cms内容管理系统有哪些
  3. cstring和string的区别
  4. Qt使用导出类报错:error C2491: “ZMapWidget::staticMetaObject”: 不允许 dllimport 静态数据成员 的定义
  5. 文章用图的修改和排版 (一)
  6. 去掉“搜一搜”后,让“查看新贴”等按钮居中
  7. 解决:虚拟机能ping通主机,主机ping不通虚拟机
  8. python提高——闭包、装饰器
  9. FLEX4 在组件中自定义ToolTip样式
  10. Linux系统Zookeeper集群配置
  11. mysql 权限管理 记录
  12. ngx_lua 模块提供的指令和API等
  13. 【CentOS 7笔记43】,防火墙和iptables filter表#
  14. android6.0加内存卡,Android 6.0 TF卡 手机扩容的新选择
  15. RH850 MPU 实现介绍
  16. DICOM医学图像处理:浅析SWF、MWL、SPS、MPPS
  17. python 过采样算法_类不平衡数据分类准确率的提升算法smote过采样方法
  18. CSS改变simditor代码区间的默认显示样式和自动换行
  19. 什么是项目集(PgMP)?
  20. android listview 上拉图片闪烁,android listview使用glide异步加载图片错位,闪烁问题...

热门文章

  1. 【夜晚安静的享受】只想安静下来
  2. 什么是卷积神经网络算法,卷积神经网络运算公式
  3. C#中根据情况禁用contextMenuStrip
  4. 从kenko入华经历一窥海外电商与中国市场的艰难磨合
  5. 【转】SuperBlock损坏修复
  6. 浪潮5270m4 linux raid,浪潮NF5270M4服务器阵列卡驱动下载
  7. ssh 远程登录 一文弄懂
  8. 小猪芭那详解童装行业如何做好营销策略
  9. MacOS上创建/data/webapps/appenv的方法
  10. matlab 喷嘴挡板阀,双喷嘴挡板伺服阀动态参数寻优及仿真研究