# SOCKS5 và HTTP proxy: khác nhau thế nào, nên dùng loại nào

URL: https://cloudj.net/vi/blog/socks5-vs-http-proxy
Published: 2026-11-11 · Updated: 2026-11-11

> So sánh SOCKS5 và HTTP proxy: tầng giao thức, cách HTTPS đi qua CONNECT, nơi phân giải DNS, ứng dụng hỗ trợ, kèm quy tắc chọn đơn giản cho từng công cụ.

Khi đặt mua proxy, gần như lúc nào bạn cũng phải chọn giao thức, và câu hỏi SOCKS5 và HTTP proxy khác nhau ra sao xuất hiện ngay lập tức. Cả hai đều chuyển lưu lượng của bạn qua một địa chỉ IP khác, và với phần lớn công việc trên web thì loại nào cũng dùng được. Khác biệt nằm ở chi tiết: proxy hoạt động ở tầng nào, HTTPS được xử lý ra sao, DNS được phân giải ở đâu, và ứng dụng nào hỗ trợ giao thức nào. Bài viết này giải thích những điểm đó bằng ngôn ngữ dễ hiểu và kết thúc bằng một quy tắc chọn ngắn gọn.

## Trả lời nhanh

- Dùng **HTTP** khi phía client là trình duyệt, phần cài đặt proxy Wi-Fi trên điện thoại, hoặc một thư viện HTTP, và bạn muốn cách cài chạy được gần như ở mọi nơi.
- Dùng **SOCKS5** khi ứng dụng hỗ trợ sẵn giao thức này và lưu lượng không chỉ là web, hoặc khi bạn muốn proxy phân giải tên miền thay cho máy mình.
- Nếu còn phân vân, hãy bắt đầu với HTTP. Trên Cloudj, bạn có thể đổi giao thức của đơn hàng trong console sau này, ở những vị trí có hỗ trợ.

## HTTP proxy hoạt động thế nào

HTTP proxy nói cùng giao thức với máy chủ web. Cách nó xử lý phụ thuộc vào việc địa chỉ đích là HTTP thường hay HTTPS.

### Request HTTP thường

Với URL dạng `http://`, client gửi nguyên request đến proxy, bao gồm cả URL đầy đủ. Proxy đọc request, thay bạn gửi nó đến máy chủ đích rồi trả về phản hồi. Vì proxy nhìn thấy request, về nguyên tắc HTTP proxy có thể đọc header, lọc hoặc cache nội dung. Ngày nay rất ít lưu lượng còn dùng HTTP thường, nên trường hợp này không còn quan trọng như trước.

### HTTPS qua lệnh CONNECT

Với URL dạng `https://`, client gửi một request `CONNECT` kèm tên máy chủ và cổng, ví dụ `CONNECT shop.example.com:443`. Proxy mở kết nối TCP đến đích, sau đó chỉ việc chuyển tiếp dữ liệu theo cả hai chiều. Quá trình bắt tay TLS diễn ra trực tiếp giữa client của bạn và máy chủ đích, nên nội dung được mã hóa từ đầu đến cuối. Proxy biết tên máy chủ và cổng đích, nhưng không thấy trang bạn xem, dữ liệu form hay cookie.

Đó là lý do HTTP proxy hoàn toàn dùng được cho website HTTPS: nó trở thành một đường hầm ngay khi lệnh `CONNECT` thành công.

## SOCKS5 proxy hoạt động thế nào

SOCKS5 nằm thấp hơn một tầng và hoàn toàn không hiểu HTTP. Client chỉ nói với proxy "hãy nối tôi tới máy chủ này, cổng này", proxy mở kết nối, và từ đó chuyển tiếp nguyên dòng dữ liệu. Bên trong là gì (HTTPS, giao thức email, kết nối TCP của một ứng dụng game) cũng đi qua mà không bị thay đổi.

Chuẩn SOCKS5 có định nghĩa cách chuyển tiếp UDP, nhưng mức hỗ trợ khác nhau giữa các nhà cung cấp và ứng dụng. Proxy Cloudj không hỗ trợ UDP, nên bạn hãy tính đến việc chỉ dùng lưu lượng TCP.

