住宅 IP 为何被标记为代理或机房 IP:如何自查

IP 情报厂商给地址打标签,依据的是路由、注册信息、DNS 和行为,而不是设备本身。本文说明哪些信号会把“住宅”IP 变成代理或机房 IP,并给出一套可用于任意 IP 或出口样本的免费自查方法。

Why Residential IPs Get Flagged as Proxy or Hosting: How to Audit One
本文目录

IP 情报厂商从来看不到一个地址背后的设备。他们依据注册记录、路由数据、DNS 名称以及观测到的行为给地址打标签。当其中某一层指向数据中心时,“住宅”IP 就会被标记为代理或机房(hosting)。这一层可能是宣告该地址的网络、它所在的那个 /24、它的 WHOIS 组织或反向 DNS、注册国家与地理定位之间的不一致,也可能是它曾经转发过代理流量。这些层你都可以用免费工具自己检查,每个 IP 大约十分钟。本文介绍具体做法。

我们的IP 信誉与欺诈评分详解讲的是 IPQualityScore 这类分数如何构建、网站如何使用。本文是它的实操篇:哪些分类信号决定了结论,四家常见厂商如何呈现这些信号,以及一套可以重复执行的自查流程,适用于单个 IP 或一批出口 IP 样本。

住宅 IP 为何被标记为代理或机房

所谓住宅 IP 上的“机房”或“代理”结论,大多来自五个信号。首先是网络归属和路由,其次是名称,然后是位置一致性,最后是观测到的行为。各家厂商组合这些信号的方式不同,所以结论常常不一致。

1. ASN 类型:谁在宣告这个地址

每个可路由的 IP 都由某个自治系统(ASN)在 BGP 中宣告。厂商会按背后组织的类型给 ASN 分类。IPinfo 的 ASN type 取值为 isp、hosting、business、education 或 government 之一。在 PeeringDB 上,网络自行填写描述,其中有一个 info_types 字段。它的 API 对 Comcast(AS7922)返回 ["Cable/DSL/ISP"],对 Cloudflare(AS13335)返回 ["Content"]:

curl -s "https://www.peeringdb.com/api/net?asn=7922" | jq '.data[0] | {name, info_types}'

如果宣告 ASN 是一家托管公司,几乎所有厂商都会把这个 IP 判为机房,不管地址注册在谁名下。这是权重最高、也最难反驳的信号。

2. 看宣告的前缀,而不只是 ASN

我们在审查静态“住宅”或 ISP IP 时发现,真正有用的单位往往是宣告的前缀(通常是 /24),而不是 ASN。一个原本干净的 ISP 网络里,某个 /24 可能显示为机房,而该 ASN 的其余部分仍显示为住宅。可能的原因是厂商在前缀级别修正数据。被出租、改路由或出现过托管服务器的地址段会被单独重新打标签,ASN 的其余部分则保留原标签。/24 也是全球路由表普遍接受的最小 IPv4 地址块,因此天然就是出租和重新宣告的单位。所以当一个 IP 被标记时,先检查同一 /24 里的邻居,再决定是否怪罪整个服务商或整个 ISP。

3. WHOIS 组织与反向 DNS

注册记录和 PTR 名称是低成本信号,厂商把它们当作平局时的参考。netname 或 org 中出现 “hosting”“cloud”“server”“VPS” 之类的词,或者 PTR 形如 vps-123.example-host.net,都会把结论往机房方向拉。住宅地址段通常带有 ISP 风格的 PTR,里面编码了接入技术,或者写着 “dynamic”“pool”。没有 PTR 说明不了任何问题:很多 ISP 不配置反向 DNS,而很多托管商反而会配置。

4. 注册国家与地理定位国家

IP 的注册国家(来自区域互联网注册管理机构,即 RIR)与地理定位厂商给出的国家不一致,是我们见过的静态 IP 被判为“机房”或“代理”的最常见原因之一。真实的家庭宽带很少“跨国”:德国 ISP 的用户就在德国。出租和重新宣告的地址段则经常跨国,注册信息留在原持有者名下,地址却在别处使用。运营商可以通过自行发布的 geofeed(RFC 8805)声明某个前缀的实际使用地,并按 RFC 9632 让它可以从 WHOIS 中被发现。这样能改变地理定位,但注册信息的不一致仍然对任何查看的人可见。

