You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

adb reverse tcp:8080 tcp:8080能否支持非localhost域名转发?

解决Android通过ADB反向转发访问自定义域名的问题

问题核心原因

adb reverse tcp:8080 tcp:8080实现的是Android设备端口到主机端口的转发,但Android设备访问my.example.com:8080时,会优先使用自身系统的hosts文件解析域名,而非主机的hosts配置。即使主机把my.example.com指向127.0.0.1,Android设备没做对应配置的话,域名解析结果不指向本地127.0.0.1,请求自然不会走ADB转发的端口。

可行解决方法

方法1:修改Android设备的hosts文件

  • 若设备已root:
    1. 进入设备shell:adb shell
    2. 挂载系统分区为可写:mount -o remount,rw /system(部分设备路径为/system_root,需自行适配)
    3. 添加域名映射:echo "127.0.0.1 my.example.com" >> /system/etc/hosts
    4. 恢复只读挂载:mount -o remount,ro /system
  • 非root设备可临时使用adb命令推送修改后的hosts文件(部分系统版本支持):
    1. 在本地创建包含127.0.0.1 my.example.com的hosts文件
    2. 执行adb push ./hosts /sdcard/
    3. 进入shell后复制到系统目录:cp /sdcard/hosts /system/etc/hosts(需确保系统分区可写,部分设备可能受限)

方法2:应用内直接映射域名(无需修改设备)

在Android应用的网络配置或代码中,将my.example.com直接替换为127.0.0.1,或者通过OkHttp等网络库的拦截器实现域名到127.0.0.1的映射,绕开设备系统的域名解析环节,直接利用ADB的端口转发规则。

方法3:临时代理方案(测试场景用)

在Android设备的网络设置中,将代理设置为127.0.0.1:8080,此时所有网络请求会走本地端口,结合ADB转发规则也能实现访问,但此方法会影响设备其他网络请求,仅适合临时测试。

内容的提问来源于stack exchange,提问作者eastwater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 22:07:07