SOCKS5 có cơ chế xác thực username và password riêng. Proxy Cloudj mặc định dùng username và password, hoặc whitelist IP tối đa 20 địa chỉ để thay thế cho mật khẩu.

## So sánh SOCKS5 và HTTP proxy

| | HTTP proxy | SOCKS5 proxy |
|---|---|---|
| Tầng hoạt động | Tầng ứng dụng, hiểu HTTP | Tầng phiên, chuyển tiếp mọi luồng TCP |
| Website HTTPS | Qua `CONNECT`, mã hóa đầu cuối | Chuyển tiếp nguyên luồng, mã hóa đầu cuối |
| Ứng dụng TCP không phải web | Chỉ khi ứng dụng dùng được `CONNECT` | Có, nếu ứng dụng hỗ trợ SOCKS5 |
| UDP | Không | Có trong chuẩn; Cloudj không cung cấp |
| Phân giải DNS | Proxy làm (nó nhận tên miền) | Client chọn: tại máy hoặc tại proxy |
| Cài proxy Wi-Fi trên điện thoại | Có trên Android và iPhone | Không có trong cài đặt Wi-Fi mặc định |
| Trình duyệt hỗ trợ đăng nhập bằng mật khẩu | Rộng rãi | Hạn chế ở nhiều trình duyệt |

## DNS: chi tiết hay bị bỏ qua

Với HTTP proxy, client gửi tên miền cho proxy và proxy tự phân giải. Mạng nội bộ của bạn (ví dụ DNS của nhà mạng Viettel hay FPT) không bao giờ phải tra tên miền đích.

Với SOCKS5, client là bên quyết định. Trong `curl`, `socks5://` phân giải tên miền trên máy bạn rồi gửi IP cho proxy, còn `socks5h://` gửi nguyên tên miền để proxy tự phân giải:

```bash
# Phân giải DNS tại máy
curl -x socks5://USER:PASS@HOST:PORT https://ipinfo.io/ip

# Phân giải DNS tại proxy
curl -x socks5h://USER:PASS@HOST:PORT https://ipinfo.io/ip

# HTTP proxy, proxy phân giải DNS
curl -x http://USER:PASS@HOST:PORT https://ipinfo.io/ip
```

