SOCKS5 Proxy là giao thức mạng cho phép máy khách gửi các yêu cầu mạng đến máy chủ thông qua một máy chủ trung gian. Việc tạo SOCKS5 SSH có nghĩa là bạn đang tạo ra một tunnel được mã hóa từ máy tính của mình đến server, toàn bộ lưu lượng truy cập từ trình duyệt của bạn sẽ được đóng gói, mã hóa và gửi qua tunnel này. Trong bài viết dưới đây, mình sẽ hướng dẫn bạn tạo SOCKS5 bằng SSH chi tiết, đơn giản nhất.
Những điểm chính
- Định nghĩa SOCKS5 Proxy: Là giao thức mạng hoạt động như máy chủ trung gian, chuyển tiếp gói tin giữa máy khách và máy chủ đích, xử lý nhiều loại lưu lượng truy cập ở Tầng 5 (Session Layer).
- Cơ chế hoạt động: Máy khách kết nối đến proxy SOCKS5, yêu cầu kết nối đến máy chủ đích, proxy thay máy khách tạo kết nối mới, rồi chuyển tiếp dữ liệu hai chiều mà không can thiệp nội dung.
- Định nghĩa SOCKS5 SSH: Là kỹ thuật sử dụng SSH để tạo proxy SOCKS5 trên máy chủ từ xa, tạo đường hầm bảo mật mã hóa giữa máy cá nhân và server SSH, cho phép ứng dụng gửi lưu lượng qua tunnel này ra Internet bằng IP của server.
- Lợi ích: Bảo mật tuyệt đối dữ liệu trên mạng công cộng, truy cập nội dung bị chặn theo địa lý và không tốn thêm chi phí.
- Tạo SOCKS5 Proxy Private bằng SSH: Gồm 2 bước chính là tạo tunnel bằng lệnh SSH và cấu hình trình duyệt để sử dụng tunnel đó.
- Tạo Public SOCKS5 Proxy bằng SSH: SSH vào server, tạo user mới với shell
/sbin/nologin
, chạyssh -D 0.0.0.0:50000 -C -q -N socks@localhost
trongscreen
để listen trên mọi interface. - Kiểm tra hoạt động/Tắt tunnel: Kiểm tra bằng cách xem IP trên whatismyip.com; tắt tunnel bằng cách đóng cửa sổ Terminal hoặc kết thúc tiến trình SSH.
- Câu hỏi thường gặp: Giải đáp những câu hỏi phổ biến liên quan đến việc tạo SOCKS5 bằng SSH.
SOCKS5 Proxy là gì?
Định nghĩa
SOCKS5 (Socket Secure version 5) là một giao thức mạng tiên tiến và linh hoạt, hoạt động như một máy chủ trung gian để chuyển tiếp các gói tin mạng giữa một máy khách và một máy chủ đích. Công nghệ này vận hành ở Tầng 5 (Session Layer) trong mô hình OSI, cho phép xử lý nhiều loại lưu lượng truy cập khác nhau một cách hiệu quả.

Cơ chế hoạt động
Khi một ứng dụng trên máy khách được cấu hình để sử dụng SOCKS5 proxy, thay vì kết nối trực tiếp đến máy chủ đích, ứng dụng đó sẽ thiết lập một kết nối TCP đến máy chủ SOCKS5 proxy trước. Sau đó, máy khách sẽ gửi yêu cầu cho proxy, chỉ định địa chỉ IP và cổng của máy chủ đích muốn kết nối.
Máy chủ SOCKS5 sẽ thay máy khách tạo một kết nối mới đến máy chủ đích. Một khi kết nối được thiết lập thành công, SOCKS5 proxy sẽ hoạt động như một cầu nối, chuyển tiếp toàn bộ dữ liệu qua lại giữa máy khách và máy chủ đích mà không cần diễn giải hay can thiệp vào nội dung của dữ liệu.

