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

Android11三星A52s上Socket.connect连接alexanderweinert.net超时问题

问题描述

在运行Android 11的三星Galaxy A52s(型号:SM-A528B/DS)真机上调试Android应用时,调用Socket.connect连接alexanderweinert.net出现超时异常。该域名由namecheap.com管理,解析指向Hetzner托管的服务器。

相关代码

import java.io.IOException;
import java.net.InetSocketAddress;
import java.net.Socket;

import javax.net.SocketFactory;
try {
    final Socket socket = SocketFactory.getDefault().createSocket();
    final InetSocketAddress remoteAddress = new InetSocketAddress("alexanderweinert.net", 443);
    final int timeout = 2000;
    socket.connect(remoteAddress, timeout);
} catch (IOException e) {
    e.printStackTrace();
}

问题特征

  • socket.connect调用会在2秒后超时,相同逻辑连接google.com等其他域名可正常连通
  • 调高超时阈值、切换连接80端口均无法解决问题
  • 异常仅在真机上出现,模拟器运行正常
  • WiFi和移动数据网络下均能复现,可排除本地网络配置错误的影响
  • 可提供可复现问题的最小示例应用

已知信息

  • 暂未测试Android 11以外的其他系统版本
  • 调试信息确认域名可正常解析到正确IP
可能的异常原因
  • 三星系统内置的域名/IP拦截规则:部分地区发售的三星机型固件内置了网络过滤机制,会默认拦截指向小众境外服务商的出站连接,且不会抛出明确的拦截提示,仅表现为连接超时。可尝试直接用解析得到的IP建立Socket连接,验证是否为域名层面的拦截。
  • 三星定制Android 11的网络栈缺陷:三星对原生Android网络栈做了大量定制,部分Android 11版本固件存在TCP握手参数配置错误、MTU探测异常的问题,指向Hetzner这类境外IDC的连接会出现握手失败。可对真机网络抓包,确认TCP SYN包是否正常发出、服务器是否返回SYN+ACK响应。
  • Hetzner服务器侧的区域IP封禁:Hetzner默认会封禁部分地区的移动运营商IP段的请求,可尝试用真机自带浏览器直接访问该域名的443端口服务,若浏览器也无法打开即可确认是服务器侧的IP拦截。
  • 运营商透明代理过滤:部分地区运营商会对443、80等通用端口的非知名域名请求做过滤,不符合白名单规则的连接包会被直接丢弃,表现为连接超时。可尝试连接该域名的非通用端口(如8443,需服务器提前开放)验证是否为端口层面的拦截。
  • 应用网络安全配置规则被三星系统强化:检查应用的network_security_config.xml是否对该域名有特殊限制,部分三星系统会强化网络安全配置的执行逻辑,不符合规则的连接会被直接阻断而非抛出明确异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 23:06:02