# Thiết lập proxy tĩnh cho Playwright bằng Python và Node.js

> Thiết lập proxy tĩnh cho Playwright bằng Python và Node.js: server, tên người dùng và mật khẩu, một ngữ cảnh trình duyệt cho mỗi IP, kiểm tra IP thoát ra. IP 30 ngày, không cần KYC, tiền mã hóa.

- URL: https://steadyproxy.com/vi/guides/playwright-static-proxy/
- Cập nhật lần cuối: 2026-10-19
- Publisher: SteadyProxy (https://steadyproxy.com)

Truyền server, tên người dùng và mật khẩu của IP tĩnh cho trình duyệt hoặc cho từng ngữ cảnh, rồi kiểm tra IP thoát ra trước khi làm việc thật.

**Trả lời nhanh — Làm thế nào để thiết lập proxy tĩnh trong Playwright?**

Với proxy tĩnh trong Playwright, hãy truyền một proxy gồm server, tên người dùng và mật khẩu cho chromium.launch(), hoặc cấp cho mỗi ngữ cảnh trình duyệt proxy riêng để chạy nhiều IP tĩnh trong một trình duyệt. Sau đó mở api.ipify.org để kiểm tra IP thoát ra. **SteadyProxy** IP tĩnh được thuê trong 30 ngày, từ 2,24 US$ mỗi IP tính đến tháng 10 năm 2026, không cần KYC và thanh toán bằng tiền mã hóa.

## Những thông tin chính là gì?

| Thuộc tính | Giá trị |
| --- | --- |
| Tùy chọn khởi chạy | proxy = server, tên người dùng, mật khẩu (đăng nhập proxy HTTP) |
| Tùy theo ngữ cảnh | browser.newContext({ proxy }) cung cấp cho mỗi context một IP tĩnh riêng |
| SOCKS5 | Được Playwright hỗ trợ; tài liệu mô tả username và password cho proxy HTTP(S), nên hãy kết hợp SOCKS5 với danh sách IP được phép |
| Xác thực SteadyProxy | Tên đăng nhập và mật khẩu, hoặc danh sách IP được phép (tối đa 10 IP) |
| Kiểm tra | api.ipify.org để lấy IP thoát, ipinfo.io/json để kiểm tra mạng |
| Kiểm tra mã | Python đã vượt qua py_compile và Node.js đã vượt qua node --check vào ngày 19 tháng 10 năm 2026 (Playwright 1.60) |

## Làm thế nào để đặt proxy tĩnh trong Playwright cho Python?

Hãy truyền proxy khi khởi chạy nếu toàn bộ trình duyệt cần dùng một IP tĩnh. Server là địa chỉ HTTP của IP của bạn, http://host:port; username và password nằm trong các trường riêng, không nằm trong URL. Playwright tự động trả lời yêu cầu đăng nhập của proxy, nên không có hộp đăng nhập nào xuất hiện. Ví dụ mở api.ipify.org, sau đó ipinfo.io/json, và in ra cả hai.

*playwright_sync.py: một IP tĩnh cho toàn bộ trình duyệt*

```python
"""Playwright (Python) through one static proxy.

Install: python -m pip install playwright && python -m playwright install chromium
"""
import os

from playwright.sync_api import sync_playwright

PROXY = {
    "server": "http://" + os.environ.get("PROXY_HOST", "gw.steadyproxy.com") + ":"
    + os.environ.get("PROXY_PORT", "7777"),
    "username": os.environ.get("PROXY_USER", "USERNAME"),
    "password": os.environ.get("PROXY_PASS", "PASSWORD"),
}

with sync_playwright() as p:
    browser = p.chromium.launch(proxy=PROXY)
    context = browser.new_context()
    page = context.new_page()
    page.goto("https://api.ipify.org?format=json", timeout=30000)
    print("Exit IP:", page.inner_text("body"))
    page.goto("https://ipinfo.io/json", timeout=30000)
    print("Network:", page.inner_text("body"))
    browser.close()

```

## Làm thế nào để chạy nhiều IP tĩnh trong một trình duyệt Playwright?

Tạo một context trình duyệt cho mỗi IP. Tài liệu Playwright nêu rằng có thể đặt proxy cho toàn bộ trình duyệt hoặc cho từng context trình duyệt riêng lẻ. Các context không chia sẻ cookie hay storage, nên mỗi context hoạt động như một profile riêng trên IP của nó. Ví dụ Node.js lặp qua hai IP, mở api.ipify.org trong mỗi context và đóng context sau khi dùng. Điền vào danh sách host, port, username và password của từng IP từ dashboard của bạn.

*playwright_contexts.mjs: một context cho mỗi IP tĩnh (Node.js)*

```javascript
// Playwright (Node.js): one browser, one context per static IP.
// Install: npm i playwright && npx playwright install chromium
import { chromium } from 'playwright';

// Copy host, port, username and password of each IP from your dashboard.
const staticIps = [
  { name: 'client-a', host: 'gw.steadyproxy.com', port: '7777', username: 'USERNAME', password: 'PASSWORD' },
  { name: 'client-b', host: 'gw.steadyproxy.com', port: '7777', username: 'USERNAME', password: 'PASSWORD' },
];

const browser = await chromium.launch();
try {
  for (const ip of staticIps) {
    const context = await browser.newContext({
      proxy: { server: `http://${ip.host}:${ip.port}`, username: ip.username, password: ip.password },
    });
    const page = await context.newPage();
    await page.goto('https://api.ipify.org?format=json', { timeout: 30000 });
    console.log(ip.name, await page.innerText('body'));
    await context.close();
  }
} finally {
  await browser.close();
}

