用户名参数完整参考
全部八个用户名参数的取值范围、顺序约束、依赖关系,以及合法与非法示例的完整清单。
地区、操作系统和会话配置全部拼在用户名里,用 - 分隔。这一篇是权威参考——已公开参数写错会被拒绝;不在白名单里的参数键会被直接忽略。
整体格式
基础用户名-键-值-键-值:密码
例如:
alice-country-US-state-California-city-Los%20Angeles-session-job1-time-30
网关的解析逻辑是:把用户名按 - 拆开,从第二段开始找第一个公开参数键或保留参数键。找到之后,从那一段起的内容全部按键值对解析,只读取公开键并忽略其他键;找不到就把整段当普通用户名。
参数清单
两位大写 ASCII 字母,如 US、DE、JP。
大小写敏感:us 会被拒绝,不会被当成 US。网关只校验"两个大写字母"这个格式,不校验它是否真的存在于 ISO 3166-1 列表里——所以 ZZ 能过校验,但连接时会因为没有对应的可用 IP 而失败。
州 / 省 / 地区名称,解码后 1–100 字节。
和 city 一样是精确、区分大小写匹配,值必须和地理目录里的写法完全一致。
state 的完全等价别名,最终写入同一个字段。
不能和 state 同时使用 —— 两者排序号相同,第二个会被判为乱序并拒绝。
城市名称,解码后 1–100 字节,精确、区分大小写匹配。
城市定位要求同时提供国家和州省。
自治系统号,也就是按运营商定位用的参数——没有单独的 ISP 参数,运营商是用它的 ASN 编号来指定的。
纯数字或带 AS 前缀都可以:64512、AS64512、as64512 等价。去掉前缀后必须是 1 到 4294967295 之间的正整数。原始值最长 20 字节。
控制台的代理生成器里这一项可以按运营商名称搜索,选中后拼进用户名的是编号而不是名称。
指定提供代理 IP 的设备所运行的操作系统,仅接受小写 windows、android、ios、mac(macOS)。选择“不限”表示不限制操作系统,生成器不会在用户名中添加 -os-xxx;手动配置时也无需填写此参数。
例如,os-ios 表示选择 iOS 设备提供的代理 IP。这个选项不会修改你本机的操作系统或浏览器 User-Agent。
仅用于动态住宅的账号密码模式,可单独使用,也可与地区或 ASN 筛选组合。指定操作系统后,仅使用符合所选系统的代理 IP。API 提取暂不支持此参数。
会话标识,解码后 1–64 字节,只允许 ASCII 字母、数字、.、-。
大小写敏感:Job1 和 job1 是两个不同的会话。
必须和 time 同时提供。
会话保持时长,单位分钟,取值 1–120 的十进制整数。原始值最长 3 字节。
必须和 session 同时提供。
顺序是强制的
参数必须严格按这个顺序出现:
country → state/region → city → asn → os → session → time
可以跳过中间的参数,但不能倒序。
# 合法:跳过了 state 和 city
USERNAME-country-US-asn-701-session-a1-time-15
# 非法:city 在 country 前面 → 被拒
USERNAME-city-LA-country-US
两类会被拒绝,一类会被忽略
乱序 —— 任何参数出现在它应有位置之前
重复 —— 同一个键出现两次,包括 state 和 region 同时出现
未知键 —— 直接忽略,不写入路由身份,也不会带到出口。例如 type-residential 和 isp-UCB 都不会生效。没有 co、st、sid 之类的简写,唯一别名是 state = region
type、isp、lifetime 是保留的未开放参数键,即使出现在第一个公开参数之前也会被识别并忽略。其他完全未知的键如果单独紧跟在基础用户名后,仍可能被视为用户名的一部分,以兼容已有的连字符账号。
值的转义规则
参数值先按裸 - 拆分,再对每个值做一次 URL path 解码。所以:
| 你想表达 | 必须写成 | 说明 |
|---|---|---|
| 空格 | %20 | New York → New%20York |
| 连字符 | %2D | Winston-Salem → Winston%2DSalem |
| 百分号 | %25 | 必须是合法的百分号转义 |
允许出现在值里的:内部空格(转义后)、Unicode 字符。
禁止出现的:首尾空白、:、CR、LF、NUL、其他 Unicode 控制字符。
长度按 UTF-8 字节数计算,不是字符数——中文城市名一个字算 3 字节。
长度限制
| 项 | 限制 |
|---|---|
| 完整用户名 | 1–255 字节 |
| 基础用户名(参数前的部分) | 1–64 字节 |
| 密码 | 1–512 字节 |
一个隐蔽的歧义
解析器从第二段开始找第一个已知键。这带来一个边界情况:
alice-pool-admin → 整段当普通用户名(pool 不是已知键)
alice-country-US-pool-y → 读取 country,忽略 pool
如果你的基础用户名里恰好有一段叫 country、city、session 这类词,它会被当成参数键。控制台生成的用户名不会有这个问题,但如果你自己拼用户名要注意。
合法示例
alice-country-US-region-CA-city-LosAngeles-session-abc.1-time-30
alice-country-US-state-New%20York-city-Winston%2DSalem
alice-country-US
alice-asn-AS64512
alice-os-ios
alice-country-US-os-mac-session-job1-time-30
alice-session-job%2D123-time-120
alice-pool-admin
最后一条不是参数形式,而是一个普通的基础用户名。
非法示例
| 写法 | 为什么被拒 |
|---|---|
alice-os-linux | os 只接受 windows、android、ios、mac |
alice-country-us | country 必须大写 |
alice-city-LA-country-US | 乱序 |
alice-country-US-country-CA | 重复 |
alice-country-US-state-CA-region-California | state 和 region 是同一个键 |
alice-session-x | session 缺少 time |
alice-time-30 | time 缺少 session |
alice-session-x-time-0 | time 必须 ≥ 1 |
alice-session-x-time-121 | time 必须 ≤ 120 |
alice-country-US-city-Winston-Salem | 值里的连字符没转义 |
参数依赖与能力约束
除了 session / time 必须成对,使用时还需注意:
- 州省和城市定位取决于该国家是否已开放到对应粒度,城市定位实际要求同时有国家和州省
- 可用的
asn选项以控制台目录为准 - 指定
os后,暂无符合所选系统的可用 IP 时返回错误 asn与州省/城市组合可能不可用,建议分别使用- 会话时长可设置为 1–120 分钟
参数格式正确但没有匹配的可用 IP 时返回 HTTP 503 service_unavailable;格式错误为 400 invalid_proxy_parameters。两者的区别见 错误码对照。
参数写错了返回什么
公开参数格式非法(乱序、重复、取值越界、缺依赖)→ HTTP 400 invalid_proxy_parameters,SOCKS5 在认证子协商阶段返回失败(01 01)。未知参数键会被忽略,不影响这次请求。
HTTP / CONNECT 错误返回 X-NextProxy-Error 与安全 JSON。参数错误的机器码是 invalid_proxy_parameters,不会回显含凭据的原始用户名;按上述规则逐项核对。