你打开一个已经访问过上百次的网站,却收到错误 1005:访问被拒绝的提示。这是怎么回事?

页面提示网站所有者已封禁了你所在的网络,并显示了该网络的编号。你并非作为个人被封禁,通常甚至不是作为单个 IP 地址被封禁。你之所以被封禁,是因为你的 IP 地址所属的网络被封禁了。

错误 1005 意味着网站所有者已封禁了你 IP 地址所属的整个网络(通过其 ASN 进行识别)。Cloudflare 会返回 HTTP 403 状态码,且该封禁状态将持续有效,直到网站所有者移除该规则为止。

以下将介绍如何使用 curl 查询您的 ASN、网络被封禁的原因,以及如何解决 Cloudflare 错误 1005。

跳转至您的情况:我只是在浏览 · 我在运行脚本 · 我是网站所有者

快速解答

一览 错误 1005
HTTP状态码 403 禁止访问
持续时间 直到规则所有者删除该规则为止。等待也无济于事
常见原因 您的 IP 地址位于该网站已屏蔽的云服务、主机或 VPN 网络中
解决方法 从其他网络连接:移动数据、其他Wi-Fi网络或未受限制的移动代理

错误代码 1005 的含义

每个公共 IP 地址都属于由 ISP、移动运营商、云服务公司或 VPN 提供商等组织运营的网络。该网络拥有一个 ASN(自治系统编号)。您可以将其视为您网络连接的“邮政编码”。

当网站所有者通过 Cloudflare 的 IP 访问规则屏蔽某个 ASN 时,该 ASN 下的所有 IP 地址都会被同时屏蔽。

The rule "IF ASN = 16509 THEN Block" blocks every IP in an Amazon cloud network, while IPs in an O2 UK network load with 200 OK
图 1. 一条规则会封锁整个网络(包括完全无辜的 IP 地址)。(示例网络。)

这与错误代码 1015(即临时速率限制)的关键区别在于:1005 禁令没有计时器,因此等待并无帮助。您需要通过其他网络进行连接。

您的网络可能被封禁的原因

网站所有者很少会随意封禁网络。常见原因包括:

  1. 该网络属于数据中心或云网络。真实的访问者来自家庭和手机,而非服务器。许多网站会屏蔽 AWS、Google Cloud、DigitalOcean、OVH 和 Hetzner 等云服务提供商,因为大量机器人正是源自这些平台。
  2. 该网络属于 VPN 或主机服务商。VPN 出口节点通常位于数据中心内,并会继承该数据中心的声誉。
  3. 该网络曾发送滥用流量。如果某个网络曾是攻击或垃圾邮件的来源,网站所有者可能会封禁整个ASN,而非单个IP地址。
  4. 区域或商业原因。部分所有者会屏蔽其未提供服务的区域内的网络。

使用普通家庭或移动网络连接却仍被封锁?这种情况很少见。您的服务提供商可能被卷入了一次大范围封禁。

使用 curl 检查您的 ASN

查看网站所识别网络的最快方法是:

终端
curl -s https://ipinfo.io/json | grep '"org"'
输出
  "org": "AS16509 Amazon.com, Inc.",

输出示例。 org 字段显示了 ASN(16509)及其所有者(Amazon),因此这是一台云服务器。如果该字段中显示的是托管公司或 VPN 品牌,则很可能是你被封锁的原因。

现在确认阻断情况。这些命令可在任何类 Unix 终端中运行,包括 macOS、Linux、安装了 WSL 的 Windows 或 Git Bash。

终端
URL="https://your-site.example/"
curl -s -o /dev/null -w "%{http_code}\n" "$URL"
curl -s -o /dev/null -D - "$URL" | grep -iE "^(server|cf-ray)"
curl -s "$URL" | grep -o "1005" | head -1

A 403 页面上显示“ASN”即表示被封禁。 1005 表示被ASN封禁。一个 403 不带 1005 则表示另一种封禁类型,例如 1020。错误页面上的 ASN 通常应与您 org 字段中的ASN。请保存该 cf-ray 该值,因为网站所有者需要它来追踪您的请求。

作为访客如何解决错误 1005

由于封禁发生在网络层面,因此解决方法是切换到其他网络连接:

  1. 关闭您的 VPN。这通常能解决问题,因为 VPN 服务器往往位于该网站已封禁的数据中心网络中。
  2. 切换到移动数据。您的手机将连接到运营商的网络,其ASN与您家中或办公室的网络提供商不同。
  3. 尝试连接其他 Wi-Fi 网络。不同的提供商意味着不同的 ASN。
  4. 联系网站所有者。发送包含 Ray ID 和时间(最好是 UTC 时间)的截图。只有网站所有者才能解除封禁。

正在使用工作或学校网络吗?许多组织会通过企业代理或云安全服务转发流量,因此网站看到的是该服务商的数据中心,而非您的办公室。如果 1005 错误仅在工作时出现,这很可能是原因所在。请咨询您的 IT 团队,或者访问该网站时使用移动数据。

清除Cookie或更改DNS无济于事。Cloudflare会识别您请求的IP地址,而DNS并不会改变这一点。

运行脚本时如何修复错误 1005

如果您的脚本在云服务器上运行,1005 错误相当常见。您的请求来自托管服务商的 ASN,而许多网站会屏蔽该 ASN。

1. 使用该网站未屏蔽的网络中的 IP 地址

