Android网络相关adb命令

文章目录
Android网络相关adb命令
Android 查看网络使用情况主要的adb命令:
1、adb shell ifconfig
2、adb shell dumpsys connectivity
3、adb shell netstat
3、adb shell ip ru
总结一下:
Android 使用adb查看网络使用情况主要的adb命令:

adb shell ifconfig //查看配置信息

adb shell dumpsys connectivity  //查看连接情况

db shell netstat //查看连接状态和地址

adb shell ip ru //查看路由策略


下面展开说一下几个命令输出后的数据如何分析或者查看。

1、adb shell ifconfig
输入命令,获取到如下信息:

k3288_Android10:/ # ifconfig
o        Link encap:Local Loopback
         inet addr:127.0.0.1  Mask:255.0.0.0
         inet6 addr: ::1/128 Scope: Host
         UP LOOPBACK RUNNING  MTU:65536  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:0 TX bytes:0

ummy0    Link encap:Ethernet  HWaddr 56:d0:3e:69:5e:50
         inet6 addr: fe80::54d0:3eff:fe69:5e50/64 Scope: Link
         UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:0 TX bytes:350

th1      Link encap:Ethernet  HWaddr 20:d0:4c:36:00:08  Driver r8152
         inet addr:172.0.6.91  Bcast:172.0.7.255  Mask:255.255.248.0
         inet6 addr: fe80::22d0:4cff:fe36:8/64 Scope: Link
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
         RX packets:6276 errors:0 dropped:25 overruns:0 frame:0
         TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:364197 TX bytes:1542

th0      Link encap:Ethernet  HWaddr be:d8:a4:ee:f7:f8  Driver rk_gmac-dwmac
         UP BROADCAST MULTICAST  MTU:1500  Metric:1
         RX packets:0 errors:0 dropped:0 overruns:0 frame:0
         TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
         collisions:0 txqueuelen:1000
         RX bytes:0 TX bytes:0
         Interrupt:44


上面表示已经打开的连接端口/网卡名称,如果没有打开是看不到的
比如:只有wifi开启状态才显示wlan0这项

这里一般关心wlan0(wifi)和eth0(有线网络)

如果连接成功inet addr会显示具体ip地址

其中inet addr:表示连接成功后的ip地址,如果没有连接成功,是没有的。

2、adb shell dumpsys connectivity
这个打印的内容是比较多的,看重点地方即可。

简单的说,就是连接上网络后Current Networks才看到相关信息
ip地址,网络的Score分值(分值越高越优先,一般针对优先网络和wifi的切换)等信息

具体情况如下图如所示:

总结就是注意看Current Networks项里面的内容即可。

部分信息:


Active default network: 101

