Bạn đã bao giờ cần buộc một chương trình sử dụng proxy, nhưng chương trình đó không hỗ trợ cài đặt proxy? Có thể bạn đang chạy một công cụ dòng lệnh không có tùy chọn proxy tích hợp, hoặc bạn muốn định tuyến lưu lượng qua nhiều proxy để tăng cường ẩn danh. Đó là lúc ProxyChains ra tay.
ProxyChains là gì?
ProxyChains là một công cụ UNIX mạnh mẽ, buộc mọi kết nối mạng của một chương trình phải đi qua một hoặc nhiều máy chủ proxy, ngay cả khi chương trình đó không hỗ trợ proxy nguyên bản.
Nó hoạt động bằng cách hook các lệnh gọi thư viện liên quan đến mạng trong các chương trình được liên kết động (thông qua LD_PRELOAD), chuyển hướng các kết nối đó qua các proxy như http, socks4 hoặc socks5.
ProxyChains hỗ trợ Linux, BSD, macOS và Haiku. Hoàn toàn miễn phí và mã nguồn mở.
ProxyChains thực sự làm gì?
Hãy nghĩ về ProxyChains như một công cụ xây dựng đường hầm cho lưu lượng mạng của bạn. Khi bạn chạy một chương trình với proxychains ở phía trước lệnh, các kết nối mạng của nó sẽ tự động được chuyển hướng qua các proxy bạn đã định nghĩa.
ProxyChains hoạt động bằng cách hook các lệnh gọi thư viện mạng trong các chương trình liên kết động thông qua LD_PRELOAD, chặn các kết nối trước khi chúng đến mạng.
Lưu ý rằng cách tiếp cận này chỉ hoạt động với các chương trình liên kết động. Các chương trình như script, chương trình sử dụng dlopen() để tải module, và chương trình sinh nhiều tiến trình nền có thể không hoạt động đáng tin cậy.
Các trường hợp sử dụng phổ biến:
- Ẩn địa chỉ IP thực khi kết nối đến trang web
- Xâu chuỗi nhiều proxy để tăng cường ẩn danh (ví dụ: Tor → SOCKS5 → HTTP)
- Vượt tường lửa hoặc hạn chế địa lý
- Sử dụng các công cụ mạng như
nmaphoặccurlmà không có hỗ trợ proxy tích hợp - Kiểm tra cách ứng dụng hoạt động đằng sau proxy
Đối với kiểm tra thâm nhập và trinh sát, thứ tự khuyến nghị là: VPN → ProxyChains → Mục tiêu. Bằng cách này, ISP của bạn chỉ thấy lưu lượng mã hóa đến VPN, nhà cung cấp VPN thấy kết nối đến proxy thay vì mục tiêu cuối cùng, và mục tiêu chỉ thấy proxy cuối cùng trong chuỗi.
Lưu ý quan trọng: ProxyChains không mã hóa lưu lượng của bạn và chỉ định tuyến kết nối TCP. UDP và ICMP không được hỗ trợ bất kể loại proxy bạn cấu hình. Quyền riêng tư của bạn phụ thuộc hoàn toàn vào các proxy bạn sử dụng và liệu chúng có hỗ trợ mã hóa hay không (như Tor hoặc SOCKS5 qua TLS). ProxyChains chỉ ẩn địa chỉ IP của bạn khỏi đích đến. Để có quyền riêng tư mạnh mẽ, hãy kết hợp nó với VPN hoặc Tor.
Cài đặt ProxyChains trên Linux
ProxyChains có sẵn trong hầu hết các kho lưu trữ của bản phân phối Linux.
Trên Arch Linux và Manjaro:
sudo pacman -S proxychains-ng tor
Trên Debian, Ubuntu và Pop!_OS:
sudo apt update
sudo apt install proxychains4 tor -y
Trên Kali Linux, ProxyChains đã được cài đặt sẵn, nhưng bạn có thể muốn cập nhật lên phiên bản mới nhất.
Trên Red Hat, Fedora, AlmaLinux và Rocky Linux:
Đối với các bản phân phối sử dụng dnf hoặc yum:
sudo dnf install proxychains-ng tor
Nếu bạn cần biên dịch từ mã nguồn, hãy clone kho lưu trữ:
git clone https://github.com/rofl0r/proxychains-ng
cd proxychains-ng
./configure --prefix=/usr --sysconfdir=/etc
make -j $(nproc)
sudo make install
sudo make install-config
Thao tác này cài đặt tệp cấu hình tại /etc/proxychains.conf. Bạn cũng cần cài đặt Tor, vì cấu hình mặc định sử dụng proxy Tor cục bộ.
Khởi động dịch vụ Tor
Trước khi cấu hình bất cứ điều gì, hãy khởi động dịch vụ Tor. Tor cung cấp proxy SOCKS trên 127.0.0.1:9050 theo mặc định.
sudo systemctl start tor
sudo systemctl enable tor # Starts Tor automatically at boot
Kiểm tra xem nó có chạy đúng không:
sudo systemctl status tor
Bạn sẽ thấy "active (running)" trong đầu ra.
Cấu hình ProxyChains
Bây giờ đến phần quan trọng. Tệp cấu hình chính thường nằm tại /etc/proxychains4.conf trên Debian/Ubuntu/Kali (cài đặt qua gói proxychains4) hoặc /etc/proxychains.conf trên các bản build từ mã nguồn và một số bản phân phối khác.
Mở nó bằng trình soạn thảo văn bản yêu thích của bạn:
sudo nano /etc/proxychains4.conf
Bước 1: Chọn loại chuỗi
Tìm phần chain type ở đầu tệp. Bạn sẽ thấy một số tùy chọn, mỗi tùy chọn có hành vi cụ thể:
#dynamic_chain
#strict_chain
#round_robin_chain
#random_chain
Chọn loại phù hợp với nhu cầu của bạn:
- dynamic_chain (khuyến nghị cho người mới bắt đầu): Sử dụng proxy theo thứ tự đã liệt kê nhưng bỏ qua các proxy chết. Miễn là có ít nhất một proxy hoạt động, chuỗi hoạt động bình thường.
- strict_chain (mặc định): Sử dụng proxy theo thứ tự nghiêm ngặt. Nếu bất kỳ proxy nào thất bại, toàn bộ chuỗi thất bại.
- round_robin_chain: Luân phiên qua các proxy theo thứ tự, bắt đầu từ vị trí đã dừng ở kết nối trước đó.
- random_chain: Chọn ngẫu nhiên proxy từ danh sách của bạn cho mỗi kết nối.
Bỏ ghi chú loại bạn đã chọn bằng cách xóa # ở đầu dòng và ghi chú các loại khác.
Bước 2: Bật DNS proxy
Tìm dòng #proxy_dns và bỏ ghi chú nó. Điều này ngăn rò rỉ DNS bằng cách định tuyến các yêu cầu DNS qua proxy của bạn:
proxy_dns
Bước 3: Xem xét cài đặt thời gian chờ
Các giá trị thời gian chờ mặc định thường ổn, nhưng bạn có thể điều chỉnh nếu cần:
tcp_read_time_out 15000
tcp_connect_time_out 8000
Bước 4: Thêm proxy của bạn
Cuộn xuống phần [ProxyList] ở cuối tệp. Mục nhập mặc định là proxy SOCKS4 trên localhost port 9050 (Tor):
socks4 127.0.0.1 9050
Để sử dụng với chỉ thị proxy_dns, hãy thay thế nó bằng mục nhập SOCKS5. SOCKS5 cho phép phân giải DNS phía proxy, điều mà proxy_dns dựa vào để ngăn rò rỉ:
[ProxyList]
socks5 127.0.0.1 9050
Định dạng để thêm proxy là: type IP_address port [username] [password]. Các loại proxy được hỗ trợ bao gồm http, socks4 và socks5.
Lưu tệp với Ctrl + O, nhấn Enter, sau đó Ctrl + X để thoát nano.
Kiểm tra thiết lập của bạn
Hãy xác minh mọi thứ hoạt động chính xác. Đầu tiên, kiểm tra địa chỉ IP thực của bạn:
curl ifconfig.me
Bây giờ kiểm tra IP bạn xuất hiện qua ProxyChains:
proxychains curl ifconfig.me
IP sẽ khác với IP thực của bạn.
Bạn cũng có thể kiểm tra cụ thể với trình kiểm tra của dự án Tor:
proxychains curl https://check.torproject.org
Nếu mọi thứ được thiết lập chính xác, bạn sẽ thấy thông báo "Congratulations. This browser is configured to use Tor."
Sử dụng ProxyChains với các ứng dụng dòng lệnh
Sử dụng ProxyChains khá đơn giản. Chỉ cần thêm proxychains vào trước bất kỳ lệnh nào:
# Downloading files
proxychains wget http://example.com/file.zip
# Network scanning with nmap
proxychains nmap -sT -Pn target.com
# SSH connections
proxychains ssh [email protected]
Đối với các công cụ quét mạng như nmap, hãy nhớ sử dụng cờ -sT (TCP connect), vì quét SYN (-sS) sử dụng raw socket và không hoạt động qua ProxyChains.
Sử dụng Firefox với Tor (Lưu ý quan trọng)
Bạn có thể muốn chạy Firefox với proxychains firefox. Tuy nhiên, cách tiếp cận này không hoạt động đáng tin cậy vì Firefox hiện đại tải mã mạng của nó thông qua các module được dlopen() (như libxul), không kế thừa các hook LD_PRELOAD mà ProxyChains phụ thuộc vào. Tài liệu chính thức của ProxyChains ghi rõ đây là một hạn chế đã biết.
Đây là cách đúng để định tuyến Firefox qua Tor:
Bước 1: Xác nhận Tor đang chạy
sudo systemctl status tor
Nếu nó không chạy, hãy khởi động nó:
sudo systemctl start tor
Bước 2: Cấu hình Firefox thủ công
Mở Firefox và làm theo các bước sau:
- Nhấp vào nút menu (ba đường ngang) ở góc trên bên phải.
- Chọn Settings (hoặc Preferences trên một số hệ thống).
- Cuộn xuống phần Proxy Settings và nhấp vào nút Configure Proxy.
- Trong hộp thoại hiện ra, chọn Manual proxy configuration.
- Trong trường SOCKS Host, nhập
127.0.0.1và Port9050. - Chọn SOCKS v5 làm phiên bản SOCKS.
- Quan trọng nhất, đánh dấu vào ô có nội dung Proxy DNS when using SOCKS v5. Điều này ngăn rò rỉ DNS.
Bước 3: Xác minh cấu hình (Tùy chọn)
Để xác minh nâng cao, gõ about:config trong thanh địa chỉ Firefox và chấp nhận cảnh báo. Tìm kiếm các cài đặt này và xác nhận chúng khớp:
network.proxy.typephải là1(Manual proxy configuration)network.proxy.socksphải là127.0.0.1network.proxy.socks_portphải là9050network.proxy.socks_versionphải là5network.proxy.socks_remote_dnsphải làtrue
Bước 4: Kiểm tra thiết lập của bạn
Điều hướng đến https://check.torproject.org/ trong Firefox. Nếu được cấu hình chính xác, trang sẽ hiển thị "Congratulations. This browser is configured to use Tor."
Cách cấu hình thủ công này đáng tin cậy hơn nhiều so với việc sử dụng proxychains với Firefox. Thiết lập proxychains của bạn vẫn hoạt động hoàn hảo cho các công cụ dòng lệnh như curl, wget và nmap.
Cân nhắc proxy thương mại (Tùy chọn)
Proxy Tor mặc định miễn phí và hoạt động tốt cho các tác vụ tập trung vào quyền riêng tư. Tuy nhiên, mạng Tor có thể chậm hơn proxy thông thường và một số trang web chặn hoặc giới hạn kết nối từ các nút thoát Tor.
Nếu bạn cần tốc độ nhanh hơn, kết nối ổn định hoặc địa chỉ IP chuyên dụng, bạn có thể thay thế mục nhập Tor trong tệp ProxyList của mình bằng proxy SOCKS5 hoặc HTTP từ nhà cung cấp thương mại. Tùy thuộc vào nhà cung cấp và loại proxy, các dịch vụ này có thể cung cấp hiệu suất tốt hơn và ít bị chặn hơn Tor.
Ví dụ: các nhà cung cấp như Proxy-Seller cung cấp proxy HTTP, HTTPS và SOCKS5 hoạt động với Proxychains. Bất kể bạn chọn nhà cung cấp nào, hãy so sánh các tính năng như loại proxy, vị trí máy chủ, phương thức xác thực, thời gian hoạt động và giá cả trước khi mua. Bạn cũng nên kiểm tra dịch vụ và đọc các đánh giá độc lập để đảm bảo nó đáp ứng nhu cầu của bạn.
Sự khác biệt giữa SOCKS4 và SOCKS5
Khi thiết lập proxy, bạn sẽ gặp cả SOCKS4 và SOCKS5. Đây là lý do tại sao SOCKS5 thường được ưa chuộng:
SOCKS5 hỗ trợ UDP ở cấp độ giao thức, nhưng ProxyChains chỉ định tuyến kết nối TCP, bất kể loại proxy nào được cấu hình. Khả năng UDP của SOCKS5 không thể truy cập qua ProxyChains.
SOCKS5 được ưa chuộng với ProxyChains chủ yếu vì nó hỗ trợ phân giải DNS phía proxy (được sử dụng bởi chỉ thị proxy_dns), xác thực và địa chỉ IPv6.
So sánh ProxyChains với VPN
Bạn có thể tự hỏi tại sao lại sử dụng ProxyChains khi VPN có vẻ đơn giản hơn. Cả hai công cụ đều tăng cường ẩn danh, nhưng chúng hoạt động rất khác nhau.
VPN tạo ra một đường hầm mã hóa toàn hệ thống, định tuyến tất cả lưu lượng internet của bạn qua máy chủ của nó. Đây là cách tiếp cận tất cả hoặc không có gì, cung cấp mã hóa mạnh mẽ và tốc độ tốt. Tuy nhiên, bạn phải tin tưởng nhà cung cấp VPN không ghi lại hoạt động của bạn.
ProxyChains hoạt động ở cấp độ ứng dụng. Nó chỉ buộc các chương trình cụ thể (như curl hoặc nmap) đi qua một chuỗi proxy, trong khi các ứng dụng khác không bị ảnh hưởng. Điều này cho phép kiểm soát chi tiết nhưng không cung cấp mã hóa. Ẩn danh của bạn phụ thuộc hoàn toàn vào các proxy bạn sử dụng.
Về tốc độ, VPN hiện đại thường nhanh hơn nhiều vì nó sử dụng các giao thức tối ưu như WireGuard. ProxyChains có thể chậm hơn đáng kể, đặc biệt nếu bạn xâu chuỗi nhiều proxy hoặc sử dụng mạng Tor, mạng này chuyển tiếp lưu lượng qua nhiều nút trên toàn thế giới.
Tóm lại: Sử dụng VPN khi bạn muốn bảo vệ mã hóa nhanh cho mọi thứ. Sử dụng ProxyChains khi bạn cần định tuyến các công cụ cụ thể qua một chuỗi proxy tùy chỉnh, chẳng hạn như cho nghiên cứu OSINT hoặc kiểm tra thâm nhập.
Mẹo cấu hình nâng cao
Sử dụng nhiều proxy trong một chuỗi
Bạn có thể xâu chuỗi nhiều proxy để tăng cường ẩn danh. Hãy nhớ rằng thêm nhiều proxy sẽ tăng ẩn danh nhưng giảm tốc độ và tăng khả năng lỗi kết nối. Thêm tất cả chúng vào phần [ProxyList]:
[ProxyList]
socks5 192.168.1.10 1080
http 192.168.1.20 8080
socks5 192.168.1.30 1080
Thêm proxy có xác thực
Nếu proxy của bạn yêu cầu xác thực, hãy bao gồm tên người dùng và mật khẩu:
socks5 proxy.example.com 1080 username password
Loại trừ mạng cục bộ
Bạn có thể loại trừ các dải IP cụ thể khỏi proxy bằng chỉ thị localnet:
localnet 127.0.0.0/255.0.0.0
localnet 192.168.0.0/255.255.0.0
Khắc phục sự cố ProxyChains
Nếu mọi thứ không hoạt động, hãy thử các bước sau:
- Kiểm tra trạng thái Tor:
sudo systemctl status tor - Sử dụng chế độ verbose:
proxychains curl -v https://check.torproject.org - Xác minh danh sách proxy của bạn: Đảm bảo địa chỉ và cổng chính xác
- Khởi động lại Tor:
sudo systemctl restart tor - Kiểm tra đường dẫn tệp cấu hình: Chạy
proxychains4 --helpđể xem tệp cấu hình nào đang được sử dụng - Đối với sự cố Firefox: Hãy nhớ rằng Firefox cần cấu hình proxy thủ công, không phải
proxychains, do nó sử dụng các module được tải động để vượt qua các hook LD_PRELOAD
Câu hỏi thường gặp (FAQ)
H: Proxychains có miễn phí không?
Đ: Có. Proxychains là phần mềm mã nguồn mở và miễn phí sử dụng.
H: Proxychains có hỗ trợ SOCKS5 không?
Đ: Có. Proxychains hỗ trợ SOCKS4, SOCKS5 và proxy HTTP.
H: Tôi có thể sử dụng Proxychains với SSH không?
Đ: Có. Chỉ cần thêm lệnh với Proxychains:
proxychains ssh user@host
H: Proxychains có hoạt động với tất cả các ứng dụng không?
Đ: Không. Nó hoạt động chủ yếu với các ứng dụng sử dụng kết nối TCP.
H: Sự khác biệt giữa Proxychains và VPN là gì?
Đ: VPN định tuyến lưu lượng ở cấp độ hệ thống hoặc mạng. Proxychains định tuyến lưu lượng ứng dụng cụ thể qua các proxy đã cấu hình.
Kết luận
ProxyChains là một công cụ mạnh mẽ cho định tuyến mạng ẩn danh. Nó cung cấp khả năng kiểm soát chi tiết đối với ứng dụng nào sử dụng proxy. Tuy nhiên, hãy nhớ rằng nó chỉ xử lý lưu lượng TCP và không mã hóa dữ liệu của bạn. Để có quyền riêng tư hoàn toàn, luôn kết hợp nó với mã hóa (như Tor hoặc VPN).
Vẻ đẹp của ProxyChains là sự đơn giản của nó. Sau khi được cấu hình, bất kỳ công cụ dòng lệnh nào cũng trở nên nhận biết proxy chỉ với vài ký tự thêm vào. Kết hợp với nguồn proxy đáng tin cậy như Tor, nó cung cấp nền tảng vững chắc cho duyệt web ẩn danh và kiểm tra mạng.
Hãy nhớ: luôn sử dụng các công cụ này một cách có đạo đức và có trách nhiệm. ProxyChains là một công cụ mạng mạnh mẽ. Bạn nên sử dụng nó để bảo vệ ẩn danh của mình, không phải để vi phạm quyền của người khác.
Có câu hỏi hoặc gặp sự cố? Hãy để lại bình luận bên dưới và chúng tôi sẽ giúp bạn khắc phục thiết lập của mình!