来看一个值得拆解的真实例子:1.1.1.1。Team Cymru 的 IP 到 ASN whois 服务(查询于 2026-10-03)在同一行里给出了三条不同的事实:

$ whois -h whois.cymru.com " -v 1.1.1.1"
AS      | IP               | BGP Prefix          | CC | Registry | Allocated  | AS Name
13335   | 1.1.1.1          | 1.1.1.0/24          | AU | apnic    | 2011-08-11 | CLOUDFLARENET - Cloudflare, Inc., US

这个地址段通过 APNIC 注册在澳大利亚(归 APNIC Labs 所有),由注册在美国的 Cloudflare ASN 以 /24 宣告,而 ip-api 把它定位到 AU,并标注 hosting: true。对于一个由 APNIC 和 Cloudflare 联合运营的解析器来说,这一切都在意料之中。但如果是一个卖给你时号称“美国住宅”的 IP,同样的三方分裂就足以解释任何机房结论。

5. 观测到的行为

最后一层是厂商看到这个 IP 做过什么:触发蜜罐、出现在滥用情报源里、运行 VPN 或代理软件,或者被发现是某个已知住宅代理网络的出口。这是唯一能把真实 ISP 上的真实家庭 IP 标记出来的一层。IPinfo 的住宅代理 API 会返回该 IP 被发现所属的 service,以及 7 天窗口内的 last_seen 和 percent_days_seen。MaxMind 对 is_residential_proxy 的定义是“位于疑似匿名化网络且属于住宅 ISP”的 IP,并明确排除点对点代理 IP。各家厂商划线的位置不同,但结论不变:干净的 ASN 保护不了一个真的在被当作代理使用的 IP。

四家厂商如何呈现结论

每家厂商回答的问题略有不同。两个“相互矛盾”的结果常常都是对的。下表中的字段名取自各厂商当前的文档。

厂商 / 产品相关字段含义注意事项
ip-api(免费接口)proxy、hosting、mobile、as、asname、reverseproxy =“代理、VPN 或 Tor 出口地址”。hosting =“托管、主机托管或数据中心”。mobile = 蜂窝网络只是粗粒度布尔值。2026-10-03 它对 Google 的 8.8.8.8 返回了 proxy: true, hosting: true。免费接口仅支持 HTTP,每分钟 45 次请求,限非商业用途
IPinfoprivacy:vpn、proxy、tor、relay、hosting、service。asn.type。住宅代理 API(付费套餐)针对 IP 的隐私标记、针对 ASN 的组织类型,以及所属的具名代理网络免费的 Lite API 只返回国家和 ASN。隐私标记在付费套餐中,住宅代理检测要 Max 及以上
MaxMindAnonymous IP:is_anonymous、is_anonymous_vpn、is_hosting_provider、is_public_proxy、is_residential_proxy、is_tor_exit_node。Connection Type:Cable/DSL、Cellular、Corporate、Satellite。Insights 的 user_type几款独立产品:匿名性标记、接入技术,以及用户类型(residential、hosting、business 等)一个 IP 可以同时是 Cable/DSL 和 is_residential_proxy,这并不矛盾
IPQualityScorefraud_score(0–100)、proxy、vpn、tor、active_vpn、recent_abuse、connection_type(Residential、Corporate、Education、Mobile、Data Center)把分类和滥用历史混合在一起的风险分数。proxy 涵盖 SOCKS、匿名代理、VPN、Tor 等结果随 strictness 参数变化,记得记录你用的是哪一级

AbuseIPDB 还提供一个常见标签:usageType,取值如 “Data Center/Web Hosting/Transit”(文档)。

ISP 代理:为什么处于灰色地带

“ISP”或“静态住宅”代理,指的是注册在 ISP 名下、却被路由到数据中心服务器的地址。它们处于灰色地带,因为注册层说是住宅,而路由层和行为层未必同意。某个 IP 能否通过,取决于厂商对这个前缀最信任哪一层。