你需要使用真实用户所用网络的出口 IP。实际上,这意味着需要使用家庭或移动 IP。

移动 IP 在 ASN 层面上特别难以被封禁。运营商通常将大量手机分配到一小组共享的公共 IP 地址池中,这种设置被称为运营商级 NAT(CGNAT)。封禁运营商的网络将切断该国大量真实手机用户的访问,因此网站所有者很少采取这种措施。 这就是为什么运营商网络是合法自动化操作中如此常见的选择。

Eight phones share one public IP through carrier-grade NAT, so banning that IP would lock out every customer behind it
图 2. 多部手机,一个公共 IP。内部手机地址通常来自 100.64.0.0/10 地址块,该地址块专为此目的预留(RFC 6598)。(示例值。)

如需更全面的对比,请参阅移动代理、住宅代理与数据中心代理的对比。

2. 扩展前先测试

比较 org 字段在启用和禁用代理时的差异,并确认您是从哪个网络发出的请求:

The same curl commands run twice: from an Amazon cloud server the result is 403, through a mobile proxy on Telefonica UK it is 200
图 3. 相同命令,不同网络。(示例输出。)
终端
export PROXY="http://USERNAME:PASSWORD@gb1.pxm2.io:PORT"
curl -s -x "$PROXY" https://ipinfo.io/json | grep '"org"'

如果是移动运营商,则表示您处于运营商网络中;如果是主机服务商,则很可能收到相同的 1005 错误。可使用一段简短的 Python 脚本检查出口网络,并验证目标是否接受该网络:

Python
import requests

PROXY = "http://USERNAME:PASSWORD@gb1.pxm2.io:PORT"
proxies = {"http": PROXY, "https": PROXY}

# Which network does the target see?
ip_info = requests.get("https://ipinfo.io/json", proxies=proxies, timeout=20)

# Does the target accept it?
page = requests.get("https://your-site.example/", proxies=proxies, timeout=20)
blocked = page.status_code == 403 and "1005" in page.text

verdict = "ASN banned" if blocked else "not a 1005 block"
print(f"Exit network: {ip_info.json().get('org')}")
print(f"Status: {page.status_code} ({verdict})")
输出
Exit network: AS35228 Telefonica UK Limited
Status: 200 (not a 1005 block)

通过 O2 网络上的英国移动 IP 获取的示例输出。

3. 保持 IP 地址“干净”

只有当你不频繁轰炸某个网站时,IP 地址才能保持“干净”。请控制请求频率、复用会话,并在出现错误时暂停请求,否则 1005 错误可能会演变为 1015 错误,甚至导致 IP 被封禁。IP 声誉与信任评分指南详细说明了网站如何对你连接所用的 IP 地址进行评分。

4. 尊重网站

ASN封禁是一项有意识的决定。请收集公开数据,遵守网站的使用条款, robots.txt,切勿给明确禁止自动化流量的网站造成任何负载。若需定期访问,请联系网站所有者申请API或获取许可。

作为网站所有者如何修复错误 1005

如果真实用户报告 1005 错误:

  1. 获取详细信息。请对方提供包含 Ray ID 和错误发生时间的截图。
  2. 查找相关事件。在 Cloudflare 控制台中,进入安全>事件,并通过 Ray ID 或访客 IP 进行搜索。请先将错误发生的 UTC 时间转换为您的本地时间。
  3. 检查您的 ASN 规则。查看您的 IP 访问规则,确认正在被封锁的 ASN 及其原因。
  4. 缩小封锁范围。如果您为了阻止少数恶意用户而封禁了整个服务提供商,请考虑仅封禁特定 IP 地址、对 ASN 进行验证而非直接封禁,或者实施速率限制。
  5. 如果该 ASN 是您的客户使用的合法网络,请允许其访问。

错误 1005 与其他 Cloudflare 错误的区别

错误 被封锁的内容 HTTP 状态码
1005 您的网络(ASN) 403
1006、1007、1008 您的具体 IP 地址 403
1009 您的国家或地区 403
1010 您的浏览器签名 403
1015 您正受到速率限制(临时) 429

常见问题

“ASN 被封禁”是什么意思?

网站所有者已屏蔽了您所连接网络中的所有 IP 地址,例如您的 VPN 提供商网络或云主机网络。

为什么在未连接VPN时会出现错误1005?

可能是您的服务商整个网络被封锁,也可能是您正在使用通过数据中心路由的工作或学校网络。请尝试使用移动数据进行测试。

错误代码 1005 和 1006 有什么区别?

1005 表示整个网络(ASN)被封锁。1006 表示您的特定 IP 地址被封锁,切换到同一网络中的另一个 IP 地址即可解决。但此方法无法解决 1005 错误。

绕过错误 1005 没问题吗?

使用其他网络访问公开内容是正常做法,大多数访问者都会不假思索地这么做。但如果某个网站明确表示要屏蔽自动化流量,请遵守其条款;如有疑问,请向网站所有者申请访问权限。

想通过真实的运营商网络进行测试吗?

pxm2.io 在运营商网络上运行真正的 4G 和 5G 移动代理,包括英国的 O2,以及美国、法国、西班牙、新加坡、印度和波兰。请联系客服申请 1 小时免费试用,并在决定使用前对您自己的目标网站运行上述 ASN 检查。查看套餐 →


来源:Cloudflare 文档:错误 1005、Cloudflare 文档:1xxx 错误列表、Cloudflare 文档:1xxx 错误排查、RFC 6598:共享地址空间