Android双网卡或双IP

Android10框架支持双以太网口 Android10框架支持双以太网口的方法 阅读详情
AI摘要

本文讨论了在Android 6.0系统上,RK3368平台如何解决以太网与Wi-Fi共存问题,以及如何配置双IP和修改ip路由。在解决多网卡共存后,通过添加路由规则实现不同网段的互通,并提到双IP配置的类似处理。Android系统中,需要手动修改路由表以实现多网络间的通信,未来可能需要研究自动修改路由的系统代码。

Platform: RK3368

OS: Android 6.0

Kernel: 3.10.0


1. 以太网与Wi-Fi共存问题

想要多个网卡同时使用,首先就要解决多网卡共存问题。Android系统默认会将不需要的网络给关闭的,以降低功耗。所以要解决以太网与Wi-Fi共存问题,需要做如下改动:

--- a/services/core/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -4247,7 +4248,8 @@ public class ConnectivityService extends IConnectivityManager.Stub
             loge("Dead network still had at least " + nr);
             break;
         }
-        nai.asyncChannel.disconnect();
+        log("don't teardownUnneededNetwork " + nai);
+        //nai.asyncChannel.disconnect();
     }
 
     private void handleLingerComplete(NetworkAgentInfo oldNetwork) {

查一下当前系统的网络优先级配置:
frameworks/base/core/res/res/values/config.xml

    <string-array translatable="false" name="networkAttributes">
        <item>"wifi,1,1,2,-1,true"</item>
        <item>"mobile,0,0,0,-1,true"</item>
        <item>"mobile_mms,2,0,2,60000,true"</item>
        <item>"mobile_supl,3,0,2,60000,true"</item>
        <item>"mobile_dun,4,0,2,60000,true"</item>
        <item>"mobile_hipri,5,0,3,60000,true"</item>
        <item>"mobile_fota,10,0,2,60000,true"</item>
        <item>"mobile_ims,11,0,2,60000,true"</item>
        <item>"mobile_cbs,12,0,2,60000,true"</item>
        <item>"bluetooth,7,7,0,-1,true"</item>
        <item>"ethernet,9,9,9,-1,true"</item>
    </string-array>

可以看到以太网优先级高于wifi,也就是说以太网和wifi同时打开,默认会使用以太网。

2. 修改ip路由

解决了多网卡共存问题,那么接下来就是要配置ip路由了,先ifconfig看一下设备的网络信息如下,一个以太网,一个wifi:

# ifconfig
eth0      Link encap:Ethernet  HWaddr C8:97:06:8B:F0:02
          inet addr:192.168.88.29  Bcast:192.168.88.255  Mask:255.255.255.0 
          inet6 addr: fe80::ca97:6ff:fe8b:f002/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:980 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:50 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:76080 TX bytes:16928 
          Interrupt:59 

wlan0     Link encap:Ethernet  HWaddr 88:06:95:C9:1B:1A
          inet addr:192.168.43.3  Bcast:192.168.43.255  Mask:255.255.255.0 
          inet6 addr: fe80::8a06:95ff:fec9:1b1a/64 Scope: Link
          inet6 addr: 240e:c0:f612:2990:c159:79be:bbdd:ba2c/64 Scope: Global
          inet6 addr: 240e:c0:f612:2990:8a06:95ff:fec9:1b1a/64 Scope: Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:56 errors:0 dropped:101 overruns:0 frame:0 
          TX packets:58 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:7712 TX bytes:7511 
......

可以看到两个网卡为不同网段的IP地址,但这个时候相互ping的话是ping不通的.

我们再查看当前路由信息:

# ip route
192.168.43.0/24 dev wlan0  proto kernel  scope link  src 192.168.43.3

192.168.88.0/24 dev eth0  proto kernel  scope link  src 192.168.88.29 

IP路由似乎也是没问题的,系统自动添加了路由配置。
这如果是ubuntu,debian等linux系统的话当然可以ping通;但是在Android系统中就行不通了。由于Android系统默认使用的是优先级和评分高的网络,而这台设备系统配置的是以太网优先级高于wifi,所以默认路由使用的是以太网的路由规则。直接用ping命令是不能ping通wifi那边的网络。需要将无线的默认路由规则添加到以太网的路由表中(也就是Android系统当前用的路由表为优先级最高的那个).

所以现在需要修改eth0路由表:

# ip route add 192.168.43.0/24 dev wlan0 proto static scope link table eth0
或者直接复制wlan0路由表的规则添加到eth0路由表:
# ip route add 192.168.43.0/24 dev wlan0  proto kernel  scope link  src 192.168.43.3 table eth0

上面命令的意思是:向路由表eth0中添加一条‘192.168.43.0/24 dev wlan0’路由规则.这样发送到192.168.43网段的数据就会通过wifi出去了。在设备中就可以ping通无线和有线两个网络了.

3. 双IP地址也是类似

比如要将一个网卡设置两个IP地址。

# ip address add 10.0.0.10/8 dev wlan0
# ip route
10.0.0.0/8 dev wlan0  proto kernel  scope link  src 10.0.0.10
#将默认的路由配置,复制到wlan0路由表中:
# ip route add 10.0.0.0/8 dev wlan0  proto kernel  scope link  src 10.0.0.10 table wlan0

4. Android 路由相关代码:

当然啦!以上都是手动敲命令实现的,如果要做到自动修改路由表,还需要修改系统相关代码,要等有时间再去研究了。
相关代码目录:framework/base/

     services/core/java/com/android/server/ConnectivityService.java
     services/core/java/com/android/server/NetworkManagementService.java
     services/core/java/com/android/server/net/IpConfigStore.java

网络调试相关日志查看:

$ logcat -s ConnectivityService ConnectivityManager EthernetNetworkFactory WifiConfigStore IpConfigStore NetworkManagement
Android多网卡同时在线?用ip rule和ip route实现流量分流的保姆级教程 本文详细介绍了如何在Android系统中使用ip rule和ip route实现多网卡流量分流的策略路由技术。通过创建自定义路由表、配置优先级规则以及结合iptables标记,开发者可以精细化控制不同网络流量的走向,满足工业平板、车载终端等场景的双网卡同时在线需求。 阅读详情

相关推荐

Android 双网卡配置为连接到Android主机的PC提供外网访问(1)

在本文中,我将探讨如何为连接到Android主机的设备提供网络访问。将使用一个实际的故障排查案例来详细说明这个过程,最终实现用脚本完成各项检查和配置工作。

我其实什么都不会 3394

Android多网卡

Android默认只支持一个网卡。 Mobile/Ethernet/Wi-Fi不能同时存在。 但是,linux是可以同时支持多网卡存在的。 如何在Android上实现多网卡 - 去掉Android Framework中只允许一个网卡存在的逻辑 - 为AndroidFramework没有支持的另外的网卡,配置路由规则(ip rule/ ip route) 路由规则简介 android route表number和name的对应的文件路径 /data/misc/net/rt-tables ..

xiaoxiaosunzhao的专栏 6176

Android/Linux设备有线&无线 双网共存(同时上内、外网)

Shell脚本实现动态配置IP与路由:解决嵌入式Android/Linux有线和无线网卡双网共存问题(同时上内网 外网) 网络环境及问题再现 命令行方式实现双网共存 Shell脚本自动实现双网共存(根据网络环境动态配置IP路由) –>问题:在使用某嵌入式开发板(Android 6.0系统)过程中,发现无法同时进行有线(Ethernet)和无线(WiFi)网卡同时通讯,同时产品又有需求,必须同时通过这两个网卡与内网和外

HowieXue 薛永浩的博客 6万+

Linux双网卡双IP双网关

ubuntu双网卡双IP.不同网关.不同子网.如何同时ping通两块网卡的解决方法, 服务器环境如下:、 系统:Ubuntu 9.04 X64 server 电信IP(TEL):114.80.0.4 netmask 255.255.255.128 gateway 114.80.0.3 联通IP(CNC):112.65.0.2 netmask 255.255.255.0 ga

Arnold_wang 2378

RK3568 Android 11双以太网隔离配置实战指南

双网口通信是嵌入式Linux系统中实现网络隔离与边缘路由的基础能力,其核心在于硬件驱动启用、内核网络栈控制与策略路由协同。在RK3568平台,Android 11的ConnectivityService默认仅支持单默认路由,导致ETH0与ETH1易发生路由冲突、DHCP抢占或PHY识别失败;需通过Device Tree启用GMAC1、配置netmgrd静态IP策略、结合ip rule/ip route构建多表路由,并规避Android网络管理框架的限制。该方案广泛应用于工业网关、PLC数据采集、双网隔离终端

weixin_29188997的博客 160

android 双网卡

android添加双网卡

Android以太网卡配置启动流程和双网卡同时支持的实现

1.启动以太网卡 Android系统中对系统支持的feature都放在frameworks/base/data/etc/platform.xml中,以太网也属于其中一个feature。如果系统需要支持以太网卡的话,需要在platform.xml中添加以太网feature,代码如下: <feature name="android.hardware.ethernet" > &...

1万+

告别混乱!在Unity中为Best MQTT v3设计清晰的服务层:配置、连接、订阅发布模块拆分指南

本文详细介绍了如何在Unity中使用Best MQTT v3插件构建清晰的服务层架构,包括配置管理、连接服务、订阅管理和发布服务的模块化拆分。通过解耦设计、事件驱动和接口抽象,提升代码可维护性和可测试性,适用于物联网和实时通信开发场景。

weixin_30576827的博客 357

android双网卡,指定发包网卡。

android 5.1,双网卡,一个为有线,名为eth0,一个为wifi ,名为wlan0。 SO_BINDTODEVICE绑定发出包的网卡为eth0 测试包的资源 https://download.youkuaiyun.com/download/ssj901217/11457266 1、wifi不开,只接有线,路由表中,只有绑定的网卡。 发送的目标为同网段,直接使用ARP查询目标IP对应的MAC地址。然后发...

ssj901217的博客 6929

智能驾驶感知模块评测实战:如何用回灌测试提升BEV模型准确率(附数据集处理技巧)

本文深入探讨了如何通过诊断型回灌测试系统性地提升智能驾驶BEV感知模型的准确率与鲁棒性。文章详细拆解了从场景切片、时空对齐到多维指标分析的完整评测流水线,并针对BEV模型特有的深度估计、特征融合等环节提供了优化思路,旨在帮助工程师将海量路采数据转化为精准的模型迭代燃料。

weixin_29045585的博客 395

反激电源占空比为何必须小于0.5?次谐波振荡与斜坡补偿详解

在开关电源设计中,峰值电流模式控制因其优异的动态响应和逐周期限流保护而被广泛应用。其工作原理是通过采样电感电流的峰值,与误差电压比较来控制开关管的导通与关断。然而,这种控制方式在反激等隔离拓扑中,当占空比超过50%时,会面临一个固有的稳定性挑战——次谐波振荡。这是由于电流扰动会在相邻开关周期内被放大而非衰减,导致系统在开关频率一半处发生振荡,严重影响输出纹波和可靠性。为解决这一问题,工程上引入了斜坡补偿技术,通过向控制信号叠加一个固定斜率的斜坡,改变环路增益条件,从而在宽输入电压或高占空比需求下维持系统稳定

weixin_29631169的博客 623

如何实现Linux双网卡同时连接内网和外网的配置?

如何实现Linux双网卡同时连接内网和外网的配置?如何实现Linux双网卡同时连接内网和外网的配置?如何实现Linux双网卡同时连接内网和外网的配置?如何实现Linux双网卡同时连接内网和外网的配置?如何实现Linux双网卡同时连接内网和外网的配置?如何实现Linux双网卡同时连接内网和外网的配置?如何实现Linux双网卡同时连接内网和外网的配置?如何实现Linux双网卡同时连接内网和外网的配置?如何实现Linux双网卡同时连接内网和外网的配置?如何实现Linux双网卡同时连接内网和外网的配置?如何实现Li

虎头金猫:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,虎哥承诺每年免费为100名C站创作者做账号流量诊断服务! 2806

Cluster Computing投稿

在overleaf中新建picins.sty文件,该文件是导入的包在.tex文件中添加以下内容\usepackage{picins}%实现作者简介%下边这块有几个人复制几段\vspace{0\baselineskip} %这一行控制作者间隔,可视情况改数字!!!!!!!!

这里是萤石ym的学习路途,努力搬砖! 5533

如何解决 CentOS 双网卡配置的内外网通信问题?

大家好,猫头虎博主在此!今天我们要探讨的是在 CentOS 系统中,双网卡配置时常遇到的一个棘手问题:内外网不能同时通畅。很多小伙伴在设置了静态路由、IP转发以及网关之后,仍然面临一个网可以通而另一个网断开的情况。在这篇博客中,我将带领大家详细探讨问题的根源,并逐步解决这个问题,确保你的服务器能同时访问内外网。🐾🖥️双网卡配置指的是在同一台服务器上安装两块网络接口卡(NIC),每张卡负责不同的网络通信,如一张卡连接内网,另一张连接外网。这种配置可以提高网络效率和安全性。配置项配置命令作用IP 转发。

虎头金猫:授渔优于赠鱼,兴趣引领智慧,探索之乐尤显珍贵。商务合作+:Libin9iOak ,万粉变现+:优快云WF,虎哥承诺每年免费为100名C站创作者做账号流量诊断服务! 1893

【深度学习】通俗易懂讲解循环神经网络LSTM

目录 1、循环神经网络(Recurrent Neural Networks) 2、长依赖存在的问题 3、LSTM 网络 4、LSTMs的核心思想 5、一步一步理解LSTM 6、LSTM的变种 7、总结 1、循环神经网络(Recurrent Neural Networks) 人对一个问题的思考不会完全从头开始。比如你在阅读本片文章的时,你会根据之前理解过的信息来理解下面看到的文字。...

Nieson2012的专栏 2726

Cheat Engine实战:多级指针逆向破解游戏内存的5个关键步骤(附C++模拟代码)

本文详细解析了使用Cheat Engine进行多级指针逆向破解游戏内存的完整流程。通过5个关键步骤,从定位动态地址到逐层追踪指针链,最终构建稳定指针路径。文章结合C++模拟代码,深入剖析了指针链的底层汇编原理,并提供了高级排查技巧,帮助读者掌握逆向工程中的核心内存追踪技术。

weixin_29239279的博客 306

双芯片系统android配置双网卡转发挂载NFS

双芯片系统android配置双网卡转发挂载NFS

moon146的专栏 1228

【100%通过率】华为OD机试真题 C++ 实现【水库蓄水问题】【2022.11 Q4 新题】

给定一个长度为 n 的整数数组height。数组的元素表示山的高度,选择两个元素作为水库的边界,求蓄水量的最大值并输出蓄水量最大时的边界下标(蓄水量相同时输出下标较近的)。

MISAYAONE的博客 1万+

网安学习日志:安卓双网卡隔离实验与Web安全实践

在网络安全的系统学习中,网络基础协议与路由原理是首要基石。理解TCP/IP、网关与路由表,是掌握数据流向的关键。在工程实践层面,双网卡隔离技术是物联网网关、边缘计算设备的常见需求,通过配置静态路由和防火墙策略,可实现WiFi外网与有线内网的安全隔离。同时,Web前端基础如HTML语法与DOM操作,是理解XSS漏洞和防御的核心。本文基于实战日志,梳理网安自学路线中的关键节点,分享安卓平台双网卡实验的踩坑记录,并延伸至内网渗透与毕设选题思路,为网络安全学习者提供可复用的技术路径。

weixin_29323365的博客 174

基于YOLOv8的包装商品智能检测系统完整指南—含论文、代码

《基于YOLOv8的包装商品智能检测系统》摘要: 本文提出了一套完整的零售商品自动检测解决方案,利用YOLOv8深度学习框架实现高精度、高效率的商品识别。系统针对SKU110K大规模商品数据集(含11,762张高密度货架图像)进行优化,包含数据预处理、模型训练、推理检测和可视化界面全流程。详细介绍了从CSV标注到YOLO格式的转换方法、环境配置指南及技术架构设计。该系统可应用于智能零售、物流仓储等多个场景,有效解决人工盘点效率低、误差大的痛点。实验表明,该系统具备毫秒级检测速度和批量处理能力,为商业数字化转

FJN110的博客 205

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Android Framework层设置Ip-Settings模块代码编译调试

路径:Qualcomm8550_CS/qssi/LA.QSSI.13.0/LINUX/android/packages/apps/Settings/src/com/android/settings/EthernetBoardcastReceive.java。(3)、编译生成的文件目录: out/target/product/qssi/system_ext/priv-app/Settings/Settings.apk。(7)、执行setip.sh脚本,查看日志。(2)、将封装后的IP等值写入配置文件。

以后会多把工作中总结的知识、问题处理思路和方法通过博客分享出来,欢迎大家关注和共同探讨! 784

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Kali双网卡Fluxion实战:钓鱼热点搭建与iOS/Android客户端差异解析

无线网络安全测试是信息安全领域的重要分支,其核心原理在于利用协议交互与客户端行为特性进行安全评估。在渗透测试与防御演练中,通过监听模式捕获数据包、分析握手过程是常见的技术手段。Fluxion作为自动化攻击框架,其技术价值在于将扫描、干扰、仿冒与捕获流程整合,高效模拟恶意接入点,从而揭示无线客户端连接机制中的安全风险。该工具在授权安全测试、企业无线网络审计等场景中具有重要应用。本文聚焦于使用Kali Linux与双无线网卡环境,详细解析如何配置Fluxion搭建可控钓鱼热点,并深入探讨iPhone与Andro

weixin_30323631的博客 388

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

记最近遇到的几个小问题(字符串转整型溢出,汉字乱码,双网卡双默认IP)

这个月很少写文章,因为做着项目。说来惭愧,人当项目经理,我当项目经理,我却既像爹又像娘,似乎凡事亲力,同志们太依赖项目经理了。什么编译环境、SVN提交代码,周报提交,无一不是问过我。我想不理这事,无奈有的领导太忙,有的开发人员太懒,而我又是“老好人”,只想项目快点结束,于是就要这种情况了。不过,最主要还是有人推我下坑,说我以前做项目的管理能力行,所以叫我做项目经理了。我都没当过项目经理,哪来的管理

李迟的专栏 1316

双网卡内外网设置

双网卡设置 为了工作需要访问局域网, 为了发打时间, 需要上公网寻欢 场景 内网 ip 192.168.9.102 mask 255.255.255.0 gateway 192.168.9.253 外网 ip 60.11.61.201 mask 255.255.255.0 gateway 60.11.61.129 原来(见图1) dest netmask g...

伊苏 217

Android 9.0双网卡转发到wlan0上网并通过busybox 获取gateway

busybox traceroute -q 1 -m 1 1.0.0.0 | sed -n 2p | cut -b 5- | cut -d ’ ’ -f 1 | awk ‘$1=$1’ tb8788p1_64_bsp:/ # busybox traceroute -w 1 -q 1 -m 1 1.0.0.0 | sed -n 2p | cut -b 2- 1 192.168.50.1 (192...

Tanck的专栏 1941
上一篇: Android 6.0 OTA脚本添加匹配产品名升级
下一篇: OTA升级recovery分区失败
D00PING
博客等级 码龄12年 96粉丝 48原创
评论 9
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值