Phân giải từ xa quan trọng khi bạn muốn kết quả khớp với quốc gia của proxy, ví dụ một website trả về máy chủ khu vực khác nhau tùy truy vấn DNS đến từ đâu. Các lệnh kiểm tra khác có trong bài [test proxy bằng curl](https://cloudj.net/vi/blog/test-proxy-curl).

## Ứng dụng nào hỗ trợ giao thức nào

### Trình duyệt

Trình duyệt xử lý HTTP proxy có username và password rất tốt. SOCKS5 cũng được hỗ trợ, nhưng nhiều trình duyệt không hiện hộp nhập username và password cho SOCKS5. Nếu muốn dùng SOCKS5 trên trình duyệt, hãy kết hợp với whitelist IP, hoặc chuyển sang HTTP. Bài [cài proxy cho Chrome và Firefox](https://cloudj.net/vi/blog/setup-proxy-chrome-firefox) hướng dẫn cả hai cách.

### Điện thoại

Ô proxy thủ công trong cài đặt Wi-Fi của Android và iPhone là HTTP proxy. Với điện thoại, HTTP là lựa chọn đơn giản nhất; xem bài [cài proxy trên Android và iPhone](https://cloudj.net/vi/blog/setup-proxy-android-iphone).

### Script và tự động hóa

Phần lớn thư viện HTTP nhận HTTP proxy ngay mà không cần cài thêm. Thư viện `requests` của Python cần cài thêm gói để hỗ trợ SOCKS, như mô tả trong [tài liệu của requests](https://requests.readthedocs.io/en/latest/user/advanced/#socks). Playwright và Puppeteer nhận cả hai; bài [dùng proxy với Playwright và Puppeteer](https://cloudj.net/vi/blog/playwright-puppeteer-proxy) có ví dụ, còn bài [scraping bằng Python với proxy](https://cloudj.net/vi/blog/python-scraping-proxy) đi sâu hơn vào `requests`.

### Ứng dụng desktop và trình duyệt antidetect

Nhiều ứng dụng nhắn tin, trình quản lý tải xuống và trình duyệt antidetect hỗ trợ cả hai giao thức. Hãy dùng loại mà tài liệu của công cụ hướng dẫn rõ nhất. Bài [dùng proxy với trình duyệt antidetect](https://cloudj.net/vi/blog/antidetect-browser-proxy) nói về cách thiết lập theo profile.

## Bảo mật: điều cả hai giao thức đều không làm

Bản thân cả hai giao thức đều không mã hóa đoạn kết nối giữa bạn và proxy. Với website HTTPS, nội dung của bạn vẫn được TLS bảo vệ bất kể loại proxy. Tuy nhiên thông tin đăng nhập proxy được gửi đến proxy mà không mã hóa ở cả hai trường hợp. Đây là một lý do nên đổi mật khẩu proxy khi có người rời nhóm (bạn làm được ngay trong console Cloudj), và cân nhắc whitelist IP khi mọi người làm việc từ đường truyền cố định của văn phòng. Nếu bạn cần một đường hầm mã hóa cho toàn bộ lưu lượng của thiết bị, đó là việc của VPN; xem bài [so sánh proxy và VPN](https://cloudj.net/vi/blog/proxy-vs-vpn).

## Giao thức không phải lựa chọn duy nhất

Giao thức quyết định cách lưu lượng đến được proxy. Hai lựa chọn khác quyết định máy chủ đích nhìn thấy gì: loại IP, và IP đó có phải của riêng bạn hay không. Cloudj bán proxy IPv4 riêng (proxy ISP tĩnh) ở bảy quốc gia và proxy ISP dân cư tĩnh ở Mỹ và Việt Nam; bài [proxy datacenter và proxy ISP](https://cloudj.net/vi/blog/datacenter-vs-static-isp-proxy) so sánh các loại IP phổ biến trên thị trường. Bài [proxy riêng và proxy dùng chung](https://cloudj.net/vi/blog/dedicated-vs-shared-proxy) cùng bài [proxy tĩnh và proxy xoay](https://cloudj.net/vi/blog/static-vs-rotating-proxy) bàn về phần còn lại, còn [hướng dẫn tổng quan về proxy riêng](https://cloudj.net/vi/blog/dedicated-proxy-guide) kết nối tất cả lại với nhau.

## Câu hỏi thường gặp

### SOCKS5 có nhanh hơn HTTP không?

Với lưu lượng HTTPS, cả hai rốt cuộc đều chuyển tiếp một luồng dữ liệu đã mã hóa, nên bản thân giao thức hiếm khi là yếu tố quyết định. Vị trí của proxy và ứng dụng của bạn ảnh hưởng nhiều hơn.

### SOCKS5 có ẩn danh hơn không?

Không giao thức nào tự thêm mã hóa. Với HTTPS, máy chủ đích đều thấy IP của proxy như nhau. HTTP proxy khi dùng cho HTTP thường có thể chuyển tiếp các header mà client của bạn tự thêm vào, thêm một lý do nên dùng HTTPS.

### Đặt rồi có đổi giao thức được không?

Được. Trong console Cloudj, bạn có thể chuyển đơn hàng giữa HTTP và SOCKS5 ở những vị trí có hỗ trợ. Sau đó nhớ cập nhật giao thức trong các ứng dụng đang dùng.

### Dùng Telegram hay ứng dụng desktop khác thì chọn gì?

Hãy chọn loại mà ứng dụng hỗ trợ; nhiều ứng dụng desktop hỗ trợ SOCKS5 trực tiếp.

## Dùng thử cả hai trên một đơn hàng

Hãy đặt một proxy riêng trong [console Cloudj](https://app.cloudj.net), bắt đầu với giao thức mà công cụ chính của bạn hỗ trợ, và chuyển sang giao thức kia nếu một công cụ khác cần. Giá mỗi IP có trên [trang proxy](https://cloudj.net/vi/proxy-ipv4).
