ASP.NET Core WebAPI仅本地可访问 外网请求报WinError 10060排查
故障排查方向
1. 基础网络连通性排查
- 首先确认你请求用的
{myIPAddress}是可被公网路由的IP:如果你的服务器部署在内网环境(家庭/公司局域网),你填的是192.168.x.x、10.x.x.x这类内网IP,手机热点属于不同网段,天然无法路由访问;如果需要外网访问,需确认你有公网IP,且在路由器上配置了80端口映射到服务器内网IP的80端口。 - 从手机热点所在的设备执行端口连通性测试:运行命令
telnet 你的目标IP 80,如果返回连接失败,说明请求根本没到达服务器,优先排查网络/防火墙规则,不用先查服务配置。 - 检查服务器本地防火墙规则:如果是Linux服务器,执行
ufw status(ufw防火墙)或firewall-cmd --list-all(firewalld防火墙),确认80端口的入站规则已开放,且没有限制仅同网段IP访问。
2. 云服务商/运营商限制排查
- 若使用云服务器,登录云服务商控制台检查安全组配置,确认已开放80端口的入站规则,且源IP设置为
0.0.0.0/0(或包含你手机热点的IP段)。 - 测试运营商是否封禁80端口:多数家庭宽带运营商默认封禁80、443等常用端口的入站访问,可临时将Nginx监听端口改为8080,同步放开防火墙、安全组的8080端口后,用
IP:8080发起请求测试,如果能连通就是运营商封禁了80端口,需更换端口或申请解封。
3. Nginx配置排查
- 你当前Nginx配置的
server_name为HFTest,用IP直接访问时可能无法匹配到该server块,可修改配置为listen 80 default_server;,server_name _;匹配所有未指定域名的请求,修改后执行nginx -s reload重载配置。 - 查看Nginx日志定位请求是否到达服务:访问日志默认路径
/var/log/nginx/access.log,错误日志默认路径/var/log/nginx/error.log,发起请求后如果日志无新增记录,说明请求被拦截在Nginx之前的网络链路中;如果有错误日志,可根据日志内容进一步排查。
4. 应用层配置排查
- 确认ASP.NET Core应用没有配置IP白名单、访问控制策略拦截公网IP的请求,该类拦截通常会返回4xx状态码,不会出现10060超时,优先级低于前面三类排查。
- 检查Python请求代码中的
{IPAddress}、{endpoint}占位符是否正确替换,无多余符号、路径错误。
内容的提问来源于stack exchange,提问作者HJB
相关产品推荐
相关产品推荐

