Android 网络配置

news2024/9/22 21:17:08

adb root

adb shell

改变网卡网址

ifconfig eth0 192.168.0.167 up

添加虚拟网卡

 ifconfig eth0:0 192.168.10.10 up

以上的命令就可以在eth0网卡上创建一个叫eth0:0的虚拟网卡,他的地址是:192.168.10.10

删除虚拟网卡

ifconfig eth0:0 down


ip route 查看路由表的内容

G8142:/ $ ip route
192.168.31.0/24 dev wlan0  proto kernel  scope link  src 192.168.31.165

ip rule 显示当前路由策略

Android设备中可以使用命令ip rule显示现有的路由策略,如下所示:

rk3399_all:/ # ip rule
0:     from all lookup local
10000:  from all to 172.29.7.148 lookup eth0
10000:  from all fwmark 0xc0000/0xd0000 lookup legacy_system
10500:  from all iif lo oif dummy0 uidrange 0-0 lookup dummy0
10500:  from all iif lo oif eth0 uidrange 0-0 lookup eth0
13000:  from all fwmark 0x10063/0x1ffff iif lo lookup local_network
13000:  from all fwmark 0x10064/0x1ffff iif lo lookup eth0
14000:  from all iif lo oif dummy0 lookup dummy0
14000:  from all iif lo oif eth0 lookup eth0
15000:  from all fwmark 0x0/0x10000 lookup legacy_system
16000:  from all fwmark 0x0/0x10000 lookup legacy_network
17000:  from all fwmark 0x0/0x10000 lookup local_network
19000:  from all fwmark 0x64/0x1ffff iif lo lookup eth0
22000:  from all fwmark 0x0/0xffff iif lo lookup eth0
23000:  from all fwmark 0x0/0xffff uidrange 0-0 lookup main
32000:  from all unreachable
rk3399_all:/ #


其中第一列表示策略号码(同时也是策略对应的索引值),可支持上万条策略,
策略号码数值越小表示该条策略的优先级越高。策略0为优先级最高的策略,
在数据包进行路由时,首先匹配该数据包是否满足策略0的规则,
即所有的数据包去 local路由表中去查找自己的路由方向,
没有找到则使用下一优先级的路由策略,这里为10000号策略,
即所有的数据包发往172.29.7.148的都从eth0网卡出去。

rk3399_all:/ # ip route list table local
broadcast 127.0.0.0 dev lo proto kernel scope link src 127.0.0.1
local 127.0.0.0/8 dev lo proto kernel scope host src 127.0.0.1
local 127.0.0.1 dev lo proto kernel scope host src 127.0.0.1
broadcast 127.255.255.255 dev lo proto kernel scope link src 127.0.0.1
broadcast 172.29.0.0 dev eth0 proto kernel scope link src 172.29.7.28
local 172.29.7.28 dev eth0 proto kernel scope host src 172.29.7.28
broadcast 172.29.255.255 dev eth0 proto kernel scope link src 172.29.7.28
rk3399_all:/ #
130|G8142:/ $ ip rule ls
0:      from all lookup local
10000:  from all fwmark 0xc0000/0xd0000 lookup 99
10500:  from all oif dummy0 uidrange 0-0 lookup 1003
10500:  from all oif wlan0 uidrange 0-0 lookup 1023
13000:  from all fwmark 0x10063/0x1ffff lookup 97
13000:  from all fwmark 0x10064/0x1ffff lookup 1023
14000:  from all oif dummy0 lookup 1003
14000:  from all oif wlan0 lookup 1023
15000:  from all fwmark 0x0/0x10000 lookup 99
16000:  from all fwmark 0x0/0x10000 lookup 98
17000:  from all fwmark 0x0/0x10000 lookup 97
19000:  from all fwmark 0x64/0x1ffff lookup 1023
22000:  from all fwmark 0x0/0xffff lookup 1023
23000:  from all fwmark 0x0/0xffff uidrange 0-0 lookup main
32000:  from all unreachable

路由策略数据库管理命令

G8142:/ $ ip route
192.168.31.0/24 dev wlan0  proto kernel  scope link  src 192.168.31.165

G8142:/ $ ifconfig
wlan0     Link encap:UNSPEC    Driver icnss
          inet addr:192.168.31.165  Bcast:192.168.31.255  Mask:255.255.255.0
          inet6 addr: fe80::86c7:eaff:fe2d:b98/64 Scope: Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:6644 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6980 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3000
          RX bytes:6001248 TX bytes:1155447

kuznet@amber:~ $ ip ru ls

0: from all lookup local

200: from 192.203.80.0/24 to 193.233.7.0/24 lookup main