Current Networks:
  NetworkAgentInfo{ ni{[type: Ethernet[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: 02:ad:36:01:8a:3d, failover: false, available: true, roaming: false]}  network{100}  nethandle{432902426637}  lp{{InterfaceName: eth0 LinkAddresses: [ fe80::5f92:6ddf:1843:9ffa/64,192.5.1.6/24 ]    Requests: REQUEST:0 LISTEN:3 BACKGROUND_REQUEST:0 total:3
      NetworkRequest [ LISTEN id=4, [ Capabilities: FOREGROUND AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ]
      NetworkRequest [ LISTEN id=5, [ Capabilities: NOT_RESTRICTED&TRUSTED&NOT_VPN&FOREGROUND Uid: 1000 AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ]
      NetworkRequest [ LISTEN id=7, [ Capabilities: NOT_RESTRICTED&TRUSTED&NOT_VPN Uid: 1000 AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ]
    Lingered: //之前的请求信息(不是当前的)
      NetworkRequest [ REQUEST id=1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ], expires 24995ms
      NetworkRequest [ TRACK_DEFAULT id=8, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 1000 AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ], expires 24995ms
      NetworkRequest [ TRACK_DEFAULT id=9, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 1073 AdministratorUids: [] RequestorUid: 1073 RequestorPackageName: com.android.networkstack] ], expires 24995ms
      NetworkRequest [ REQUEST id=11, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN AdministratorUids: [] RequestorUid: 1073 RequestorPackageName: com.android.networkstack] ], expires 24995ms
      NetworkRequest [ TRACK_DEFAULT id=13, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10068 AdministratorUids: [] RequestorUid: 10068 RequestorPackageName: com.dewmobile.kuaiya] ], expires 24995ms
  NetworkAgentInfo{ ni{[type: WIFI[], state: CONNECTED/CONNECTED, reason: (unspecified), extra: , failover: false, available: true, roaming: false]}  network{101}  nethandle{437197393933}  lp{{InterfaceName: wlan0 LinkAddresses: [ fe80::bbbb:2be7:6b3f:67da/64,192.5.1.27/24 ] DnsAddresses: [ /192.5.1.1 ]     Requests: REQUEST:2 LISTEN:8 BACKGROUND_REQUEST:0 total:10
      NetworkRequest [ REQUEST id=1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ]
      NetworkRequest [ LISTEN id=4, [ Capabilities: FOREGROUND AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ]
      NetworkRequest [ LISTEN id=5, [ Capabilities: NOT_RESTRICTED&TRUSTED&NOT_VPN&FOREGROUND Uid: 1000 AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ]
      NetworkRequest [ LISTEN id=7, [ Capabilities: NOT_RESTRICTED&TRUSTED&NOT_VPN Uid: 1000 AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ]
      NetworkRequest [ TRACK_DEFAULT id=8, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 1000 AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: android] ]
      NetworkRequest [ TRACK_DEFAULT id=9, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 1073 AdministratorUids: [] RequestorUid: 1073 RequestorPackageName: com.android.networkstack] ]
      NetworkRequest [ LISTEN id=10, [ Transports: WIFI Capabilities: NOT_RESTRICTED&TRUSTED&NOT_VPN Uid: 1073 AdministratorUids: [] RequestorUid: 1073 RequestorPackageName: com.android.networkstack] ]
      NetworkRequest [ REQUEST id=11, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN AdministratorUids: [] RequestorUid: 1073 RequestorPackageName: com.android.networkstack] ]
      NetworkRequest [ TRACK_DEFAULT id=13, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED Uid: 10068 AdministratorUids: [] RequestorUid: 10068 RequestorPackageName: com.dewmobile.kuaiya] ]
      NetworkRequest [ LISTEN id=17, [ Transports: WIFI Capabilities: NOT_VPN AdministratorUids: [] RequestorUid: 1000 RequestorPackageName: com.skg.benqsetting] ]


我这里是在系统中注释了网络切换后网络释放的操作,所以Current Networks才会有多个网络(正常是只看到一个NetworkAgentInfo网络对象的)

但是系统默认连接的只有一个那就是Active default network的网络

从NetworkAgentInfo也可以体现出现,那就是NetworkRequest的Capabilities包含INTERNET标签;
还有就是 包含REQUEST id=1 这个基本就是当前正在使用的网络

有些设备需要支持wifi和有些网都能连通,就不能释放网络。app内可以进行不同网络的选择连接。

3、adb shell netstat
用得不多,可能是查看连接过的具体网址

注意是看上面tcp的信息

Address是本机的信息。

Foreign Address是访问的地址信息。

打印情况如下:

C:\Users\jimmy>adb shell netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 192.5.1.6:58752         server-13-225-103:https ESTABLISHED
tcp        0      0 192.5.1.6:35612         hkg07s40-in-f22.1:https TIME_WAIT
tcp        0      0 192.5.1.6:40632         kul06s17-in-f225.:https TIME_WAIT
tcp        0      0 192.5.1.6:57072         201.181.244.35.bc:https ESTABLISHED
tcp        0      0 192.5.1.6:52326         kul06s17-in-f226.:https ESTABLISHED
tcp        0      0 192.5.1.6:41524         server-13-225-103:https ESTABLISHED
tcp        0      0 192.5.1.6:56136         203.119.217.126:http    ESTABLISHED
tcp        0      0 192.5.1.6:60548         ec2-35-161-17-206:https ESTABLISHED
tcp        0      0 192.5.1.6:50062         hkg07s29-in-f13.1:https ESTABLISHED
tcp        0      0 192.5.1.6:35616         hkg07s40-in-f22.1:https ESTABLISHED
tcp        0      0 192.5.1.6:40634         kul06s17-in-f225.:https TIME_WAIT
。。。
tcp6      32      0 ::ffff:192.5.1.6:51762  ec2-140-179-11-12:https CLOSE_WAIT
tcp6      32      0 ::ffff:192.5.1.6:51840  ec2-140-179-11-12:https CLOSE_WAIT
tcp6      32      0 ::ffff:192.5.1.6:54924  ec2-140-179-154-1:https CLOSE_WAIT
。。。
udp        0      0 192.5.1.6:bootpc        192.5.1.1:bootps        ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags       Type       State           I-Node Path
unix  110    [ ]         DGRAM                         527 /dev/socket/logdw
unix  16     [ ]         DGRAM                       25380 /dev/socket/statsdw
unix  2      [ ]         DGRAM                       26288 /data/system/unsolzygotesocket
unix  2      [ ]         DGRAM                       24418

...//下面还有很多unix的日志

3、adb shell ip ru

C:\Users\jimmy>adb shell ip ru
0:      from all lookup local
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
10500:  from all iif lo oif wlan0 uidrange 0-0 lookup wlan0
13000:  from all fwmark 0x10063/0x1ffff iif lo lookup local_network
13000:  from all fwmark 0x10064/0x1ffff iif lo lookup eth0
13000:  from all fwmark 0x10065/0x1ffff iif lo lookup wlan0
14000:  from all iif lo oif dummy0 lookup dummy0
14000:  from all iif lo oif eth0 lookup eth0
14000:  from all iif lo oif wlan0 lookup wlan0
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
19000:  from all fwmark 0x65/0x1ffff iif lo lookup wlan0
22000:  from all fwmark 0x0/0xffff iif lo lookup wlan0
32000:  from all unreachable

这里是路由策略,应该是和NetworkAgentInfo里面的NetworkRequest有一定的关联

路由策略是可以进行设置的,就是通过adb禁止/允许网络的使用(wifi/有线网络)。

但是路由策略需要root权限!设备默认root或者adb root成功才行。

adb shell ip ru flush //清空所有的路由表
adb shell ip ru add from 192.168.13.X/24 lookup eth0 //把内网设置成以太网
adb shell ip ru add from all lookup wlan0 //添加wifi联网
adb shell ip ru del from XXX //删除某一个路由策略

下面是一组简单的操作示例:

C:\Users\jimmy>adb shell ip ru
0:      from all lookup local
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
10500:  from all iif lo oif wlan0 uidrange 0-0 lookup wlan0
13000:  from all fwmark 0x10063/0x1ffff iif lo lookup local_network
13000:  from all fwmark 0x10064/0x1ffff iif lo lookup eth0
13000:  from all fwmark 0x10065/0x1ffff iif lo lookup wlan0
14000:  from all iif lo oif dummy0 lookup dummy0
14000:  from all iif lo oif eth0 lookup eth0
14000:  from all iif lo oif wlan0 lookup wlan0
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
19000:  from all fwmark 0x65/0x1ffff iif lo lookup wlan0
22000:  from all fwmark 0x0/0xffff iif lo lookup wlan0
32000:  from all unreachable

C:\Users\jimmy>adb shell
t7_an400:/ $ exit

C:\Users\jimmy>adb shell ip ru flush
RTNETLINK answers: Operation not permitted
Dump terminated

C:\Users\jimmy>adb root
restarting adbd as root

C:\Users\jimmy>
C:\Users\jimmy>
C:\Users\jimmy>adb shell ip ru flush

C:\Users\jimmy>adb shell ip ru
0:      from all lookup local

C:\Users\jimmy>adb shell ip ru add from 192.5.1.0/24 lookup eth0

C:\Users\jimmy>adb shell ip ru add from 192.5.1.6/24 lookup eth0

C:\Users\jimmy>adb shell ip ru add from all lookup wlan0

C:\Users\jimmy>adb shell ip ru
0:      from all lookup local
0:      from 192.5.1.0/24 lookup eth0
0:      from 192.5.1.6/24 lookup eth0
0:      from all lookup wlan0

C:\Users\jimmy>adb shell ip ru del from 192.5.1.0/24 lookup eth0

C:\Users\jimmy>adb shell ip ru
0:      from all lookup local
0:      from 192.5.1.6/24 lookup eth0
0:      from all lookup wlan0


可以自己测试一下,删除所有路由策略发现wifi上不了网,把wifi策略添加后就可以上网了。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在Android中,可以使用adb命令通过IP地址连接手机。首先,确保手机和计算机连接在同一个网络下,并且已经打开了USB调试模式。接下来,打开命令行终端或者命令提示符窗口,在命令行中输入以下命令: 1. 首先,使用adb devices命令查看设备列表,确认设备已被识别并连接。 ``` adb devices ``` 2. 接下来,使用adb tcpip命令,将设备切换至TCP/IP模式。此时,设备将在5555端口等待连接。 ``` adb tcpip 5555 ``` 3. 然后,使用手机的IP地址替换下方命令示例中的"设备IP",输入以下命令连接设备: ``` adb connect 设备IP:5555 ``` 4. 如果连接成功,终端会返回"connected to 设备IP:5555"的信息,并且设备列表中将显示已连接的设备。 5. 现在,您可以使用adb命令与该设备进行交互,例如通过adb shell命令进入设备的shell,进行文件操作、安装应用程序等。 ``` adb shell ``` 6. 如果需要切换回USB模式,使用以下命令: ``` adb usb ``` 通过以上步骤,您可以在不使用USB线缆的情况下通过IP地址连接Android手机,并使用adb命令进行设备管理和调试操作。请注意,如果设备的IP地址发生变化或重启,您可能需要重新执行步骤2和步骤3来重新连接设备。 ### 回答2: 在Android中,我们可以使用adb命令通过IP地址连接手机。首先,确保手机和电脑连接到同一个WiFi网络上。 步骤如下: 1. 打开手机的设置菜单,并找到“关于手机”选项。 2. 在“关于手机”选项中,查找和点击“状态”或“网络信息”。 3. 在“状态”或“网络信息”中,可以找到手机的IP地址。 4. 在电脑上打开命令提示符或终端窗口,输入以下adb命令adb connect <手机IP地址>:<端口号>。例如,adb connect 192.168.0.100:5555。 5. 如果一切正常,命令提示符或终端窗口将显示“已连接到<手机IP地址>:<端口号>”。 6. 现在,您可以使用其他adb命令与连接的手机进行交互了,例如安装应用程序、传输文件等。 需要注意以下事项: 1. 手机和电脑必须连接到相同的WiFi网络上,否则无法建立连接。 2. 在一些手机上,需要在开发者选项中启用网络调试模式。 3. 如果连接不成功,可以尝试断开连接并重新连接手机,或者重新启动手机和电脑后再次尝试。 通过上述步骤,您就可以在Android中使用adb命令通过IP地址连接手机,并且可以方便地使用各种adb命令来管理和调试您的设备。 ### 回答3: 在Android中,使用adb命令通过IP地址连接手机是非常方便的。步骤如下: 首先,确保手机和电脑连接在同一个局域网环境中。 其次,在电脑上打开终端或命令提示符窗口,进入adb命令所在的目录。如果你已经将adb添加到环境变量中,可以直接在任何路径下使用adb命令。 接下来,通过以下命令查找设备的IP地址:adb shell ifconfig或adb shell ip addr。在返回结果中,找到设备的IP地址。 然后,使用以下命令连接到设备的IP地址:adb connect 设备IP地址。例如,adb connect 192.168.0.100。 最后,在连接成功后,你可以像正常连接设备一样使用adb命令来操作手机了。例如,adb shell可以进入设备的命令行界面,adb install可以安装应用程序等。 需要注意的是,通过IP地址连接手机的方式可能不如通过USB连接稳定和快速,因此在进行开发或调试时,建议使用USB连接。此外,某些设备可能需要在设置中启用ADB网络调试模式才能通过IP地址连接。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值