SOCKS5 SSH là gì?
SOCKS5 SSH là hình thức sử dụng giao thức SSH để tạo một proxy SOCKS5 trên máy chủ từ xa. Nói đơn giản, SOCKS5 SSH là kỹ thuật thiết lập một đường hầm bảo mật giữa máy tính cá nhân và máy chủ SSH. Khi kích hoạt, mọi ứng dụng (Như trình duyệt web, app chat, phần mềm tải file,…) cài đặt trỏ vào proxy SOCKS5 này sẽ gửi lưu lượng mạng đi từ máy cá nhân, qua kết nối SSH mã hóa, rồi mới ra Internet thông qua máy chủ SSH.

Lợi ích khi sử dụng SOCKS5 Proxy qua SSH
- Bảo mật tuyệt đối trên mạng công cộng: Toàn bộ dữ liệu giữa bạn và server sẽ được mã hóa bằng SSH nên các kẻ tấn công sẽ không thể theo dõi hoạt động của bạn.
- Truy cập nội dung bị chặn do yếu tố địa lý: Nếu server của bạn đặt tại Mỹ, bạn có thể truy cập các dịch vụ chỉ dành cho người dùng tại Mỹ. IP public của bạn lúc này chính là IP của server.
- Không tốn thêm chi phí: Nếu đã có sẵn VPS/Server, bạn không cần phải trả tiền cho các dịch vụ VPN hay proxy của bên thứ ba.

Hướng dẫn cách tạo SOCKS5 Proxy Private bằng SSH
Quá trình tạo SOCKS5 Proxy Private bằng SSH gồm 2 bước chính, đó là tạo tunnel bằng lệnh SSH và cấu hình trình duyệt để sử dụng tunnel đó.
Bước 1: Tạo tunnel SSH
Đầu tiên, bạn mở Terminal trên máy tính của mình (macOS, Linux) hoặc một SSH client như PuTTY/Git Bash (Windows) và chạy dòng lệnh sau:
$ ssh -D 127.0.0.1:50000 -q -C -N user@server_ip
Sau đây, mình sẽ phân tích chi tiết lệnh này:
ssh
: Lệnh để khởi tạo kết nối SSH.-D 127.0.0.1:50000
: Tùy chọn này có nhiệm vụ bật tính năng Dynamic Port Forwarding, yêu cầu SSH mở một cổng trên máy local của bạn (Ở đây là trên IP127.0.0.1
port50000
) và hoạt động như một SOCKS proxy. Bạn có thể thay50000
bằng một số cổng khác chưa được sử dụng (Ví dụ:9999
,1337
).-q
: Quite mode-C
: Nén dữ liệu, tăng tốc độ-N
: Không thực thi lệnh, chỉ làm nhiệm vụ port forwardinguser@server_ip
: Là thông tin đăng nhập vào server của bạn (User là tên người dùng, server_ip là địa chỉ IP hoặc domain của server).
Sau khi chạy lệnh, bạn sẽ được yêu cầu nhập mật khẩu hoặc passphrase nếu dùng SSH key, hãy để cửa sổ Terminal đó chạy, tunnel của bạn đang hoạt động.
Kinh nghiệm:
$ ssh -f -N -D 8080 user@server_ip
Bước 2: Cấu hình trình duyệt sử dụng Proxy

Bước này hướng lưu lượng truy cập của trình duyệt vào tunnel bạn vừa tạo. Mình sẽ lấy Firefox làm ví dụ vì Firefox cho phép cấu hình proxy riêng biệt rất dễ dàng:
- Đầu tiên, bạn mở Firefox rồi vào Settings (Cài đặt).
- Bạn cuộn xuống dưới cùng, tìm mục Network Settings (Cài đặt mạng) và nhấp vào nút Settings….
- Trong cửa sổ hiện ra, bạn chọn Manual proxy configuration (Cấu hình proxy thủ công).
- Bạn điền các thông tin sau:
- SOCKS Host:
127.0.0.1
(Hoặclocalhost
) - Port:
50000
(Hoặc cổng bạn đã chọn ở Bước 1) - Bạn chọn phiên bản SOCKS v5.
- SOCKS Host:
- Bạn chọn vào ô Proxy DNS when using SOCKS v5 để ngăn chặn rò rỉ DNS, đảm bảo cả yêu cầu phân giải tên miền cũng được gửi qua tunnel.
- Cuối cùng, bạn nhấn OK để lưu lại.
Bây giờ, bạn hãy mở một tab mới trên Firefox và truy cập vào một website kiểm tra IP như https://www.whatismyip.com/ hoặc https://ifconfig.me/. Bạn sẽ thấy địa chỉ IP hiển thị chính là địa chỉ IP của server bạn, không phải IP của mạng bạn đang kết nối.
Lưu ý:
– Đối với Chrome, Edge hoặc các trình duyệt khác, bạn có thể cần dùng đến các tiện ích mở rộng (Extension) như Proxy SwitchyOmega để quản lý và chuyển đổi proxy một cách thuận tiện.
Với các client khác, tùy theo client có hỗ trợ chạy qua SOCKS5 hay không thì bạn mới có thể sử dụng được. Ví dụ với curl:

Lúc này, mọi dữ liệu khi gửi đến server đều được mã hóa bằng SSH, giúp bảo vệ dữ liệu khi bạn sử dụng public wifi khỏi nguy cơ bị logging hoặc sniffing.
Cách tạo public SOCKS5 Proxy bằng SSH
Nếu muốn tạo public SOCKS5 bằng SSH để nhiều người cùng kết nối, bạn thực hiện theo thao tác sau:
- Đầu tiên, bạn dùng SSH để đăng nhập vào server mà mình muốn làm socks.
- Tiếp theo, bạn tạo một user mới để chạy socks, set password và set login shell là
/sbin/nologin
(Vì chỉ cần chạy port forwarding). - Bạn dùng lệnh screen để tạo một phiên làm việc độc lập, sau đó chạy lệnh SSH ngay trên server để đăng nhập vào chính server đó với tài khoản mới tạo.
- Cuối cùng, bạn chạy lệnh:
$ ssh -D 0.0.0.0:50000 -C -q -N socks@localhost
Giải thích:
-D 0.0.0.0:50000
: Chỉ định socks server sẽ listen trên all interface (Toàn bộ IP – có thể thay0.0.0.0
thành IP public server của bạn)-C
: Nén dữ liệu tăng tốc độ-q
: Quite mode-N
: Không thực thi lệnh, chỉ làm nhiệm vụ port forwardingsocks@localhost
: Kết nối vào chính server hiện tại
Lúc này, trên server sẽ có 1 socket listen trên 0.0.0.0:50000
, đây chính là socks server của bạn và có thể dùng Socks client kết nối đến để sử dụng

Lưu ý
– Dữ liệu từ client gửi lên socks server sẽ không được mã hóa, vì quá trình mã hóa chỉ xảy ra giữa socket cục bộ và chính máy chủ socks server đó thông qua SSH tunnel. Việc bảo mật nội dung dữ liệu truyền đi sẽ phụ thuộc vào ứng dụng bạn đang sử dụng, không phải mặc định do socks server xử lý.
Câu hỏi thường gặp
Sử dụng SOCKS5 qua SSH có an toàn không?
Câu trả lời là Có, vì dữ liệu giữa client và server hoàn toàn được mã hóa qua SSH, ngăn chặn nguy cơ nghe lén hoặc đánh cắp thông tin cá nhân trên môi trường WiFi công cộng.
Làm sao kiểm tra SOCKS5 Proxy đã hoạt động?
Sau khi thiết lập xong, bạn truy cập website kiểm tra IP như whatismyip.com. Nếu IP xuất hiện không phải mạng nhà bạn mà là IP server, nghĩa là proxy đang hoạt động chính xác.
Làm sao để tắt SOCKS5 Tunnel?
Bạn chỉ cần đóng cửa sổ Terminal hoặc kết thúc tiến trình SSH đã tạo proxy là xong.
Kết luận
SOCKS5 SSH chính là giải pháp kết hợp ưu việt giữa giao thức proxy linh hoạt SOCKS5 và công nghệ mã hóa bảo mật của SSH. Việc tạo một SOCKS5 Proxy qua SSH không những giúp bạn ẩn danh khi truy cập Internet, mà còn đảm bảo toàn bộ luồng dữ liệu được bảo vệ trước nguy cơ xâm phạm quyền riêng tư hoặc đánh cắp thông tin cá nhân trên môi trường mạng công cộng.