210: from 192.203.80.0/24 to 192.203.80.0/24 lookup main

220: from 192.203.80.0/24 lookup inr.ruhep realms inr.ruhep/radio-msu

300: from 193.233.7.83 to 193.233.7.0/24 lookup main

310: from 193.233.7.83 to 192.203.80.0/24 lookup main

320: from 193.233.7.83 lookup inr.ruhep map-to 192.203.80.144

32766: from all lookup main

kuznet@amber:~ $

每行第一部分的数字是规则的优先级,接着是选择符。

关键词lookup后面接着路由表识别符。

如果规则要进行网络地址转换,还需要一个关键词map-to设置转换以后的地址。

上面的示例非常简单,192.203.80.0/24和193.233.7.0/24组成内部网络,但是它们向外发送数据包要通过不同的路由。主机193.233.7.83和外界会话时,地址需要转换为192.203.80.144。

查看路由表

    最早的策略配置方式是写了个shell脚本,配置了如下策略,对于目的IP为77/78的都走eth0网卡。在init.rc中开启对应的服务ipruleservice,网卡启动或者链路有变化调用该服务配置策略,ipruleservice中命令如下

ip rule add to 192.168.1.78 table eth0
ip rule add to 192.168.1.77 table eth0

APP 实际应用

public static final int TRANSPORT_BLUETOOTH = 2;
public static final int TRANSPORT_CELLULAR = 0;
public static final int TRANSPORT_ETHERNET = 3;
public static final int TRANSPORT_LOWPAN = 6;
public static final int TRANSPORT_USB = 8;
public static final int TRANSPORT_VPN = 4;
public static final int TRANSPORT_WIFI = 1;
public static final int TRANSPORT_WIFI_AWARE = 5;

考虑一个特殊的需求,某app只能通过WIFI接口去传输数据,是否可以实现?较新版本的android已经支持了该功能,通过调用setProcessDefaultNetwork()可以指定某一进程的网络接口,

该进程在创建socket时(app首先调用setProcessDefaultNetwork()),android底层会利用setsockopt函数设置该socket的SO_MARK为netId(android有自己的管理逻辑,每个Network有对应的ID),以后利用该socket发送的数据都会被打上netId的标记(fwmark 值)



 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/986736.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

如何选择合适的HTTP代理服务器

HTTP代理服务器是一种常见的网络代理方式,它可以帮助用户隐藏自己的IP地址,保护个人隐私和安全。然而,选择合适的HTTP代理服务器并不容易,需要考虑多个因素。本文将介绍如何选择合适的HTTP代理服务器。 了解代理服务器的类型 HTT…

MySQL 8.0(winx64)安装笔记

一、背景 从MySQL 5.6到5.7,再到8.0,版本的跳跃不可谓不大。安装、配置的差别也不可谓不大,特此备忘。 二、过程 (1)获取MySQL 8.0社区版(MySQL Community Server)   从 官网 字样 “MySQL …

Docker 搭建Redis Cluster 集群

环境: centos7 redis:7.0.5 三主三从,六个节点 一、下载redis镜像 docker pull redis:7.0.5 二、创建虚拟网卡 docker network create redis-cluster# 查看创建的Docker网卡 docker network ls 网卡类型为bridge桥接类型 三、准备redis配置文件 redi…

安卓核心板的不同核心规格及架构介绍

安卓核心板是将核心功能封装的一块电子主板,集成芯片、存储器和功放器件等,并提供标准接口的芯片。 其特点: ● 能跑 Android 等操作系统 强大的功能及丰富的接口 支持 LCD/TP,Audio,Camera,Video&#…

vue3:13、Vue3.3新特性-defineModel

旧版本的语法 新版本语法

一百七十三、Flume——Flume写入HDFS后的诸多小文件问题

