# Cổng proxy

> URL: https://foura.ai/vi/docs/api/proxy-port
> Updated: 2026-10-15
> Index: https://foura.ai/llms.txt

Gửi lưu lượng của bạn qua các điểm exit của FourA từ bất kỳ client nào chấp nhận proxy URL: trình duyệt, công cụ tải xuống, hoặc scraper bạn đang chạy. Cổng proxy mở một tunnel đến đích bạn chỉ định và sao chép byte theo cả hai chiều, do đó cổng này xử lý được những dữ liệu mà JSON API không hỗ trợ: stream, file tải xuống dung lượng lớn, và toàn bộ phiên trình duyệt.

## Connecting

| Setting | Value |
|---------|-------|
| Host | `proxy.foura.ai` |
| Port | `34004` |
| Protocol | HTTP CONNECT with Basic authentication |
| Target ports | `443` and `80` |

Thông tin xác thực được lấy từ dashboard. Tạo một proxy user trong mục **Proxy** ở thanh bên để nhận username và password được tạo tự động. Các thông tin này được tách biệt có chủ đích khỏi API key của bạn: quá trình bắt tay proxy truyền dưới dạng văn bản rõ trên mỗi kết nối, và proxy user có thể được xoay vòng mà không ảnh hưởng đến tích hợp API của bạn. Xem [Proxy Users](https://foura.ai/docs/dashboard/proxy).

```bash
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 https://example.com
```

```python
import requests

proxy = "http://USERNAME:PASSWORD@proxy.foura.ai:34004"
r = requests.get("https://example.com", proxies={"https": proxy, "http": proxy})
print(r.status_code)
```

Cổng này chỉ hỗ trợ CONNECT. Mọi client đều tạo tunnel cho đích `https://`. Đích `http://` thuần vẫn hoạt động khi client của bạn cũng tạo tunnel cho nó (curl: `--proxytunnel`); client nào chuyển tiếp trực tiếp request thuần đến proxy sẽ nhận mã `405 Method Not Allowed`.

## Các tùy chọn nằm trong Username

Mọi thông tin phía sau thông tin xác thực là một danh sách các cặp `-key-value`, theo thứ tự bất kỳ:

```
USERNAME-network-premium-country-de-session-a1
```

Các giá trị là những từ viết thường. Dấu gạch ngang bên trong một giá trị sẽ bắt đầu một tùy chọn mới, vì vậy `-city-new-york` được hiểu là hai tùy chọn và bị từ chối. Một khóa không xác định cũng bị từ chối, không bao giờ bị bỏ qua: viết sai chính tả `-contry-de` sẽ trả về lỗi 400 kèm danh sách các khóa được hỗ trợ, thay vì phân phát từ sai quốc gia.

| Tùy chọn | Giá trị | Chức năng |
|--------|--------|--------------|
| `network` | `shared` (mặc định, bí danh `pool`), `premium` (bí danh `residential`) | Địa chỉ đến từ mạng nào. Shared là các cổng exit riêng của FourA, bao gồm trong gói của bạn. Premium là địa chỉ dân cư, lấy từ lưu lượng premium trong gói cộng với lượng bạn đã mua thêm. |
| `fallback` | `premium` (bí danh `residential`), `off` | Chỉ áp dụng cho mạng shared. Sử dụng cổng exit premium khi mạng shared không thể thực hiện request. Tắt trừ khi được yêu cầu, và chỉ kích hoạt khi gói của bạn bao gồm lưu lượng premium và hạn mức vẫn còn. |
| `country` | ISO 3166-1 alpha-2, có thể lặp lại | Quốc gia exit mà máy chủ đích nhìn thấy. Lặp lại tùy chọn này cho phạm vi nhiều quốc gia: `-country-de-country-fr`. |
| `session` | 1 đến 32 chữ cái, chữ số, hoặc dấu gạch dưới | Các kết nối dùng chung tên sẽ dùng chung địa chỉ (sticky). Bỏ qua tùy chọn này để có một địa chỉ mới cho mỗi kết nối (rotating). |
| `state` | một từ | Khu vực. Chỉ dành cho premium. |
| `city` | một từ | Thành phố. Chỉ dành cho premium. |
| `asn` | một số | Mạng, theo số AS. Chỉ dành cho premium. |
| `os` | `windows`, `android`, `ios`, `mac` | Loại thiết bị mà địa chỉ trực thuộc. Chỉ dành cho premium. |
| `lifetime` | `3` đến `1440` | Số phút giữ một địa chỉ premium sticky. Chỉ dành cho premium. |

Mọi tùy chọn ngoại trừ `network`, `fallback`, và `session` đều chấp nhận `any`, giúp xóa giá trị đã lưu trên proxy user cho riêng kết nối này.

Ba trường hợp kết hợp sau sẽ bị từ chối bằng lỗi 400 thay vì xử lý một phần:

- `state`, `city`, `asn`, `os`, hoặc `lifetime` trên mạng shared. Mạng shared chỉ được chọn theo quốc gia và không thể chi tiết hơn; thêm `-network-premium` để nhắm mục tiêu theo thành phố.
- `-fallback-premium` đi cùng với `-network-premium`. Cơ chế fallback không có tác dụng trên chính mạng mà nó dự phòng chuyển sang.
- Định tuyến chi tiết hơn khi đang bật fallback. Fallback có thể kích hoạt hoặc không, do đó việc chỉ định một thành phố mà hệ thống chỉ đôi khi đáp ứng được sẽ bị từ chối.

### Sessions

Trên mạng shared, một session có tên sẽ giữ nguyên cổng exit chừng nào bạn còn tiếp tục sử dụng nó, theo khung thời gian trượt mười phút. Nếu cổng exit đó ngừng hoạt động, session sẽ chuyển sang cổng khác thay vì báo lỗi. Trình duyệt được điều khiển qua cổng proxy phải luôn đi kèm tên session: một lượt tải trang mở ra hàng chục kết nối, và nếu không có session thì mỗi kết nối sẽ đi từ một địa chỉ khác nhau.

Trên mạng premium, một session có tên sẽ giữ địa chỉ của nó trong `lifetime` phút, hoặc theo mặc định của mạng khi bạn không thiết lập.

### Giá trị mặc định đã lưu

Cấu hình targeting đã lưu trên proxy user trong dashboard sẽ áp dụng cho mọi kết nối tạo qua user đó, giúp username luôn ngắn gọn. Bất kỳ giá trị nào bạn đặt trong username sẽ được ưu tiên cho riêng kết nối đó, và `any` sẽ hủy bỏ giá trị đã lưu. Giá trị mặc định premium đã lưu chỉ tiêu tốn tài nguyên khi gói của bạn cho phép; nếu không, kết nối sẽ được phân phối từ mạng chia sẻ và tunnel vẫn mở bình thường.

### CONNECT headers

Client có khả năng thêm header vào CONNECT request có thể gửi các tùy chọn tương tự dưới dạng header. Header sẽ được ưu tiên hơn tùy chọn cùng loại trong username.

| Header | Tương đương với |
|--------|---------|
| `X-Foura-Network` | `-network-` |
| `X-Foura-Fallback` | `-fallback-` (`premium` hoặc `off`) |
| `X-Foura-Country` | `-country-`, phân tách bằng dấu phẩy nếu có nhiều giá trị |
| `X-Foura-Session` | `-session-` |
| `X-Foura-State` | `-state-` |
| `X-Foura-City` | `-city-` |
| `X-Foura-Asn` | `-asn-` |
| `X-Foura-Lifetime` | `-lifetime-` |

```bash
curl -x http://USERNAME:PASSWORD@proxy.foura.ai:34004 \
  --proxy-header "X-Foura-Country: de" \
  https://example.com
```

## Responses

Một tunnel mở thành công sẽ trả về `200 Connection established`. Mọi trường hợp từ chối sau khi xác thực thông tin đăng nhập đều chứa header `X-Foura-Error` kèm lý do trên một dòng, hãy kiểm tra header này trước tiên.

| Status | When |
|--------|------|
| 400 Bad Request | Request sai định dạng, hoặc một tùy chọn mà FourA không hỗ trợ. `X-Foura-Error` nêu rõ tùy chọn và các giá trị được hỗ trợ. |
| 403 Forbidden | Port đích không được hỗ trợ, máy chủ đích không phải là host internet công khai, port không có trong gói của bạn, hoặc bạn yêu cầu `-network-premium` nhưng gói của bạn đã hết dung lượng premium hoặc không bao gồm mạng premium. |
| 405 Method Not Allowed | Request thông thường thay vì CONNECT. |
| 407 Proxy Authentication Required | Thiếu hoặc sai thông tin xác thực. Phản hồi không bao giờ chỉ rõ phần nào bị sai. |
| 408 Request Timeout | Client đã kết nối nhưng không gửi dữ liệu trong 15 giây. |
| 431 Request Header Fields Too Large | Các header của CONNECT request vượt quá 16 KB. |
| 429 Too Many Requests | Vượt giới hạn gói của bạn: số tunnel mở đồng thời, số lượt mở tunnel mỗi phút, hoặc dung lượng standard cho chu kỳ thanh toán này. Cũng xảy ra khi chính port đạt giới hạn dung lượng hoặc tốc độ mở kết nối. `X-Foura-Error` sẽ chỉ rõ trường hợp cụ thể. |
| 502 Bad Gateway | Không tìm thấy exit node hoạt động cho mục tiêu đó trong giới hạn thời gian chọn, hoặc resolver của FourA không thể phân giải host. Hai trường hợp này có thông báo khác nhau trong `X-Foura-Error`. |
| 503 Service Unavailable | Proxy port đã bị tắt. |

## Limits

- Số tunnel mở đồng thời và số lượt mở tunnel mỗi phút được quy định theo gói của bạn, tính trên toàn bộ tài khoản chứ không theo từng proxy user: việc cấp thông tin xác thực thứ hai không làm tăng thêm hạn mức. Xem thông số của bạn tại [Usage & Limits](https://foura.ai/docs/dashboard/quota).
- Việc tìm kiếm exit node mất tối đa 45 giây trước khi port hủy với mã 502. Phiên đã có sẵn exit node thường kết nối trong chưa đầy một giây.
- Tunnel không có byte truyền nhận nào theo cả hai chiều sẽ bị đóng sau hai phút không hoạt động.
- Khi port được cập nhật, các tunnel đang mở có tối đa chưa đầy ba phút để hoàn tất trước khi bị đóng, trong khi các kết nối mới vẫn tiếp tục được mở. Quá trình tải xuống hoặc stream dung lượng lớn nên tự kết nối lại khi tunnel bị đóng.
- Proxy user mà bạn vô hiệu hóa hoặc xóa trong dashboard sẽ dừng xác thực trong vòng một phút.

## Metering

Lượng byte qua port được tính vào băng thông trên trang [Usage & Limits](https://foura.ai/docs/dashboard/quota) của bạn, và lượng byte qua exit node premium cũng được tính vào lưu lượng premium: cùng một lượng byte, được báo cáo hai lần, không cộng dồn vào nhau. Khi một tunnel mở, lưu lượng từ các exit node premium mà port đã thử nhưng không dùng cũng được tính là lưu lượng premium. Các lần thử mạng chia sẻ không sử dụng sẽ không bị tính, và không có gì bị tính nếu không có tunnel nào được mở.

Lưu lượng tiêu chuẩn mà port có thể sử dụng phụ thuộc vào gói của bạn. Với gói tính theo credit, port có sẵn dung lượng gigabyte đi kèm và trang Billing có bán thêm dung lượng này; với gói tính theo lưu lượng, port dùng chung hạn mức với API. Khi hết hạn mức, các kết nối mới sẽ bị từ chối cho đến khi chu kỳ được đặt lại hoặc bạn mua thêm, và email thông báo sử dụng sẽ cho biết thời điểm cụ thể.

Khi hạn mức premium đã dùng hết, ba cách truy cập vào mạng đó sẽ được xử lý khác nhau theo chủ đích. Kết nối chỉ định `-network-premium` sẽ bị từ chối kèm lỗi 403 nêu rõ nguyên nhân, vì bên gọi yêu cầu tính phí mà lại được âm thầm phân phối từ nguồn khác thì sẽ tiếp tục gửi yêu cầu và đối soát một dòng chi phí premium không hề xuất hiện. Phương án dự phòng (fallback) không được áp dụng, và cấu hình mặc định premium lưu trên proxy user sẽ bị hạ cấp xuống mạng dùng chung (vẫn mở tunnel bình thường): cả hai trường hợp này đều không chủ động chọn chi tiêu cho kết nối hiện tại.

## Liên quan

- [Proxy Users](https://foura.ai/docs/dashboard/proxy): Tạo proxy user và tạo chuỗi kết nối trong dashboard
- [Proxy Request](https://foura.ai/docs/api/endpoints#proxy-request): Giải pháp thay thế qua JSON API, tích hợp sẵn cơ chế thử lại và kiểm tra tính hợp lệ
- [Reuse a Proxy Across Requests](https://foura.ai/docs/how-to/reuse-a-proxy): Duy trì một điểm ra duy nhất trên JSON API
- [Usage & Limits](https://foura.ai/docs/dashboard/quota): Băng thông và lưu lượng premium theo gói của bạn