好的情况是 ISP 用自己的 ASN 宣告自己的地址段,服务器也在它的网络里。这时 ASN 类型、WHOIS 和地理定位全部一致。较差的情况是由托管公司的 ASN 宣告 ISP 注册的地址段,往往发生在出租之后。注册信息仍然写着 “ISP”,但宣告 ASN 是机房,而这是权重最高的信号,注册国家也可能与地理定位不符。厂商会按前缀逐个追上这些地址段,所以同一家服务商的一个 /24 可能干净,下一个却被标记。我们的 ISP 代理详解介绍了产品层面的内容。下面的自查流程能告诉你买到的是哪一种。

如何自己逐步审查一个 IP

对每个 IP 都执行同样的五步:拿到出口 IP,查注册信息,查路由,查 DNS,再问两三家厂商。在 /24 级别做比较。下面所有操作都只用免费接口。

第 1 步:拿到真实的出口 IP

确认目标网站实际看到的是哪个地址,不要轻信控制面板。对于代理:

curl -s -x "http://USERNAME:PASSWORD@gate.proxyhat.com:8080" https://api.ipify.org

如果不想写脚本,我们的代理检测工具可以在浏览器里完成同样的事。

第 2 步:注册信息(RDAP、Team Cymru)

IP=1.1.1.1
# 通过 rdap.org 跳转查询 RDAP:注册地址段、持有者、注册国家
curl -sL "https://rdap.org/ip/$IP" | jq '{name, handle, country, type, startAddress, endAddress}'
# 一行摘要:ASN、BGP 前缀、注册国家代码、注册机构、AS 名称
whois -h whois.cymru.com " -v $IP"

记下 country 和持有者 name。对于 1.1.1.1,RDAP 返回 "name": "APNIC-LABS"、"country": "AU"。

第 3 步:路由(RIPEstat、bgp.he.net)

RIPEstat Data API 免费、无需密钥,并且覆盖所有 RIR 的地址空间,而不仅是 RIPE 的。

# 宣告该地址的 ASN 以及确切的宣告前缀
curl -s "https://stat.ripe.net/data/network-info/data.json?resource=$IP" | jq '.data'
# 该 ASN 归谁所有,这个前缀是否真的在宣告
curl -s "https://stat.ripe.net/data/prefix-overview/data.json?resource=$IP" | jq '.data | {resource, announced, asns}'
# 来自 RIR 分配统计的国家
curl -s "https://stat.ripe.net/data/rir-stats-country/data.json?resource=$IP" | jq '.data.located_resources'
# 该 ASN 宣告的全部前缀,用来判断这个 /24 是否属于异类
curl -s "https://stat.ripe.net/data/announced-prefixes/data.json?resource=AS13335" | jq '.data.prefixes | length'

如果想看图形界面,bgp.he.net 会展示同样的 ASN 和前缀,以及上游和对等网络。一个小 ASN 只有一两家上游,而且上游都是托管公司,这本身就说明了很多问题。

第 4 步:反向 DNS

dig +short -x $IP

第 5 步:两三家厂商,并排记录

# ip-api:免费、无需密钥、仅支持 HTTP
curl -s "http://ip-api.com/json/$IP?fields=status,countryCode,isp,org,as,reverse,mobile,proxy,hosting"
# IPinfo Lite:凭 token 免费使用,返回国家 + ASN
curl -s "https://api.ipinfo.io/lite/$IP?token=$IPINFO_TOKEN"
# AbuseIPDB:免费密钥,每天 1,000 次查询
curl -sG https://api.abuseipdb.com/api/v2/check --data-urlencode "ipAddress=$IP" \
  -H "Key: $ABUSEIPDB_KEY" -H "Accept: application/json" | jq '.data | {usageType, isp, abuseConfidenceScore}'

按前缀审查一批出口 IP 样本

如果审查的是整个 IP 池而不是单个 IP,就按宣告前缀给结果分组。下面的脚本读取一个 IP 列表文件,使用 ip-api 的批量接口(每次 POST 最多 100 个 IP,免费版每分钟 15 次请求)和 RIPEstat,每个前缀输出一行:

import json, sys, time, urllib.request
from collections import defaultdict

def get(url, data=None):
    req = urllib.request.Request(url, data=data, headers={
        "User-Agent": "ip-audit/1.0", "Content-Type": "application/json"})
    with urllib.request.urlopen(req, timeout=20) as r:
        return json.load(r)

def ripestat(call, resource):
    return get(f"https://stat.ripe.net/data/{call}/data.json?resource={resource}")["data"]

ips = [l.strip() for l in open(sys.argv[1]) if l.strip()]

geo = {}
fields = "query,countryCode,isp,org,as,proxy,hosting,mobile"
for i in range(0, len(ips), 100):
    chunk = ips[i:i + 100]
    for row in get(f"http://ip-api.com/batch?fields={fields}", json.dumps(chunk).encode()):
        geo[row["query"]] = row
    time.sleep(4)  # 控制在每分钟 15 次批量请求以内

by_prefix = defaultdict(list)
for ip in ips:
    net = ripestat("network-info", ip)
    reg = ripestat("rir-stats-country", ip)["located_resources"]
    reg_cc = reg[0]["location"] if reg else "?"
    by_prefix[(net["prefix"], ",".join(net["asns"]))].append((ip, reg_cc, geo.get(ip, {})))

for (prefix, asns), rows in sorted(by_prefix.items()):
    hosting = sum(1 for _, _, g in rows if g.get("hosting"))
    proxy = sum(1 for _, _, g in rows if g.get("proxy"))
    mismatch = sum(1 for _, cc, g in rows if g.get("countryCode") and cc != g["countryCode"])
    print(f"{prefix:<20} AS{asns:<8} n={len(rows):<3} hosting={hosting} proxy={proxy} "
          f"reg!=geo={mismatch}  isp={rows[0][2].get('isp', '?')}")

用 python3 audit.py exits.txt 运行。样本较大时,在 RIPEstat 调用之间加一点短暂的 sleep。输出通常一眼就能看出问题所在。如果被标记的 IP 集中在一两个前缀里,那是前缀问题;如果均匀分布在整个 ASN 中,问题出在 ASN;如果零散分布在许多干净的前缀中,那就是行为问题:这些 IP 是已知的代理出口。

如何解读厂商之间的分歧

厂商意见不一时,先弄清每家读取的是哪一层,再判断谁“对”。通常一家看的是注册信息,另一家看的是路由或行为。

  • 一家说 “ISP”,另一家说 “hosting”。这是注册与路由之争。检查宣告 ASN:如果是托管公司,网站会采信的是机房结论。
  • 连接类型是住宅,同时带代理标记。这是一个真实的 ISP 地址,但被观测到代理活动。路由层面做什么都改变不了,这是历史问题。
  • 其他都干净,只有一家的欺诈评分偏高。通常是近期滥用记录或严格度设置所致。在放弃这个 IP 之前,先看看该厂商的滥用相关字段。
  • 国家不一致。对比 RIR 国家、geofeed 和厂商的地理定位。各家更新速度不同,刚迁移的地址段可能会在一段时间内出现分歧。

真正重要的是你关心的那个网站用的是哪家厂商,而这一点通常无从得知。所以单凭一家厂商说“干净”,证据并不充分。

信号一览

厂商不会公开各信号的权重。“权重”一列是我们根据其文档以及审查中结论的变化得出的判断。请把它当作参考,而不是规范。

