# 把对出口的所有要求写进用户名。

国家/地区、美国州、城市、运营商、会话标识和有效期。两个共享网关均支持这六个参数，顺序不限。


## 语法

先写用户名，再追加 `-key-value` 对。键和值均使用小写；顺序不限；密码保持不变。完全不带参数时，系统会从任意国家/地区选择出口，并在每次连接时更换。

```text
USER-cc-us-state-tx-city-austin-sid-a1b2c3-ttl-30m:PASS
│    │     │        │           │          │
│    │     │        │           │          └─ 保持 30 分钟
│    │     │        │           └─ 会话 ID：相同 ID 使用相同 IP
│    │     │        └─ 城市（仅限字母和数字）
│    │     └─ 美国州（仅适用于美国）
│    └─ 国家/地区，ISO 3166-1 alpha-2
└─ 你的用户名
```


## 参数

| 参数 | 值 | 含义 |
| --- | --- | --- |
| -cc- | 两位国家/地区代码：`us`、`de`、`br`、`jp` | 从该国家/地区出口。住宅网络覆盖 199 个国家/地区；移动网络代理池覆盖结账页面列出的国家/地区。 |
| -state- | 美国州代码：`tx`、`ca`、`ny` | 从该州出口。必须搭配 `-cc-us`；其他国家/地区不可用。 |
| -city- | 城市名称，使用小写且仅含字母和数字：`newyork`、`berlin`、`saopaulo` | 从该城市出口。必须搭配 `-cc-`。每个[国家/地区页面](https://proxshift.com/zh/locations)均以准确参数值列出可用城市。 |
| -asn- | 自治系统编号，不带 `AS` 前缀：`7922`、`3320` | 从该运营商宣告的网络出口。与 `-cc-` 搭配使用。在移动网络代理池中，可通过此参数选择运营商。 |
| -sid- | 字母和数字，最多 32 个字符：`a1b2c3`、`job42` | 粘性会话。携带相同 ID 的请求会共用同一出口，直到有效期结束或设备离线。使用新 ID 即会获得新 IP。 |
| -ttl- | 分钟或小时，范围从 `1m` 到 `24h`：`10m`、`2h` | 粘性会话的有效期，从首次请求开始计算。使用 `-sid-` 但未提供 `-ttl-` 时，默认为 `10m`。 |


## 轮换与会话

不使用 `-sid-` 时，网关会为收到的**每个新连接**选择新出口。客户端若保持连接，或通过同一个 `CONNECT` 隧道发送多个请求，会在该连接的整个存续期间使用同一出口。若要每个请求都轮换，请禁用连接保持，或在每次调用后关闭连接；若要让多个连接使用同一 IP，请使用会话 ID。

- 任意数量的并行连接只要使用相同的 `-sid-` 值，就会使用相同的 IP。可按需同时运行任意数量的会话，没有上限。
- 有效期结束或住宅设备断线后，下一个使用该 ID 的请求会获得一个仍符合其他参数的**新** IP。设计流程时应考虑这一点：任何住宅网络都可能在流程中途更换 IP。
- 若要立即强制更换，请修改 ID。ID 的作用域限定在你的账户内，且不产生费用。
- 住宅和移动网络代理池均支持粘性会话。独享 ISP、数据中心和移动设备代理均使用一个固定 IP，并忽略 `-sid-` 和 `-ttl-`。


## 示例

| 需求 | 用户名 |
| --- | --- |
| 每次连接都从任意国家/地区获取新 IP | USER |
| 每次连接都获取新的美国 IP | USER-cc-us |
| 一个得克萨斯州住宅出口 | USER-cc-us-state-tx |
| 任意柏林 IP | USER-cc-de-city-berlin |
| 一个保持十分钟的柏林 IP | USER-cc-de-city-berlin-sid-7f3a9 |
| 一个保持两小时的日本 IP | USER-cc-jp-sid-tokyo1-ttl-2h |
| 一个 Comcast 用户 (AS7922) | USER-cc-us-asn-7922 |
| 德国电信移动网络用户，保持 15 分钟 | USER-cc-de-asn-3320-sid-m1-ttl-15m |
| 二十个并行的巴西会话 | USER-cc-br-sid-w01 … USER-cc-br-sid-w20 |


## 城市名称

城市值采用小写 ASCII 城市名称，并移除空格、连字符、撇号和重音符号：`New York` 变为 `newyork`，`São Paulo` 变为 `saopaulo`，`Düsseldorf` 变为 `dusseldorf`，`Frankfurt am Main` 列为 `frankfurt`。请使用国家/地区页面显示的值，不要猜测；网关会精确匹配该字符串。


## 无法满足参数时会怎样

| 情形 | 响应 | 处理方法 |
| --- | --- | --- |
| 未知键或值格式错误（`-country-us`、`-ttl-90x`） | `400 Bad Request` | 修正字符串；响应正文会指出相关参数。 |
| 使用 `-city-` 或 `-state-` 但未提供 `-cc-`，或在美国以外使用 `-state-` | `400 Bad Request` | 添加 `-cc-us`，或移除该参数。 |
| 当前没有符合参数组合的在线出口（例如小城市加特定 ASN） | `502 Bad Gateway` | 重试，然后放宽条件：先移除 `-asn-`，再移除 `-city-`。 |
| 向独享地址发送参数 | 已忽略 | 无需处理；IP 是固定的。 |

> Tip：先使用宽泛条件，再逐步缩小范围。国家/地区级定位的代理池最充足，成功率也最高；仅在任务需要时添加城市和 ASN，并在流程允许的范围内尽量缩短粘性会话有效期。


来源：https://proxshift.com/zh/docs/username-parameters
