解決 Android ping IPv6 地址顯示 network is unreachable 的問題

最近在搞 4G Volte 的漏洞分析,在一個 Android 測試機上模擬了一個 SIP 包發送給現網,結果根本發不出去。shell

檢查了半天發現抓包數據中手機發給現網的數據包未發送成功,ping 了一下顯示網絡不可達 (network is unreachable)bash

$ adb shell ping6 -I rmnet_data7 2409:8010:8210:1:1004:1004:0:8
connect: Network is unreachable

這種狀況通常是因爲沒有設置路由形成的。網絡

因爲 Volte 數據收發是經過 IPv6 地址,所以須要經過 Androidshell 添加路由。測試

$ adb shell ip -6 route add default dev rmnet_data7

說明3d

  • -6 表明IPv6地址,code

  • rmnet_data7 表明須要設置的路由的網絡接口 (network interface),通常 Volte 數據的網絡接口就是 rmnet_data7接口

設置完成後看一下是否添加ip

$ adb shell ip route show            
default dev rmnet_data7  scope link

此時說明已添加完成,再 ping 一下以前的 IPv6 地址,就能夠通了。路由

$ adb shell ping6 -I rmnet_data7 2409:8010:8210:1:1004:1004:0:8
PING 2409:8010:8210:1:1004:1004:0:8(2409:8010:8210:1:1004:1004:0:8) from 2409:8800:8209:143d:5437:e004:db5b:483 rmnet_data7: 56 data bytes
64 bytes from 2409:8010:8210:1:1004:1004:0:8: icmp_seq=1 ttl=253 time=169 ms
64 bytes from 2409:8010:8210:1:1004:1004:0:8: icmp_seq=2 ttl=253 time=68.8 ms
64 bytes from 2409:8010:8210:1:1004:1004:0:8: icmp_seq=3 ttl=253 time=67.1 ms
相關文章
相關標籤/搜索