一、目的 在用Flume采集Kafka中的数据写入HDFS后,发现写入HDFS的不是每天一个文件,而是一个文件夹,里面有很多小文件,浪费namenode的宝贵资源 二、Flume的配置文件优化(参考了其他博文) (一&a…

谷歌收录网页最快需要多久?

答案是:谷歌收录网页最快是24小时内。 当我们建立新的网站或者为现有网站添加新内容时,都希望这些内容能够尽快被谷歌收录。 但实际上,谷歌的收录时间可能会因各种因素而异。 这篇文章将为您详解相关的知识点。 网站收录的基本过程 如何…

二、[mysql]之Explain讲解与实战

目录 一、了解Explain1.Explain介绍 二、Explain相关字段1.partitions2.filtered3.SHOW WARNINGS命令 三、Explain比较重要字段1.id2.select_type3.table4.type5.possible_keys6.key7.key_len8.ref9.rows10.Extra 四、索引优化实战(遵循原则)1.全值匹配2…

2023年7月京东奶粉行业品牌销售排行榜(京东数据产品)

鲸参谋监测的京东平台7月份奶粉市场销售数据已出炉! 根据鲸参谋平台的数据显示,今年7月份,京东奶粉市场的销量为600万,同比去年同期有所下滑,整体下降约21%;销售额为22亿,同比增长约9%。由此也…

UWB学习——day2

UWB应用 基于上文UWB学习——day1中对UWB技术的相关优势介绍,UWB技术可广泛应用于以下场景。 WPAN(无线个域网) 基于其高精度(亚厘米级)、低功耗和高穿透性等特征,在以人为基础的个域网中应用广泛&#…

使用自动模型

本文通过文本分类任务演示了HuggingFace自动模型使用方法,既不需要手动计算loss,也不需要手动定义下游任务模型,通过阅读自动模型实现源码,提高NLP建模能力。 一.任务和数据集介绍 1.任务介绍 前面章节通过手动方式定义下游任务模…

2020年12月 C/C++(二级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:数组指定部分逆序重放 将一个数组中的前k项按逆序重新存放。例如,将数组8,6,5,4,1前3项逆序重放得到5,6,8,4,1。 时间限制:1000 内存限制:65536 输入 输入为两行: 第一行两个整数,以空格分隔,分别为数组元素的个数n(1 < n…

Mybatis传参parameterType为List<Map>

这里分别记录使用过的五种传参方式&#xff1a; 1、在入参只有一个的情况下,Mapper.java中直接传即可 2、而在参数有两三个的情况下,Mapper.java中可以用Param注解来指定入参 程序就知道哪个参对应拼接完SQL的哪个条件字段 并且Mapper.xml中parameterType不用去指定&#xff…

controller接口上带@PreAuthorize的注解如何访问 (postman请求示例)

1. 访问接口 /*** 查询时段列表*/RateLimiter(time 10,count 10)ApiOperation("查询时段列表")PreAuthorize("ss.hasPermi(ls/sy:time:list)")GetMapping("/list")public TableDataInfo list(LsTime lsTime){startPage();List<LsTime> l…

【 Tkinter界面-练习04】 画板作画详细揭示

一、说明 对画布的掌握分三个部分&#xff0c;将图形paint到画布、动画move、鼠标画&#xff1b;本篇将侧重于鼠标画的功能&#xff0c;提起鼠标画实现&#xff0c;将涉及一系列组合操作才能完成&#xff0c;这里将一一加以介绍。 Canvas 小部件具有大量功能&#xff0c;我们不…

这是公司最糟糕的程序员,但是我坚决要留住他!

我在一家著名的软件咨询公司工作&#xff0c;有一天&#xff0c;公司决定对开发人员的个人绩效进行度量。 这个目标很美好&#xff1a;评估个人能力&#xff0c;帮助开发人员成长。 指标经过层层分解&#xff0c;来到我们团队&#xff0c;经过经理的认真讨论&#xff0c;决定不…

云备份客户端——数据管理模块

数据管理模块设计之前&#xff0c;我们需要先明确该模块的信息是用来做什么的。根据上文分析该模块信息主要用于判断一个文件是否需要备份&#xff0c;判断条件有两个&#xff1a;1.新增文件 2.被修改过的文件 新增文件好判断&#xff0c;由于我们获得新文件后是先上传文件&…

有效利用云测试的关键要素是什么

云测试是一种基于云计算平台的软件测试方法&#xff0c;它将测试环境和资源部署在云端&#xff0c;通过网络连接来执行测试任务。云测试提供了弹性的计算能力和资源管理&#xff0c;可以根据需求快速扩展和缩减测试环境&#xff0c;使测试过程更加灵活和高效。那么&#xff0c;…

如何在国内安装Bitdefender

我一直有关注国外的antivirus的情况&#xff0c;之前一直用ESET&#xff0c;但是最近一直关注到 Bitdefender 可以和卡巴斯基旗鼓相当&#xff0c;于是抱着试试看的精神&#xff0c;在win10和win11安装了一遍。外国软件大都服务部署在AWS&#xff0c;但是我们这儿的运营商和某种…

使用极域电子教室控制学员机开机问题

遇到问题&#xff1a; 昨天晚上试了一下从网上下载的“极域电子教室”软件&#xff0c;首先保证教师机和学员机器在同一局域网下&#xff0c;然后我发现&#xff1a;教师机可以控制学员机 关机、重启&#xff0c;但是不能控制学员机 开机。 解决办法&#xff1a; 按下电脑开机…