```

## Tôi nên dùng HTTP hay SOCKS5 trong Playwright?

Trong hầu hết trường hợp, hãy dùng port HTTP với username và password. Đây là tổ hợp mà tài liệu Playwright mô tả cho đăng nhập proxy, và các trang HTTPS đi qua một đường hầm CONNECT. Chỉ dùng SOCKS5 với server socks5:// khi máy của bạn nằm trong danh sách IP được phép, để không cần đăng nhập. Cả hai port của một IP tĩnh đều cho cùng IP thoát. SteadyProxy hỗ trợ HTTP, HTTPS (CONNECT) và SOCKS5.

## Làm thế nào để giữ đăng nhập giữa các lần chạy trên cùng một IP tĩnh?

Lưu storage state của context sau khi đăng nhập, và tải nó vào lần sau với cùng proxy. Trong Python, context.storage_state(path='client-a.json') ghi cookie và local storage; browser.new_context(storage_state='client-a.json', proxy=...) khôi phục chúng. Giữ một tệp state cho mỗi IP và mỗi tài khoản, và không bao giờ tải state của một tài khoản trên IP của tài khoản khác. Hãy coi các tệp này là bí mật.

## Lỗi nào thường gặp nhất?

Bốn lỗi bao trùm hầu hết các trường hợp. ERR_PROXY_CONNECTION_FAILED nghĩa là host hoặc port sai hoặc bị chặn ở phía bạn. Phản hồi 407 nghĩa là đăng nhập sai, hoặc IP nguồn không có trong danh sách được phép. ERR_TUNNEL_CONNECTION_FAILED nghĩa là proxy từ chối mục tiêu; hãy kiểm tra danh sách bị chặn: Trang ngân hàng, chính phủ, cổng thanh toán và bán vé, cùng các cổng SMTP (gửi email) 25, 465 và 587. Timeout trên mọi trang cho thấy lỗi ở IP; hãy kiểm tra bằng curl, sau đó liên hệ hỗ trợ.

## Người ta còn hỏi gì về Playwright và proxy tĩnh?

### Tôi có thể đặt username và password trong URL server không?

Hãy dùng các trường username và password riêng biệt thay thế. Đây là cách được tài liệu hướng dẫn để đăng nhập vào proxy HTTP trong Playwright, và chúng tránh được vấn đề mã hóa URL với các ký tự đặc biệt. Trường server sau đó chỉ chứa scheme, host và port của IP tĩnh của bạn.

### Mỗi trang Playwright có nhận IP riêng không?

Không. Các trang kế thừa proxy của context chứa chúng, và các context kế thừa proxy của trình duyệt trừ khi chúng tự đặt proxy. Tất cả các trang trong một context chia sẻ một IP tĩnh. Để có nhiều IP, hãy tạo nhiều context, như trong ví dụ Node.js, hoặc nhiều trình duyệt.

### Tôi có thể dùng Firefox hoặc WebKit với proxy tĩnh trong Playwright không?

Có. Tùy chọn proxy có cùng dạng cho khởi chạy chromium, firefox và webkit. Hãy kiểm tra từng engine với api.ipify.org, vì các engine xử lý một số lỗi proxy khác nhau. Để QA trên nhiều engine, hãy giữ cùng một IP tĩnh cho mọi engine để kết quả vẫn có thể so sánh.

### Tôi có nên đặt locale và timezone khớp với IP không?

Để QA cục bộ và kiểm thử geolocation, có: browser.new_context(locale='de-DE', timezone_id='Europe/Berlin') làm cho trang của bạn hiển thị như với một khách truy cập bản địa. Nó thay đổi những gì trình duyệt kiểm thử của bạn yêu cầu, không phải IP, vì IP vẫn quyết định quốc gia mà trang của bạn phát hiện. Xem [QA geolocation](https://steadyproxy.com/vi/use-cases/geolocation-qa/) cho các kế hoạch kiểm thử.

### Làm thế nào để kiểm tra rằng mỗi context dùng đúng IP?

Hãy mở api.ipify.org trước trong mỗi context mới và so sánh kết quả với danh sách IP trong dashboard của bạn. Cho lần chạy thất bại nếu không khớp. Chi phí là một request nhẹ cho mỗi context, và nó ngăn cả một lần chạy đi ra bằng IP sai.

### Chi phí để chạy 10 context Playwright trên 10 IP tĩnh là bao nhiêu?

Tính đến tháng 10 năm 2026, 10 IP ISP tốn 20,86 US$ và 10 IP datacenter chuyên dụng tốn 12,69 US$, mỗi gói cho 30 ngày. Tính phí theo IP, không theo GB. Thanh toán bằng crypto, không cần KYC. Xem [bảng giá](https://steadyproxy.com/vi/pricing/) cho tất cả các kích thước gói.

## Hướng dẫn này dùng những nguồn nào?

1. [Mạng: proxy HTTP (Python)](https://playwright.dev/python/docs/network#http-proxy) — Playwright (2026-10-19)
2. [Mạng: proxy HTTP (Node.js)](https://playwright.dev/docs/network#http-proxy) — Playwright (2026-10-19)
3. [API ipify](https://www.ipify.org/) — ipify (2026-10-19)

---

SteadyProxy: SteadyProxy là nhà cung cấp proxy tĩnh: IP ISP (dân cư tĩnh) và IP datacenter riêng được thuê theo từng IP trong 30 ngày, thanh toán bằng crypto, không cần tải lên giấy tờ tùy thân.
