如何将APK主机IP配置为本地IP?及连接问题排查方法
排查本地端口可用性与Charles映射问题的方法
一、检查本地8080端口是否正常对外提供服务
- 在服务器所在电脑的命令行执行对应系统的端口监听检查命令:
- Windows:
netstat -ano | findstr ":8080",确认输出结果中存在LISTENING状态的记录,且进程ID对应你的nanoserver服务。 - Linux/macOS:
lsof -i :8080,查看是否有对应进程在监听该端口。
- Windows:
- 在同一局域网的手机浏览器中直接访问
http://192.168.0.102:8080,若能正常打开服务页面,说明端口已对外开放;若无法访问,检查本地防火墙是否拦截了8080端口的入站请求,需添加对应端口的允许规则。 - 临时关闭nanoserver服务后再次执行端口检查命令,确认端口未被其他无关进程占用。
二、验证Charles Map Remote配置有效性
- 打开Charles的
Map Remote规则界面,确认规则的源地址完全匹配apk中原有的远程服务器地址(需包含协议、域名/IP、端口),目标地址准确设置为http://192.168.0.102:8080,且规则处于启用状态(勾选框已选中)。 - 确认Charles的代理功能已开启:在
Proxy菜单中启用对应系统的代理选项(如Windows的Windows Proxy),同时手机WiFi代理已正确配置为Charles所在电脑的IP地址和Charles默认监听端口(8888)。 - 启动手机上的mahjong应用,查看Charles的
Sequence面板是否有请求流入:- 若无任何请求,说明手机代理未生效或应用绕过了代理(部分应用会强制使用直连)。
- 若有请求但映射未生效,检查规则的匹配条件(如路径是否设置了正确的通配符、是否混淆了HTTP/HTTPS协议)。
- 用
Map Local功能做测试:将某个远程静态资源映射到本地文件,确认Charles能正常拦截并替换请求,验证其核心拦截功能正常。
三、确认apk配置修改是否生效
- 重新反编译修改后的apk,检查
appConfig.luac中的地址确实已替换为192.168.0.102:8080,避免打包过程中出现配置文件未被正确替换的情况。 - 确保修改后的apk已正确签名,部分应用会校验签名完整性,签名错误可能导致配置加载失败或应用异常。
- 清除手机上该应用的缓存与数据后重新安装,避免旧配置被缓存读取。
四、排查局域网网络连通性
- 在手机上用终端类APP执行
ping 192.168.0.102,确认手机与服务器所在电脑处于同一局域网且能正常通信。若ping不通,检查两者是否连接到同一WiFi热点,或电脑防火墙是否禁止了ICMP请求。 - 用手机的telnet工具或第三方网络检测APP测试
192.168.0.102:8080的连通性,若无法建立连接,说明端口未对外开放或存在防火墙拦截。
内容的提问来源于stack exchange,提问作者Anson Chan
相关产品推荐
相关产品推荐