信号说明什么厂商的重视程度你能做什么
宣告 ASN 是托管/内容网络数据中心路由,无论注册信息怎么写非常高除了换 IP 别无他法。问服务商其“住宅”IP 由哪个 ASN 宣告
干净的 ISP ASN 中某个 /24 被标记出租过、改过路由或曾用于托管的地址段高,在前缀级别要求换其他前缀的 IP,把这个 /24 从你的分配中排除
RIR 国家 ≠ 地理定位国家地址段在注册地以外使用,出租的典型特征中到高优先选择在目标国家注册信息与地理定位一致的 IP
机房风格的 WHOIS 组织或 PTR服务器基础设施中(平局时的参考)确认服务商能否控制 rDNS。通用的 ISP PTR 总比没有好
完全没有 PTR几乎说明不了什么低单独出现时可以忽略
观测到代理/VPN 出口活动该 IP 确实在被当作代理使用高,而且在上升对这个 IP 无能为力。轮换,并优先选择共享使用较少的 IP 池
近期滥用举报 / 触发蜜罐最近有人用这个 IP 做了坏事对欺诈评分影响大,随时间衰减轮换。检查举报是否按前缀聚集
采用 CGNAT 的移动运营商 ASN许多真实用户共用这个 IP不一定。每个 IP 背后都有许多真实用户,一刀切封禁会让网站损失真实客户预期滥用历史较杂,但被直接封禁的情况较少

静态、轮换住宅还是移动:审查结果对选型意味着什么

该买哪种产品,取决于你是否需要长期使用同一个 IP,而这也决定了审查有多重要。

  • 静态 / ISP IP。每个 IP 你要用上好几周,所以在下单前就要审查。对提供给你的 IP 运行前缀脚本,拒绝被标记的 /24 和注册信息与地理定位不符的 IP,并问清它们由哪个 ASN 宣告。这是审查收益最大的场景。
  • 轮换住宅。单个 IP 来来去去,审查一个出口说明不了什么。抽样 100 个以上的出口,看 ASN 类型和机房标记的分布。如果一个“住宅”池里很多出口都由机房 ASN 宣告,它就不是住宅池。
  • 移动。运营商 ASN 和 CGNAT 让它们最难被标记为机房,但滥用历史要和同一地址背后的所有真实用户共担。我们的移动代理指南介绍了其中的取舍,住宅、数据中心与移动代理对比则把三者放在一起比较。

这套审查无法告诉你的事

审查能解释厂商为什么给一个 IP 打上某个标签,但无法预测某个具体网站会不会封你。网站会把 IP 信誉与 TLS、HTTP/2、浏览器指纹以及行为结合起来判断。一个干净的住宅 IP,如果配上看起来像数据中心的 TLS 指纹,照样会被挑战。审查也看不到厂商的私有数据,只能看到这些数据所依托的公开层。用它来淘汰坏 IP,并向服务商提出精确的问题,但不要把干净的结果当作保证。

常见问题

为什么我的住宅代理 IP 显示为机房(hosting)?

通常是因为在 BGP 中宣告它的网络属于托管公司,或者这个 /24 在出租或改路由后被重新打了标签。IP 的注册国家与地理定位国家不一致也是常见原因。在 RIPEstat 或 bgp.he.net 上查一下宣告它的 ASN 和前缀,就能知道是哪种情况。

怎么查一个 IP 属于哪个 ASN 和前缀?

调用 RIPEstat 的 network-info 数据接口(https://stat.ripe.net/data/network-info/data.json?resource=IP)可以拿到宣告 ASN 和确切前缀;也可以运行 whois -h whois.cymru.com " -v IP",得到包含注册国家的一行摘要。bgp.he.net 在浏览器里展示同样的信息,还包括上游运营商。

为什么 ip-api、IPinfo、MaxMind 和 IPQualityScore 对同一个 IP 结论不同?

因为它们读取的层不同。有的相信注册信息(ISP),有的看路由(机房 ASN),有的看观测到的行为(代理活动),而欺诈评分还会叠加近期滥用记录和严格度设置。先弄清每个结论来自哪一层,再判断哪个对你的场景更重要。

ISP 代理会被识别为代理吗?

取决于路由方式。由 ISP 自己的网络宣告的 ISP 注册 IP,在各家厂商那里通常都显示为住宅。由托管公司 ASN 宣告的 ISP 注册地址段(往往是出租之后)则容易按前缀逐个被标记为机房,尤其是注册国家与地理定位国家不一致时。

准备好开始了吗?

覆盖 195+ 国家的住宅和移动代理。创建免费账户。

创建免费账户
← 返回博客